ez-a-sync 0.32.15__cp310-cp310-musllinux_1_2_i686.whl → 0.32.17__cp310-cp310-musllinux_1_2_i686.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ez-a-sync might be problematic. Click here for more details.

a_sync/asyncio/igather.c CHANGED
@@ -1513,7 +1513,7 @@ struct __pyx_opt_args_6a_sync_7asyncio_7igather_cigather {
1513
1513
  int return_exceptions;
1514
1514
  };
1515
1515
 
1516
- /* "a_sync/asyncio/igather.pyx":28
1516
+ /* "a_sync/asyncio/igather.pyx":30
1517
1517
  *
1518
1518
  *
1519
1519
  * cdef object cigather(object coros_or_futures, bint return_exceptions = False): # <<<<<<<<<<<<<<
@@ -1610,70 +1610,6 @@ struct __pyx_obj_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7
1610
1610
  #define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
1611
1611
  #define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
1612
1612
 
1613
- /* PyErrExceptionMatches.proto */
1614
- #if CYTHON_FAST_THREAD_STATE
1615
- #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
1616
- static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
1617
- #else
1618
- #define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err)
1619
- #endif
1620
-
1621
- /* PyThreadStateGet.proto */
1622
- #if CYTHON_FAST_THREAD_STATE
1623
- #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate;
1624
- #define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current;
1625
- #if PY_VERSION_HEX >= 0x030C00A6
1626
- #define __Pyx_PyErr_Occurred() (__pyx_tstate->current_exception != NULL)
1627
- #define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->current_exception ? (PyObject*) Py_TYPE(__pyx_tstate->current_exception) : (PyObject*) NULL)
1628
- #else
1629
- #define __Pyx_PyErr_Occurred() (__pyx_tstate->curexc_type != NULL)
1630
- #define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->curexc_type)
1631
- #endif
1632
- #else
1633
- #define __Pyx_PyThreadState_declare
1634
- #define __Pyx_PyThreadState_assign
1635
- #define __Pyx_PyErr_Occurred() (PyErr_Occurred() != NULL)
1636
- #define __Pyx_PyErr_CurrentExceptionType() PyErr_Occurred()
1637
- #endif
1638
-
1639
- /* PyErrFetchRestore.proto */
1640
- #if CYTHON_FAST_THREAD_STATE
1641
- #define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
1642
- #define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
1643
- #define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
1644
- #define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
1645
- #define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
1646
- static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
1647
- static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1648
- #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A6
1649
- #define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
1650
- #else
1651
- #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
1652
- #endif
1653
- #else
1654
- #define __Pyx_PyErr_Clear() PyErr_Clear()
1655
- #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
1656
- #define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb)
1657
- #define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb)
1658
- #define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb)
1659
- #define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb)
1660
- #define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb)
1661
- #define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb)
1662
- #endif
1663
-
1664
- /* PyObjectGetAttrStr.proto */
1665
- #if CYTHON_USE_TYPE_SLOTS
1666
- static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
1667
- #else
1668
- #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
1669
- #endif
1670
-
1671
- /* PyObjectGetAttrStrNoError.proto */
1672
- static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);
1673
-
1674
- /* GetBuiltinName.proto */
1675
- static PyObject *__Pyx_GetBuiltinName(PyObject *name);
1676
-
1677
1613
  /* TupleAndListFromArray.proto */
1678
1614
  #if CYTHON_COMPILING_IN_CPYTHON
1679
1615
  static CYTHON_INLINE PyObject* __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n);
@@ -1751,6 +1687,49 @@ static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject *const *kwvalues
1751
1687
  static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
1752
1688
  Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);
1753
1689
 
1690
+ /* PyThreadStateGet.proto */
1691
+ #if CYTHON_FAST_THREAD_STATE
1692
+ #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate;
1693
+ #define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current;
1694
+ #if PY_VERSION_HEX >= 0x030C00A6
1695
+ #define __Pyx_PyErr_Occurred() (__pyx_tstate->current_exception != NULL)
1696
+ #define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->current_exception ? (PyObject*) Py_TYPE(__pyx_tstate->current_exception) : (PyObject*) NULL)
1697
+ #else
1698
+ #define __Pyx_PyErr_Occurred() (__pyx_tstate->curexc_type != NULL)
1699
+ #define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->curexc_type)
1700
+ #endif
1701
+ #else
1702
+ #define __Pyx_PyThreadState_declare
1703
+ #define __Pyx_PyThreadState_assign
1704
+ #define __Pyx_PyErr_Occurred() (PyErr_Occurred() != NULL)
1705
+ #define __Pyx_PyErr_CurrentExceptionType() PyErr_Occurred()
1706
+ #endif
1707
+
1708
+ /* PyErrFetchRestore.proto */
1709
+ #if CYTHON_FAST_THREAD_STATE
1710
+ #define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
1711
+ #define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
1712
+ #define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
1713
+ #define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
1714
+ #define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
1715
+ static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
1716
+ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
1717
+ #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A6
1718
+ #define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
1719
+ #else
1720
+ #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
1721
+ #endif
1722
+ #else
1723
+ #define __Pyx_PyErr_Clear() PyErr_Clear()
1724
+ #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
1725
+ #define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb)
1726
+ #define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb)
1727
+ #define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb)
1728
+ #define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb)
1729
+ #define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb)
1730
+ #define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb)
1731
+ #endif
1732
+
1754
1733
  /* Profile.proto */
1755
1734
  #ifndef CYTHON_PROFILE
1756
1735
  #if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
@@ -1992,6 +1971,13 @@ static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
1992
1971
  /* RaiseClosureNameError.proto */
1993
1972
  static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname);
1994
1973
 
1974
+ /* PyObjectGetAttrStr.proto */
1975
+ #if CYTHON_USE_TYPE_SLOTS
1976
+ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
1977
+ #else
1978
+ #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
1979
+ #endif
1980
+
1995
1981
  /* PyFunctionFastCall.proto */
1996
1982
  #if CYTHON_FAST_PYCALL
1997
1983
  #if !CYTHON_VECTORCALL
@@ -2043,30 +2029,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject
2043
2029
  #define __Pyx_PyObject_FastCall(func, args, nargs) __Pyx_PyObject_FastCallDict(func, args, (size_t)(nargs), NULL)
2044
2030
  static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject **args, size_t nargs, PyObject *kwargs);
2045
2031
 
2046
- /* GetTopmostException.proto */
2047
- #if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
2048
- static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
2049
- #endif
2050
-
2051
- /* SaveResetException.proto */
2052
- #if CYTHON_FAST_THREAD_STATE
2053
- #define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
2054
- static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
2055
- #define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
2056
- static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
2057
- #else
2058
- #define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb)
2059
- #define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb)
2060
- #endif
2061
-
2062
- /* GetException.proto */
2063
- #if CYTHON_FAST_THREAD_STATE
2064
- #define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb)
2065
- static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
2066
- #else
2067
- static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
2068
- #endif
2069
-
2070
2032
  /* ListCompAppend.proto */
2071
2033
  #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
2072
2034
  static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
@@ -2331,6 +2293,14 @@ static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict,
2331
2293
  static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos,
2332
2294
  PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict);
2333
2295
 
2296
+ /* PyErrExceptionMatches.proto */
2297
+ #if CYTHON_FAST_THREAD_STATE
2298
+ #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
2299
+ static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
2300
+ #else
2301
+ #define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err)
2302
+ #endif
2303
+
2334
2304
  /* GetAttr3.proto */
2335
2305
  static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *);
2336
2306
 
@@ -2398,6 +2368,12 @@ static PyObject* __Pyx_patch_asyncio(PyObject* module);
2398
2368
  /* ImportFrom.proto */
2399
2369
  static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);
2400
2370
 
2371
+ /* PyObjectGetAttrStrNoError.proto */
2372
+ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);
2373
+
2374
+ /* GetBuiltinName.proto */
2375
+ static PyObject *__Pyx_GetBuiltinName(PyObject *name);
2376
+
2401
2377
  /* PyDictVersioning.proto */
2402
2378
  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
2403
2379
  #define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1)
@@ -2532,6 +2508,8 @@ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);
2532
2508
 
2533
2509
  /* #### Code section: module_declarations ### */
2534
2510
 
2511
+ /* Module declarations from "cpython.version" */
2512
+
2535
2513
  /* Module declarations from "a_sync.a_sync._helpers" */
2536
2514
  static PyObject *(*__pyx_f_6a_sync_6a_sync_8_helpers_get_event_loop)(int __pyx_skip_dispatch); /*proto*/
2537
2515
 
@@ -2554,7 +2532,6 @@ int __pyx_module_is_main_a_sync__asyncio__igather = 0;
2554
2532
 
2555
2533
  /* Implementation of "a_sync.asyncio.igather" */
2556
2534
  /* #### Code section: global_var ### */
2557
- static PyObject *__pyx_builtin_AttributeError;
2558
2535
  /* #### Code section: string_decls ### */
2559
2536
  static const char __pyx_k_T[] = "__T";
2560
2537
  static const char __pyx_k__5[] = "";
@@ -2607,7 +2584,6 @@ static const char __pyx_k_create_future[] = "create_future";
2607
2584
  static const char __pyx_k_done_callback[] = "_done_callback";
2608
2585
  static const char __pyx_k_ensure_future[] = "ensure_future";
2609
2586
  static const char __pyx_k_set_exception[] = "set_exception";
2610
- static const char __pyx_k_AttributeError[] = "AttributeError";
2611
2587
  static const char __pyx_k_CancelledError[] = "CancelledError";
2612
2588
  static const char __pyx_k_asyncio_Future[] = "asyncio.Future";
2613
2589
  static const char __pyx_k_cancel_message[] = "_cancel_message";
@@ -2662,10 +2638,11 @@ typedef struct {
2662
2638
  #if CYTHON_USE_MODULE_STATE
2663
2639
  #endif
2664
2640
  #if CYTHON_USE_MODULE_STATE
2641
+ #endif
2642
+ #if CYTHON_USE_MODULE_STATE
2665
2643
  PyObject *__pyx_type_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather;
2666
2644
  #endif
2667
2645
  PyTypeObject *__pyx_ptype_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather;
2668
- PyObject *__pyx_n_s_AttributeError;
2669
2646
  PyObject *__pyx_n_s_Awaitable;
2670
2647
  PyObject *__pyx_kp_s_Awaitable_List___T;
2671
2648
  PyObject *__pyx_n_s_CancelledError;
@@ -2786,7 +2763,6 @@ static int __pyx_m_clear(PyObject *m) {
2786
2763
  #endif
2787
2764
  Py_CLEAR(clear_module_state->__pyx_ptype_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather);
2788
2765
  Py_CLEAR(clear_module_state->__pyx_type_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather);
2789
- Py_CLEAR(clear_module_state->__pyx_n_s_AttributeError);
2790
2766
  Py_CLEAR(clear_module_state->__pyx_n_s_Awaitable);
2791
2767
  Py_CLEAR(clear_module_state->__pyx_kp_s_Awaitable_List___T);
2792
2768
  Py_CLEAR(clear_module_state->__pyx_n_s_CancelledError);
@@ -2885,7 +2861,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
2885
2861
  #endif
2886
2862
  Py_VISIT(traverse_module_state->__pyx_ptype_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather);
2887
2863
  Py_VISIT(traverse_module_state->__pyx_type_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather);
2888
- Py_VISIT(traverse_module_state->__pyx_n_s_AttributeError);
2889
2864
  Py_VISIT(traverse_module_state->__pyx_n_s_Awaitable);
2890
2865
  Py_VISIT(traverse_module_state->__pyx_kp_s_Awaitable_List___T);
2891
2866
  Py_VISIT(traverse_module_state->__pyx_n_s_CancelledError);
@@ -2993,10 +2968,11 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
2993
2968
  #if CYTHON_USE_MODULE_STATE
2994
2969
  #endif
2995
2970
  #if CYTHON_USE_MODULE_STATE
2971
+ #endif
2972
+ #if CYTHON_USE_MODULE_STATE
2996
2973
  #define __pyx_type_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather __pyx_mstate_global->__pyx_type_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather
2997
2974
  #endif
2998
2975
  #define __pyx_ptype_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather __pyx_mstate_global->__pyx_ptype_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather
2999
- #define __pyx_n_s_AttributeError __pyx_mstate_global->__pyx_n_s_AttributeError
3000
2976
  #define __pyx_n_s_Awaitable __pyx_mstate_global->__pyx_n_s_Awaitable
3001
2977
  #define __pyx_kp_s_Awaitable_List___T __pyx_mstate_global->__pyx_kp_s_Awaitable_List___T
3002
2978
  #define __pyx_n_s_CancelledError __pyx_mstate_global->__pyx_n_s_CancelledError
@@ -3075,7 +3051,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
3075
3051
  #define __pyx_codeobj__4 __pyx_mstate_global->__pyx_codeobj__4
3076
3052
  /* #### Code section: module_code ### */
3077
3053
 
3078
- /* "a_sync/asyncio/igather.pyx":21
3054
+ /* "a_sync/asyncio/igather.pyx":23
3079
3055
  *
3080
3056
  *
3081
3057
  * def igather( # <<<<<<<<<<<<<<
@@ -3140,19 +3116,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
3140
3116
  (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
3141
3117
  kw_args--;
3142
3118
  }
3143
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 21, __pyx_L3_error)
3119
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 23, __pyx_L3_error)
3144
3120
  else goto __pyx_L5_argtuple_error;
3145
3121
  CYTHON_FALLTHROUGH;
3146
3122
  case 1:
3147
3123
  if (kw_args > 0) {
3148
3124
  PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_return_exceptions);
3149
3125
  if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
3150
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 21, __pyx_L3_error)
3126
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 23, __pyx_L3_error)
3151
3127
  }
3152
3128
  }
3153
3129
  if (unlikely(kw_args > 0)) {
3154
3130
  const Py_ssize_t kwd_pos_args = __pyx_nargs;
3155
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "igather") < 0)) __PYX_ERR(0, 21, __pyx_L3_error)
3131
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "igather") < 0)) __PYX_ERR(0, 23, __pyx_L3_error)
3156
3132
  }
3157
3133
  } else {
3158
3134
  switch (__pyx_nargs) {
@@ -3165,10 +3141,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
3165
3141
  }
3166
3142
  __pyx_v_coros_or_futures = values[0];
3167
3143
  if (values[1]) {
3168
- __pyx_v_return_exceptions = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_return_exceptions == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 22, __pyx_L3_error)
3144
+ __pyx_v_return_exceptions = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_return_exceptions == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 24, __pyx_L3_error)
3169
3145
  } else {
3170
3146
 
3171
- /* "a_sync/asyncio/igather.pyx":22
3147
+ /* "a_sync/asyncio/igather.pyx":24
3172
3148
  *
3173
3149
  * def igather(
3174
3150
  * coros_or_futures: Iterable[Awaitable[__T]], bint return_exceptions = False # <<<<<<<<<<<<<<
@@ -3180,7 +3156,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
3180
3156
  }
3181
3157
  goto __pyx_L6_skip;
3182
3158
  __pyx_L5_argtuple_error:;
3183
- __Pyx_RaiseArgtupleInvalid("igather", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 21, __pyx_L3_error)
3159
+ __Pyx_RaiseArgtupleInvalid("igather", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 23, __pyx_L3_error)
3184
3160
  __pyx_L6_skip:;
3185
3161
  goto __pyx_L4_argument_unpacking_done;
3186
3162
  __pyx_L3_error:;
@@ -3196,7 +3172,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
3196
3172
  __pyx_L4_argument_unpacking_done:;
3197
3173
  __pyx_r = __pyx_pf_6a_sync_7asyncio_7igather_igather(__pyx_self, __pyx_v_coros_or_futures, __pyx_v_return_exceptions);
3198
3174
 
3199
- /* "a_sync/asyncio/igather.pyx":21
3175
+ /* "a_sync/asyncio/igather.pyx":23
3200
3176
  *
3201
3177
  *
3202
3178
  * def igather( # <<<<<<<<<<<<<<
@@ -3226,26 +3202,26 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_igather(CYTHON_UNUSED PyObje
3226
3202
  int __pyx_clineno = 0;
3227
3203
  __Pyx_TraceFrameInit(__pyx_codeobj_)
3228
3204
  __Pyx_RefNannySetupContext("igather", 1);
3229
- __Pyx_TraceCall("igather", __pyx_f[0], 21, 0, __PYX_ERR(0, 21, __pyx_L1_error));
3205
+ __Pyx_TraceCall("igather", __pyx_f[0], 23, 0, __PYX_ERR(0, 23, __pyx_L1_error));
3230
3206
 
3231
- /* "a_sync/asyncio/igather.pyx":25
3207
+ /* "a_sync/asyncio/igather.pyx":27
3232
3208
  * ) -> Awaitable[List[__T]]:
3233
3209
  * """A clone of asyncio.gather that takes a single iterator of coroutines instead of an unpacked tuple."""
3234
3210
  * return cigather(coros_or_futures, return_exceptions=return_exceptions) # <<<<<<<<<<<<<<
3235
3211
  *
3236
3212
  *
3237
3213
  */
3238
- __Pyx_TraceLine(25,0,__PYX_ERR(0, 25, __pyx_L1_error))
3214
+ __Pyx_TraceLine(27,0,__PYX_ERR(0, 27, __pyx_L1_error))
3239
3215
  __Pyx_XDECREF(__pyx_r);
3240
3216
  __pyx_t_2.__pyx_n = 1;
3241
3217
  __pyx_t_2.return_exceptions = __pyx_v_return_exceptions;
3242
- __pyx_t_1 = __pyx_f_6a_sync_7asyncio_7igather_cigather(__pyx_v_coros_or_futures, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error)
3218
+ __pyx_t_1 = __pyx_f_6a_sync_7asyncio_7igather_cigather(__pyx_v_coros_or_futures, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27, __pyx_L1_error)
3243
3219
  __Pyx_GOTREF(__pyx_t_1);
3244
3220
  __pyx_r = __pyx_t_1;
3245
3221
  __pyx_t_1 = 0;
3246
3222
  goto __pyx_L0;
3247
3223
 
3248
- /* "a_sync/asyncio/igather.pyx":21
3224
+ /* "a_sync/asyncio/igather.pyx":23
3249
3225
  *
3250
3226
  *
3251
3227
  * def igather( # <<<<<<<<<<<<<<
@@ -3265,7 +3241,7 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_igather(CYTHON_UNUSED PyObje
3265
3241
  return __pyx_r;
3266
3242
  }
3267
3243
 
3268
- /* "a_sync/asyncio/igather.pyx":64
3244
+ /* "a_sync/asyncio/igather.pyx":66
3269
3245
  * if return_exceptions:
3270
3246
  *
3271
3247
  * def _done_callback(fut: asyncio.Future) -> None: # <<<<<<<<<<<<<<
@@ -3326,12 +3302,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
3326
3302
  (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
3327
3303
  kw_args--;
3328
3304
  }
3329
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 64, __pyx_L3_error)
3305
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 66, __pyx_L3_error)
3330
3306
  else goto __pyx_L5_argtuple_error;
3331
3307
  }
3332
3308
  if (unlikely(kw_args > 0)) {
3333
3309
  const Py_ssize_t kwd_pos_args = __pyx_nargs;
3334
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_done_callback") < 0)) __PYX_ERR(0, 64, __pyx_L3_error)
3310
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_done_callback") < 0)) __PYX_ERR(0, 66, __pyx_L3_error)
3335
3311
  }
3336
3312
  } else if (unlikely(__pyx_nargs != 1)) {
3337
3313
  goto __pyx_L5_argtuple_error;
@@ -3342,7 +3318,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
3342
3318
  }
3343
3319
  goto __pyx_L6_skip;
3344
3320
  __pyx_L5_argtuple_error:;
3345
- __Pyx_RaiseArgtupleInvalid("_done_callback", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 64, __pyx_L3_error)
3321
+ __Pyx_RaiseArgtupleInvalid("_done_callback", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 66, __pyx_L3_error)
3346
3322
  __pyx_L6_skip:;
3347
3323
  goto __pyx_L4_argument_unpacking_done;
3348
3324
  __pyx_L3_error:;
@@ -3384,48 +3360,43 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather__done_callback(PyO
3384
3360
  PyObject *__pyx_t_5 = NULL;
3385
3361
  unsigned int __pyx_t_6;
3386
3362
  PyObject *__pyx_t_7 = NULL;
3387
- PyObject *__pyx_t_8 = NULL;
3363
+ Py_ssize_t __pyx_t_8;
3388
3364
  PyObject *__pyx_t_9 = NULL;
3389
- int __pyx_t_10;
3390
- PyObject *__pyx_t_11 = NULL;
3391
- PyObject *__pyx_t_12 = NULL;
3392
- PyObject *__pyx_t_13 = NULL;
3393
- Py_ssize_t __pyx_t_14;
3394
3365
  int __pyx_lineno = 0;
3395
3366
  const char *__pyx_filename = NULL;
3396
3367
  int __pyx_clineno = 0;
3397
3368
  __Pyx_RefNannySetupContext("_done_callback", 1);
3398
3369
  __pyx_outer_scope = (struct __pyx_obj_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather *) __Pyx_CyFunction_GetClosure(__pyx_self);
3399
3370
  __pyx_cur_scope = __pyx_outer_scope;
3400
- __Pyx_TraceCall("_done_callback", __pyx_f[0], 64, 0, __PYX_ERR(0, 64, __pyx_L1_error));
3371
+ __Pyx_TraceCall("_done_callback", __pyx_f[0], 66, 0, __PYX_ERR(0, 66, __pyx_L1_error));
3401
3372
 
3402
- /* "a_sync/asyncio/igather.pyx":67
3373
+ /* "a_sync/asyncio/igather.pyx":69
3403
3374
  * # for some reason this wouldn't work until I added `return_exceptions=return_exceptions` to the func def
3404
3375
  * nonlocal nfinished
3405
3376
  * nfinished += 1 # <<<<<<<<<<<<<<
3406
3377
  *
3407
3378
  * if outer is None or outer.done():
3408
3379
  */
3409
- __Pyx_TraceLine(67,0,__PYX_ERR(0, 67, __pyx_L1_error))
3380
+ __Pyx_TraceLine(69,0,__PYX_ERR(0, 69, __pyx_L1_error))
3410
3381
  __pyx_cur_scope->__pyx_v_nfinished = (__pyx_cur_scope->__pyx_v_nfinished + 1);
3411
3382
 
3412
- /* "a_sync/asyncio/igather.pyx":69
3383
+ /* "a_sync/asyncio/igather.pyx":71
3413
3384
  * nfinished += 1
3414
3385
  *
3415
3386
  * if outer is None or outer.done(): # <<<<<<<<<<<<<<
3416
3387
  * if not fut.cancelled():
3417
3388
  * # Mark exception retrieved.
3418
3389
  */
3419
- __Pyx_TraceLine(69,0,__PYX_ERR(0, 69, __pyx_L1_error))
3420
- if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 69, __pyx_L1_error) }
3390
+ __Pyx_TraceLine(71,0,__PYX_ERR(0, 71, __pyx_L1_error))
3391
+ if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 71, __pyx_L1_error) }
3421
3392
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_outer == Py_None);
3422
3393
  if (!__pyx_t_2) {
3423
3394
  } else {
3424
3395
  __pyx_t_1 = __pyx_t_2;
3425
3396
  goto __pyx_L4_bool_binop_done;
3426
3397
  }
3427
- if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 69, __pyx_L1_error) }
3428
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_outer, __pyx_n_s_done); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 69, __pyx_L1_error)
3398
+ if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 71, __pyx_L1_error) }
3399
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_outer, __pyx_n_s_done); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 71, __pyx_L1_error)
3429
3400
  __Pyx_GOTREF(__pyx_t_4);
3430
3401
  __pyx_t_5 = NULL;
3431
3402
  __pyx_t_6 = 0;
@@ -3445,25 +3416,25 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather__done_callback(PyO
3445
3416
  PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
3446
3417
  __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
3447
3418
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
3448
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 69, __pyx_L1_error)
3419
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 71, __pyx_L1_error)
3449
3420
  __Pyx_GOTREF(__pyx_t_3);
3450
3421
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3451
3422
  }
3452
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 69, __pyx_L1_error)
3423
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 71, __pyx_L1_error)
3453
3424
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3454
3425
  __pyx_t_1 = __pyx_t_2;
3455
3426
  __pyx_L4_bool_binop_done:;
3456
3427
  if (__pyx_t_1) {
3457
3428
 
3458
- /* "a_sync/asyncio/igather.pyx":70
3429
+ /* "a_sync/asyncio/igather.pyx":72
3459
3430
  *
3460
3431
  * if outer is None or outer.done():
3461
3432
  * if not fut.cancelled(): # <<<<<<<<<<<<<<
3462
3433
  * # Mark exception retrieved.
3463
3434
  * fut.exception()
3464
3435
  */
3465
- __Pyx_TraceLine(70,0,__PYX_ERR(0, 70, __pyx_L1_error))
3466
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_cancelled); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 70, __pyx_L1_error)
3436
+ __Pyx_TraceLine(72,0,__PYX_ERR(0, 72, __pyx_L1_error))
3437
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_cancelled); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 72, __pyx_L1_error)
3467
3438
  __Pyx_GOTREF(__pyx_t_4);
3468
3439
  __pyx_t_5 = NULL;
3469
3440
  __pyx_t_6 = 0;
@@ -3483,24 +3454,24 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather__done_callback(PyO
3483
3454
  PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
3484
3455
  __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
3485
3456
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
3486
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 70, __pyx_L1_error)
3457
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 72, __pyx_L1_error)
3487
3458
  __Pyx_GOTREF(__pyx_t_3);
3488
3459
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3489
3460
  }
3490
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 70, __pyx_L1_error)
3461
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 72, __pyx_L1_error)
3491
3462
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3492
3463
  __pyx_t_2 = (!__pyx_t_1);
3493
3464
  if (__pyx_t_2) {
3494
3465
 
3495
- /* "a_sync/asyncio/igather.pyx":72
3466
+ /* "a_sync/asyncio/igather.pyx":74
3496
3467
  * if not fut.cancelled():
3497
3468
  * # Mark exception retrieved.
3498
3469
  * fut.exception() # <<<<<<<<<<<<<<
3499
3470
  * return
3500
3471
  *
3501
3472
  */
3502
- __Pyx_TraceLine(72,0,__PYX_ERR(0, 72, __pyx_L1_error))
3503
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_exception); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 72, __pyx_L1_error)
3473
+ __Pyx_TraceLine(74,0,__PYX_ERR(0, 74, __pyx_L1_error))
3474
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_exception); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 74, __pyx_L1_error)
3504
3475
  __Pyx_GOTREF(__pyx_t_4);
3505
3476
  __pyx_t_5 = NULL;
3506
3477
  __pyx_t_6 = 0;
@@ -3520,13 +3491,13 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather__done_callback(PyO
3520
3491
  PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
3521
3492
  __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
3522
3493
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
3523
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 72, __pyx_L1_error)
3494
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 74, __pyx_L1_error)
3524
3495
  __Pyx_GOTREF(__pyx_t_3);
3525
3496
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3526
3497
  }
3527
3498
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3528
3499
 
3529
- /* "a_sync/asyncio/igather.pyx":70
3500
+ /* "a_sync/asyncio/igather.pyx":72
3530
3501
  *
3531
3502
  * if outer is None or outer.done():
3532
3503
  * if not fut.cancelled(): # <<<<<<<<<<<<<<
@@ -3535,19 +3506,19 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather__done_callback(PyO
3535
3506
  */
3536
3507
  }
3537
3508
 
3538
- /* "a_sync/asyncio/igather.pyx":73
3509
+ /* "a_sync/asyncio/igather.pyx":75
3539
3510
  * # Mark exception retrieved.
3540
3511
  * fut.exception()
3541
3512
  * return # <<<<<<<<<<<<<<
3542
3513
  *
3543
3514
  * if nfinished == nfuts:
3544
3515
  */
3545
- __Pyx_TraceLine(73,0,__PYX_ERR(0, 73, __pyx_L1_error))
3516
+ __Pyx_TraceLine(75,0,__PYX_ERR(0, 75, __pyx_L1_error))
3546
3517
  __Pyx_XDECREF(__pyx_r);
3547
3518
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
3548
3519
  goto __pyx_L0;
3549
3520
 
3550
- /* "a_sync/asyncio/igather.pyx":69
3521
+ /* "a_sync/asyncio/igather.pyx":71
3551
3522
  * nfinished += 1
3552
3523
  *
3553
3524
  * if outer is None or outer.done(): # <<<<<<<<<<<<<<
@@ -3556,197 +3527,135 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather__done_callback(PyO
3556
3527
  */
3557
3528
  }
3558
3529
 
3559
- /* "a_sync/asyncio/igather.pyx":75
3530
+ /* "a_sync/asyncio/igather.pyx":77
3560
3531
  * return
3561
3532
  *
3562
3533
  * if nfinished == nfuts: # <<<<<<<<<<<<<<
3563
3534
  * # All futures are done; create a list of results
3564
3535
  * # and set it to the 'outer' future.
3565
3536
  */
3566
- __Pyx_TraceLine(75,0,__PYX_ERR(0, 75, __pyx_L1_error))
3537
+ __Pyx_TraceLine(77,0,__PYX_ERR(0, 77, __pyx_L1_error))
3567
3538
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_nfinished == __pyx_cur_scope->__pyx_v_nfuts);
3568
3539
  if (__pyx_t_2) {
3569
3540
 
3570
- /* "a_sync/asyncio/igather.pyx":79
3541
+ /* "a_sync/asyncio/igather.pyx":81
3571
3542
  * # and set it to the 'outer' future.
3572
3543
  *
3573
3544
  * if outer._cancel_requested: # <<<<<<<<<<<<<<
3574
3545
  * # If gather is being cancelled we must propagate the
3575
3546
  * # cancellation regardless of *return_exceptions* argument.
3576
3547
  */
3577
- __Pyx_TraceLine(79,0,__PYX_ERR(0, 79, __pyx_L1_error))
3578
- if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 79, __pyx_L1_error) }
3579
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_outer, __pyx_n_s_cancel_requested); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 79, __pyx_L1_error)
3548
+ __Pyx_TraceLine(81,0,__PYX_ERR(0, 81, __pyx_L1_error))
3549
+ if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 81, __pyx_L1_error) }
3550
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_outer, __pyx_n_s_cancel_requested); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 81, __pyx_L1_error)
3580
3551
  __Pyx_GOTREF(__pyx_t_3);
3581
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 79, __pyx_L1_error)
3552
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 81, __pyx_L1_error)
3582
3553
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3583
3554
  if (__pyx_t_2) {
3584
3555
 
3585
- /* "a_sync/asyncio/igather.pyx":83
3586
- * # cancellation regardless of *return_exceptions* argument.
3587
- * # See issue 32684.
3588
- * try: # <<<<<<<<<<<<<<
3589
- * exc = fut._make_cancelled_error()
3590
- * except AttributeError:
3591
- */
3592
- __Pyx_TraceLine(83,0,__PYX_ERR(0, 83, __pyx_L1_error))
3593
- {
3594
- __Pyx_PyThreadState_declare
3595
- __Pyx_PyThreadState_assign
3596
- __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
3597
- __Pyx_XGOTREF(__pyx_t_7);
3598
- __Pyx_XGOTREF(__pyx_t_8);
3599
- __Pyx_XGOTREF(__pyx_t_9);
3600
- /*try:*/ {
3601
-
3602
- /* "a_sync/asyncio/igather.pyx":84
3603
- * # See issue 32684.
3604
- * try:
3605
- * exc = fut._make_cancelled_error() # <<<<<<<<<<<<<<
3606
- * except AttributeError:
3607
- * exc = CancelledError()
3556
+ /* "a_sync/asyncio/igather.pyx":87
3557
+ * exc = (
3558
+ * CancelledError()
3559
+ * if PY_VERSION_HEX < 0x03090000 # Python 3.9 # <<<<<<<<<<<<<<
3560
+ * else fut._make_cancelled_error()
3561
+ * )
3608
3562
  */
3609
- __Pyx_TraceLine(84,0,__PYX_ERR(0, 84, __pyx_L9_error))
3610
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_make_cancelled_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 84, __pyx_L9_error)
3611
- __Pyx_GOTREF(__pyx_t_4);
3612
- __pyx_t_5 = NULL;
3613
- __pyx_t_6 = 0;
3614
- #if CYTHON_UNPACK_METHODS
3615
- if (likely(PyMethod_Check(__pyx_t_4))) {
3616
- __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
3617
- if (likely(__pyx_t_5)) {
3618
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
3619
- __Pyx_INCREF(__pyx_t_5);
3620
- __Pyx_INCREF(function);
3621
- __Pyx_DECREF_SET(__pyx_t_4, function);
3622
- __pyx_t_6 = 1;
3623
- }
3624
- }
3625
- #endif
3626
- {
3627
- PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
3628
- __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
3629
- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
3630
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 84, __pyx_L9_error)
3631
- __Pyx_GOTREF(__pyx_t_3);
3632
- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3633
- }
3634
- __pyx_v_exc = __pyx_t_3;
3635
- __pyx_t_3 = 0;
3563
+ __Pyx_TraceLine(87,0,__PYX_ERR(0, 87, __pyx_L1_error))
3564
+ __pyx_t_2 = (PY_VERSION_HEX < 0x03090000);
3565
+ if (__pyx_t_2) {
3636
3566
 
3637
- /* "a_sync/asyncio/igather.pyx":83
3638
- * # cancellation regardless of *return_exceptions* argument.
3567
+ /* "a_sync/asyncio/igather.pyx":86
3639
3568
  * # See issue 32684.
3640
- * try: # <<<<<<<<<<<<<<
3641
- * exc = fut._make_cancelled_error()
3642
- * except AttributeError:
3569
+ * exc = (
3570
+ * CancelledError() # <<<<<<<<<<<<<<
3571
+ * if PY_VERSION_HEX < 0x03090000 # Python 3.9
3572
+ * else fut._make_cancelled_error()
3643
3573
  */
3574
+ __Pyx_TraceLine(86,0,__PYX_ERR(0, 86, __pyx_L1_error))
3575
+ __Pyx_INCREF(__pyx_v_6a_sync_7asyncio_7igather_CancelledError);
3576
+ __pyx_t_5 = __pyx_v_6a_sync_7asyncio_7igather_CancelledError; __pyx_t_7 = NULL;
3577
+ __pyx_t_6 = 0;
3578
+ #if CYTHON_UNPACK_METHODS
3579
+ if (unlikely(PyMethod_Check(__pyx_t_5))) {
3580
+ __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
3581
+ if (likely(__pyx_t_7)) {
3582
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
3583
+ __Pyx_INCREF(__pyx_t_7);
3584
+ __Pyx_INCREF(function);
3585
+ __Pyx_DECREF_SET(__pyx_t_5, function);
3586
+ __pyx_t_6 = 1;
3587
+ }
3644
3588
  }
3645
- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
3646
- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
3647
- __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
3648
- goto __pyx_L14_try_end;
3649
- __pyx_L9_error:;
3650
- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
3651
- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
3652
- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
3589
+ #endif
3590
+ {
3591
+ PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
3592
+ __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
3593
+ __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
3594
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 86, __pyx_L1_error)
3595
+ __Pyx_GOTREF(__pyx_t_4);
3596
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3597
+ }
3598
+ __pyx_t_3 = __pyx_t_4;
3599
+ __pyx_t_4 = 0;
3600
+ } else {
3653
3601
 
3654
- /* "a_sync/asyncio/igather.pyx":85
3655
- * try:
3656
- * exc = fut._make_cancelled_error()
3657
- * except AttributeError: # <<<<<<<<<<<<<<
3658
- * exc = CancelledError()
3602
+ /* "a_sync/asyncio/igather.pyx":88
3603
+ * CancelledError()
3604
+ * if PY_VERSION_HEX < 0x03090000 # Python 3.9
3605
+ * else fut._make_cancelled_error() # <<<<<<<<<<<<<<
3606
+ * )
3659
3607
  * outer.set_exception(exc)
3660
3608
  */
3661
- __Pyx_TraceLine(85,0,__PYX_ERR(0, 85, __pyx_L11_except_error))
3662
- __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError);
3663
- if (__pyx_t_10) {
3664
- __Pyx_AddTraceback("a_sync.asyncio.igather.cigather._done_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
3665
- if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5) < 0) __PYX_ERR(0, 85, __pyx_L11_except_error)
3666
- __Pyx_XGOTREF(__pyx_t_3);
3667
- __Pyx_XGOTREF(__pyx_t_4);
3668
- __Pyx_XGOTREF(__pyx_t_5);
3669
-
3670
- /* "a_sync/asyncio/igather.pyx":86
3671
- * exc = fut._make_cancelled_error()
3672
- * except AttributeError:
3673
- * exc = CancelledError() # <<<<<<<<<<<<<<
3674
- * outer.set_exception(exc)
3675
- * else:
3676
- */
3677
- __Pyx_TraceLine(86,0,__PYX_ERR(0, 86, __pyx_L11_except_error))
3678
- __Pyx_INCREF(__pyx_v_6a_sync_7asyncio_7igather_CancelledError);
3679
- __pyx_t_12 = __pyx_v_6a_sync_7asyncio_7igather_CancelledError; __pyx_t_13 = NULL;
3680
- __pyx_t_6 = 0;
3681
- #if CYTHON_UNPACK_METHODS
3682
- if (unlikely(PyMethod_Check(__pyx_t_12))) {
3683
- __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_12);
3684
- if (likely(__pyx_t_13)) {
3685
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
3686
- __Pyx_INCREF(__pyx_t_13);
3687
- __Pyx_INCREF(function);
3688
- __Pyx_DECREF_SET(__pyx_t_12, function);
3689
- __pyx_t_6 = 1;
3690
- }
3691
- }
3692
- #endif
3693
- {
3694
- PyObject *__pyx_callargs[2] = {__pyx_t_13, NULL};
3695
- __pyx_t_11 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
3696
- __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
3697
- if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 86, __pyx_L11_except_error)
3698
- __Pyx_GOTREF(__pyx_t_11);
3699
- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
3609
+ __Pyx_TraceLine(88,0,__PYX_ERR(0, 88, __pyx_L1_error))
3610
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_make_cancelled_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 88, __pyx_L1_error)
3611
+ __Pyx_GOTREF(__pyx_t_5);
3612
+ __pyx_t_7 = NULL;
3613
+ __pyx_t_6 = 0;
3614
+ #if CYTHON_UNPACK_METHODS
3615
+ if (likely(PyMethod_Check(__pyx_t_5))) {
3616
+ __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
3617
+ if (likely(__pyx_t_7)) {
3618
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
3619
+ __Pyx_INCREF(__pyx_t_7);
3620
+ __Pyx_INCREF(function);
3621
+ __Pyx_DECREF_SET(__pyx_t_5, function);
3622
+ __pyx_t_6 = 1;
3700
3623
  }
3701
- __Pyx_XDECREF_SET(__pyx_v_exc, __pyx_t_11);
3702
- __pyx_t_11 = 0;
3703
- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
3704
- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
3705
- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
3706
- goto __pyx_L10_exception_handled;
3707
3624
  }
3708
- goto __pyx_L11_except_error;
3709
-
3710
- /* "a_sync/asyncio/igather.pyx":83
3711
- * # cancellation regardless of *return_exceptions* argument.
3712
- * # See issue 32684.
3713
- * try: # <<<<<<<<<<<<<<
3714
- * exc = fut._make_cancelled_error()
3715
- * except AttributeError:
3716
- */
3717
- __pyx_L11_except_error:;
3718
- __Pyx_XGIVEREF(__pyx_t_7);
3719
- __Pyx_XGIVEREF(__pyx_t_8);
3720
- __Pyx_XGIVEREF(__pyx_t_9);
3721
- __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
3722
- goto __pyx_L1_error;
3723
- __pyx_L10_exception_handled:;
3724
- __Pyx_XGIVEREF(__pyx_t_7);
3725
- __Pyx_XGIVEREF(__pyx_t_8);
3726
- __Pyx_XGIVEREF(__pyx_t_9);
3727
- __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
3728
- __pyx_L14_try_end:;
3625
+ #endif
3626
+ {
3627
+ PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
3628
+ __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
3629
+ __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
3630
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 88, __pyx_L1_error)
3631
+ __Pyx_GOTREF(__pyx_t_4);
3632
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3633
+ }
3634
+ __pyx_t_3 = __pyx_t_4;
3635
+ __pyx_t_4 = 0;
3729
3636
  }
3637
+ __pyx_v_exc = __pyx_t_3;
3638
+ __pyx_t_3 = 0;
3730
3639
 
3731
- /* "a_sync/asyncio/igather.pyx":87
3732
- * except AttributeError:
3733
- * exc = CancelledError()
3640
+ /* "a_sync/asyncio/igather.pyx":90
3641
+ * else fut._make_cancelled_error()
3642
+ * )
3734
3643
  * outer.set_exception(exc) # <<<<<<<<<<<<<<
3735
3644
  * else:
3736
3645
  * outer.set_result([_get_result_or_exc(child) for child in children])
3737
3646
  */
3738
- __Pyx_TraceLine(87,0,__PYX_ERR(0, 87, __pyx_L1_error))
3739
- if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 87, __pyx_L1_error) }
3740
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_outer, __pyx_n_s_set_exception); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 87, __pyx_L1_error)
3647
+ __Pyx_TraceLine(90,0,__PYX_ERR(0, 90, __pyx_L1_error))
3648
+ if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 90, __pyx_L1_error) }
3649
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_outer, __pyx_n_s_set_exception); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 90, __pyx_L1_error)
3741
3650
  __Pyx_GOTREF(__pyx_t_4);
3742
- __pyx_t_3 = NULL;
3651
+ __pyx_t_5 = NULL;
3743
3652
  __pyx_t_6 = 0;
3744
3653
  #if CYTHON_UNPACK_METHODS
3745
3654
  if (likely(PyMethod_Check(__pyx_t_4))) {
3746
- __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
3747
- if (likely(__pyx_t_3)) {
3655
+ __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
3656
+ if (likely(__pyx_t_5)) {
3748
3657
  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
3749
- __Pyx_INCREF(__pyx_t_3);
3658
+ __Pyx_INCREF(__pyx_t_5);
3750
3659
  __Pyx_INCREF(function);
3751
3660
  __Pyx_DECREF_SET(__pyx_t_4, function);
3752
3661
  __pyx_t_6 = 1;
@@ -3754,16 +3663,16 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather__done_callback(PyO
3754
3663
  }
3755
3664
  #endif
3756
3665
  {
3757
- PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_exc};
3758
- __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
3759
- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
3760
- if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 87, __pyx_L1_error)
3761
- __Pyx_GOTREF(__pyx_t_5);
3666
+ PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_exc};
3667
+ __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
3668
+ __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
3669
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 90, __pyx_L1_error)
3670
+ __Pyx_GOTREF(__pyx_t_3);
3762
3671
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3763
3672
  }
3764
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3673
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3765
3674
 
3766
- /* "a_sync/asyncio/igather.pyx":79
3675
+ /* "a_sync/asyncio/igather.pyx":81
3767
3676
  * # and set it to the 'outer' future.
3768
3677
  *
3769
3678
  * if outer._cancel_requested: # <<<<<<<<<<<<<<
@@ -3773,65 +3682,65 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather__done_callback(PyO
3773
3682
  goto __pyx_L8;
3774
3683
  }
3775
3684
 
3776
- /* "a_sync/asyncio/igather.pyx":89
3685
+ /* "a_sync/asyncio/igather.pyx":92
3777
3686
  * outer.set_exception(exc)
3778
3687
  * else:
3779
3688
  * outer.set_result([_get_result_or_exc(child) for child in children]) # <<<<<<<<<<<<<<
3780
3689
  *
3781
3690
  * else:
3782
3691
  */
3783
- __Pyx_TraceLine(89,0,__PYX_ERR(0, 89, __pyx_L1_error))
3692
+ __Pyx_TraceLine(92,0,__PYX_ERR(0, 92, __pyx_L1_error))
3784
3693
  /*else*/ {
3785
- if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 89, __pyx_L1_error) }
3786
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_outer, __pyx_n_s_set_result); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 89, __pyx_L1_error)
3694
+ if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 92, __pyx_L1_error) }
3695
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_outer, __pyx_n_s_set_result); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 92, __pyx_L1_error)
3787
3696
  __Pyx_GOTREF(__pyx_t_4);
3788
3697
  { /* enter inner scope */
3789
- __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 89, __pyx_L19_error)
3790
- __Pyx_GOTREF(__pyx_t_3);
3791
- if (unlikely(!__pyx_cur_scope->__pyx_v_children)) { __Pyx_RaiseClosureNameError("children"); __PYX_ERR(0, 89, __pyx_L19_error) }
3698
+ __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 92, __pyx_L11_error)
3699
+ __Pyx_GOTREF(__pyx_t_5);
3700
+ if (unlikely(!__pyx_cur_scope->__pyx_v_children)) { __Pyx_RaiseClosureNameError("children"); __PYX_ERR(0, 92, __pyx_L11_error) }
3792
3701
  if (unlikely(__pyx_cur_scope->__pyx_v_children == Py_None)) {
3793
3702
  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
3794
- __PYX_ERR(0, 89, __pyx_L19_error)
3703
+ __PYX_ERR(0, 92, __pyx_L11_error)
3795
3704
  }
3796
- __pyx_t_11 = __pyx_cur_scope->__pyx_v_children; __Pyx_INCREF(__pyx_t_11);
3797
- __pyx_t_14 = 0;
3705
+ __pyx_t_7 = __pyx_cur_scope->__pyx_v_children; __Pyx_INCREF(__pyx_t_7);
3706
+ __pyx_t_8 = 0;
3798
3707
  for (;;) {
3799
3708
  {
3800
- Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_11);
3709
+ Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_7);
3801
3710
  #if !CYTHON_ASSUME_SAFE_MACROS
3802
- if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 89, __pyx_L19_error)
3711
+ if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 92, __pyx_L11_error)
3803
3712
  #endif
3804
- if (__pyx_t_14 >= __pyx_temp) break;
3713
+ if (__pyx_t_8 >= __pyx_temp) break;
3805
3714
  }
3806
3715
  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
3807
- __pyx_t_12 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_14); __Pyx_INCREF(__pyx_t_12); __pyx_t_14++; if (unlikely((0 < 0))) __PYX_ERR(0, 89, __pyx_L19_error)
3716
+ __pyx_t_9 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_9); __pyx_t_8++; if (unlikely((0 < 0))) __PYX_ERR(0, 92, __pyx_L11_error)
3808
3717
  #else
3809
- __pyx_t_12 = __Pyx_PySequence_ITEM(__pyx_t_11, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 89, __pyx_L19_error)
3810
- __Pyx_GOTREF(__pyx_t_12);
3718
+ __pyx_t_9 = __Pyx_PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 92, __pyx_L11_error)
3719
+ __Pyx_GOTREF(__pyx_t_9);
3811
3720
  #endif
3812
- __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_child, __pyx_t_12);
3813
- __pyx_t_12 = 0;
3814
- __pyx_t_12 = __pyx_f_6a_sync_7asyncio_7igather__get_result_or_exc(__pyx_7genexpr__pyx_v_child); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 89, __pyx_L19_error)
3815
- __Pyx_GOTREF(__pyx_t_12);
3816
- if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_12))) __PYX_ERR(0, 89, __pyx_L19_error)
3817
- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
3818
- }
3819
- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
3721
+ __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_child, __pyx_t_9);
3722
+ __pyx_t_9 = 0;
3723
+ __pyx_t_9 = __pyx_f_6a_sync_7asyncio_7igather__get_result_or_exc(__pyx_7genexpr__pyx_v_child); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 92, __pyx_L11_error)
3724
+ __Pyx_GOTREF(__pyx_t_9);
3725
+ if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 92, __pyx_L11_error)
3726
+ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
3727
+ }
3728
+ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
3820
3729
  __Pyx_XDECREF(__pyx_7genexpr__pyx_v_child); __pyx_7genexpr__pyx_v_child = 0;
3821
- goto __pyx_L23_exit_scope;
3822
- __pyx_L19_error:;
3730
+ goto __pyx_L15_exit_scope;
3731
+ __pyx_L11_error:;
3823
3732
  __Pyx_XDECREF(__pyx_7genexpr__pyx_v_child); __pyx_7genexpr__pyx_v_child = 0;
3824
3733
  goto __pyx_L1_error;
3825
- __pyx_L23_exit_scope:;
3734
+ __pyx_L15_exit_scope:;
3826
3735
  } /* exit inner scope */
3827
- __pyx_t_11 = NULL;
3736
+ __pyx_t_7 = NULL;
3828
3737
  __pyx_t_6 = 0;
3829
3738
  #if CYTHON_UNPACK_METHODS
3830
3739
  if (likely(PyMethod_Check(__pyx_t_4))) {
3831
- __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_4);
3832
- if (likely(__pyx_t_11)) {
3740
+ __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
3741
+ if (likely(__pyx_t_7)) {
3833
3742
  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
3834
- __Pyx_INCREF(__pyx_t_11);
3743
+ __Pyx_INCREF(__pyx_t_7);
3835
3744
  __Pyx_INCREF(function);
3836
3745
  __Pyx_DECREF_SET(__pyx_t_4, function);
3837
3746
  __pyx_t_6 = 1;
@@ -3839,19 +3748,19 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather__done_callback(PyO
3839
3748
  }
3840
3749
  #endif
3841
3750
  {
3842
- PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_3};
3843
- __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
3844
- __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
3845
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3846
- if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 89, __pyx_L1_error)
3847
- __Pyx_GOTREF(__pyx_t_5);
3751
+ PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_5};
3752
+ __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
3753
+ __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
3754
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3755
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 92, __pyx_L1_error)
3756
+ __Pyx_GOTREF(__pyx_t_3);
3848
3757
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
3849
3758
  }
3850
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3759
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3851
3760
  }
3852
3761
  __pyx_L8:;
3853
3762
 
3854
- /* "a_sync/asyncio/igather.pyx":75
3763
+ /* "a_sync/asyncio/igather.pyx":77
3855
3764
  * return
3856
3765
  *
3857
3766
  * if nfinished == nfuts: # <<<<<<<<<<<<<<
@@ -3860,7 +3769,7 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather__done_callback(PyO
3860
3769
  */
3861
3770
  }
3862
3771
 
3863
- /* "a_sync/asyncio/igather.pyx":64
3772
+ /* "a_sync/asyncio/igather.pyx":66
3864
3773
  * if return_exceptions:
3865
3774
  *
3866
3775
  * def _done_callback(fut: asyncio.Future) -> None: # <<<<<<<<<<<<<<
@@ -3875,9 +3784,8 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather__done_callback(PyO
3875
3784
  __Pyx_XDECREF(__pyx_t_3);
3876
3785
  __Pyx_XDECREF(__pyx_t_4);
3877
3786
  __Pyx_XDECREF(__pyx_t_5);
3878
- __Pyx_XDECREF(__pyx_t_11);
3879
- __Pyx_XDECREF(__pyx_t_12);
3880
- __Pyx_XDECREF(__pyx_t_13);
3787
+ __Pyx_XDECREF(__pyx_t_7);
3788
+ __Pyx_XDECREF(__pyx_t_9);
3881
3789
  __Pyx_AddTraceback("a_sync.asyncio.igather.cigather._done_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
3882
3790
  __pyx_r = NULL;
3883
3791
  __pyx_L0:;
@@ -3889,7 +3797,7 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather__done_callback(PyO
3889
3797
  return __pyx_r;
3890
3798
  }
3891
3799
 
3892
- /* "a_sync/asyncio/igather.pyx":93
3800
+ /* "a_sync/asyncio/igather.pyx":96
3893
3801
  * else:
3894
3802
  *
3895
3803
  * def _done_callback(fut: asyncio.Future) -> None: # <<<<<<<<<<<<<<
@@ -3950,12 +3858,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
3950
3858
  (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
3951
3859
  kw_args--;
3952
3860
  }
3953
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 93, __pyx_L3_error)
3861
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 96, __pyx_L3_error)
3954
3862
  else goto __pyx_L5_argtuple_error;
3955
3863
  }
3956
3864
  if (unlikely(kw_args > 0)) {
3957
3865
  const Py_ssize_t kwd_pos_args = __pyx_nargs;
3958
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_done_callback") < 0)) __PYX_ERR(0, 93, __pyx_L3_error)
3866
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_done_callback") < 0)) __PYX_ERR(0, 96, __pyx_L3_error)
3959
3867
  }
3960
3868
  } else if (unlikely(__pyx_nargs != 1)) {
3961
3869
  goto __pyx_L5_argtuple_error;
@@ -3966,7 +3874,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
3966
3874
  }
3967
3875
  goto __pyx_L6_skip;
3968
3876
  __pyx_L5_argtuple_error:;
3969
- __Pyx_RaiseArgtupleInvalid("_done_callback", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 93, __pyx_L3_error)
3877
+ __Pyx_RaiseArgtupleInvalid("_done_callback", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 96, __pyx_L3_error)
3970
3878
  __pyx_L6_skip:;
3971
3879
  goto __pyx_L4_argument_unpacking_done;
3972
3880
  __pyx_L3_error:;
@@ -4008,48 +3916,43 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather_2_done_callback(Py
4008
3916
  PyObject *__pyx_t_5 = NULL;
4009
3917
  unsigned int __pyx_t_6;
4010
3918
  PyObject *__pyx_t_7 = NULL;
4011
- PyObject *__pyx_t_8 = NULL;
3919
+ Py_ssize_t __pyx_t_8;
4012
3920
  PyObject *__pyx_t_9 = NULL;
4013
- int __pyx_t_10;
4014
- PyObject *__pyx_t_11 = NULL;
4015
- PyObject *__pyx_t_12 = NULL;
4016
- PyObject *__pyx_t_13 = NULL;
4017
- Py_ssize_t __pyx_t_14;
4018
3921
  int __pyx_lineno = 0;
4019
3922
  const char *__pyx_filename = NULL;
4020
3923
  int __pyx_clineno = 0;
4021
3924
  __Pyx_RefNannySetupContext("_done_callback", 1);
4022
3925
  __pyx_outer_scope = (struct __pyx_obj_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather *) __Pyx_CyFunction_GetClosure(__pyx_self);
4023
3926
  __pyx_cur_scope = __pyx_outer_scope;
4024
- __Pyx_TraceCall("_done_callback", __pyx_f[0], 93, 0, __PYX_ERR(0, 93, __pyx_L1_error));
3927
+ __Pyx_TraceCall("_done_callback", __pyx_f[0], 96, 0, __PYX_ERR(0, 96, __pyx_L1_error));
4025
3928
 
4026
- /* "a_sync/asyncio/igather.pyx":96
3929
+ /* "a_sync/asyncio/igather.pyx":99
4027
3930
  * # for some reason this wouldn't work until I added `return_exceptions=return_exceptions` to the func def
4028
3931
  * nonlocal nfinished
4029
3932
  * nfinished += 1 # <<<<<<<<<<<<<<
4030
3933
  *
4031
3934
  * if outer is None or outer.done():
4032
3935
  */
4033
- __Pyx_TraceLine(96,0,__PYX_ERR(0, 96, __pyx_L1_error))
3936
+ __Pyx_TraceLine(99,0,__PYX_ERR(0, 99, __pyx_L1_error))
4034
3937
  __pyx_cur_scope->__pyx_v_nfinished = (__pyx_cur_scope->__pyx_v_nfinished + 1);
4035
3938
 
4036
- /* "a_sync/asyncio/igather.pyx":98
3939
+ /* "a_sync/asyncio/igather.pyx":101
4037
3940
  * nfinished += 1
4038
3941
  *
4039
3942
  * if outer is None or outer.done(): # <<<<<<<<<<<<<<
4040
3943
  * if not fut.cancelled():
4041
3944
  * # Mark exception retrieved.
4042
3945
  */
4043
- __Pyx_TraceLine(98,0,__PYX_ERR(0, 98, __pyx_L1_error))
4044
- if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 98, __pyx_L1_error) }
3946
+ __Pyx_TraceLine(101,0,__PYX_ERR(0, 101, __pyx_L1_error))
3947
+ if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 101, __pyx_L1_error) }
4045
3948
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_outer == Py_None);
4046
3949
  if (!__pyx_t_2) {
4047
3950
  } else {
4048
3951
  __pyx_t_1 = __pyx_t_2;
4049
3952
  goto __pyx_L4_bool_binop_done;
4050
3953
  }
4051
- if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 98, __pyx_L1_error) }
4052
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_outer, __pyx_n_s_done); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 98, __pyx_L1_error)
3954
+ if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 101, __pyx_L1_error) }
3955
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_outer, __pyx_n_s_done); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 101, __pyx_L1_error)
4053
3956
  __Pyx_GOTREF(__pyx_t_4);
4054
3957
  __pyx_t_5 = NULL;
4055
3958
  __pyx_t_6 = 0;
@@ -4069,25 +3972,25 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather_2_done_callback(Py
4069
3972
  PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
4070
3973
  __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
4071
3974
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
4072
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 98, __pyx_L1_error)
3975
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 101, __pyx_L1_error)
4073
3976
  __Pyx_GOTREF(__pyx_t_3);
4074
3977
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4075
3978
  }
4076
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 98, __pyx_L1_error)
3979
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 101, __pyx_L1_error)
4077
3980
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4078
3981
  __pyx_t_1 = __pyx_t_2;
4079
3982
  __pyx_L4_bool_binop_done:;
4080
3983
  if (__pyx_t_1) {
4081
3984
 
4082
- /* "a_sync/asyncio/igather.pyx":99
3985
+ /* "a_sync/asyncio/igather.pyx":102
4083
3986
  *
4084
3987
  * if outer is None or outer.done():
4085
3988
  * if not fut.cancelled(): # <<<<<<<<<<<<<<
4086
3989
  * # Mark exception retrieved.
4087
3990
  * fut.exception()
4088
3991
  */
4089
- __Pyx_TraceLine(99,0,__PYX_ERR(0, 99, __pyx_L1_error))
4090
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_cancelled); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 99, __pyx_L1_error)
3992
+ __Pyx_TraceLine(102,0,__PYX_ERR(0, 102, __pyx_L1_error))
3993
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_cancelled); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 102, __pyx_L1_error)
4091
3994
  __Pyx_GOTREF(__pyx_t_4);
4092
3995
  __pyx_t_5 = NULL;
4093
3996
  __pyx_t_6 = 0;
@@ -4107,24 +4010,24 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather_2_done_callback(Py
4107
4010
  PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
4108
4011
  __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
4109
4012
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
4110
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 99, __pyx_L1_error)
4013
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 102, __pyx_L1_error)
4111
4014
  __Pyx_GOTREF(__pyx_t_3);
4112
4015
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4113
4016
  }
4114
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 99, __pyx_L1_error)
4017
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 102, __pyx_L1_error)
4115
4018
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4116
4019
  __pyx_t_2 = (!__pyx_t_1);
4117
4020
  if (__pyx_t_2) {
4118
4021
 
4119
- /* "a_sync/asyncio/igather.pyx":101
4022
+ /* "a_sync/asyncio/igather.pyx":104
4120
4023
  * if not fut.cancelled():
4121
4024
  * # Mark exception retrieved.
4122
4025
  * fut.exception() # <<<<<<<<<<<<<<
4123
4026
  * return
4124
4027
  *
4125
4028
  */
4126
- __Pyx_TraceLine(101,0,__PYX_ERR(0, 101, __pyx_L1_error))
4127
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_exception); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 101, __pyx_L1_error)
4029
+ __Pyx_TraceLine(104,0,__PYX_ERR(0, 104, __pyx_L1_error))
4030
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_exception); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 104, __pyx_L1_error)
4128
4031
  __Pyx_GOTREF(__pyx_t_4);
4129
4032
  __pyx_t_5 = NULL;
4130
4033
  __pyx_t_6 = 0;
@@ -4144,13 +4047,13 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather_2_done_callback(Py
4144
4047
  PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
4145
4048
  __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
4146
4049
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
4147
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 101, __pyx_L1_error)
4050
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 104, __pyx_L1_error)
4148
4051
  __Pyx_GOTREF(__pyx_t_3);
4149
4052
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4150
4053
  }
4151
4054
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4152
4055
 
4153
- /* "a_sync/asyncio/igather.pyx":99
4056
+ /* "a_sync/asyncio/igather.pyx":102
4154
4057
  *
4155
4058
  * if outer is None or outer.done():
4156
4059
  * if not fut.cancelled(): # <<<<<<<<<<<<<<
@@ -4159,19 +4062,19 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather_2_done_callback(Py
4159
4062
  */
4160
4063
  }
4161
4064
 
4162
- /* "a_sync/asyncio/igather.pyx":102
4065
+ /* "a_sync/asyncio/igather.pyx":105
4163
4066
  * # Mark exception retrieved.
4164
4067
  * fut.exception()
4165
4068
  * return # <<<<<<<<<<<<<<
4166
4069
  *
4167
4070
  * if fut.cancelled():
4168
4071
  */
4169
- __Pyx_TraceLine(102,0,__PYX_ERR(0, 102, __pyx_L1_error))
4072
+ __Pyx_TraceLine(105,0,__PYX_ERR(0, 105, __pyx_L1_error))
4170
4073
  __Pyx_XDECREF(__pyx_r);
4171
4074
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
4172
4075
  goto __pyx_L0;
4173
4076
 
4174
- /* "a_sync/asyncio/igather.pyx":98
4077
+ /* "a_sync/asyncio/igather.pyx":101
4175
4078
  * nfinished += 1
4176
4079
  *
4177
4080
  * if outer is None or outer.done(): # <<<<<<<<<<<<<<
@@ -4180,15 +4083,15 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather_2_done_callback(Py
4180
4083
  */
4181
4084
  }
4182
4085
 
4183
- /* "a_sync/asyncio/igather.pyx":104
4086
+ /* "a_sync/asyncio/igather.pyx":107
4184
4087
  * return
4185
4088
  *
4186
4089
  * if fut.cancelled(): # <<<<<<<<<<<<<<
4187
4090
  * # Check if 'fut' is cancelled first, as
4188
4091
  * # 'fut.exception()' will *raise* a CancelledError
4189
4092
  */
4190
- __Pyx_TraceLine(104,0,__PYX_ERR(0, 104, __pyx_L1_error))
4191
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_cancelled); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 104, __pyx_L1_error)
4093
+ __Pyx_TraceLine(107,0,__PYX_ERR(0, 107, __pyx_L1_error))
4094
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_cancelled); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 107, __pyx_L1_error)
4192
4095
  __Pyx_GOTREF(__pyx_t_4);
4193
4096
  __pyx_t_5 = NULL;
4194
4097
  __pyx_t_6 = 0;
@@ -4208,179 +4111,117 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather_2_done_callback(Py
4208
4111
  PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
4209
4112
  __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
4210
4113
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
4211
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 104, __pyx_L1_error)
4114
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 107, __pyx_L1_error)
4212
4115
  __Pyx_GOTREF(__pyx_t_3);
4213
4116
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4214
4117
  }
4215
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 104, __pyx_L1_error)
4118
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 107, __pyx_L1_error)
4216
4119
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4217
4120
  if (__pyx_t_2) {
4218
4121
 
4219
- /* "a_sync/asyncio/igather.pyx":108
4220
- * # 'fut.exception()' will *raise* a CancelledError
4221
- * # instead of returning it.
4222
- * try: # <<<<<<<<<<<<<<
4223
- * exc = fut._make_cancelled_error()
4224
- * except AttributeError:
4225
- */
4226
- __Pyx_TraceLine(108,0,__PYX_ERR(0, 108, __pyx_L1_error))
4227
- {
4228
- __Pyx_PyThreadState_declare
4229
- __Pyx_PyThreadState_assign
4230
- __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
4231
- __Pyx_XGOTREF(__pyx_t_7);
4232
- __Pyx_XGOTREF(__pyx_t_8);
4233
- __Pyx_XGOTREF(__pyx_t_9);
4234
- /*try:*/ {
4235
-
4236
- /* "a_sync/asyncio/igather.pyx":109
4237
- * # instead of returning it.
4238
- * try:
4239
- * exc = fut._make_cancelled_error() # <<<<<<<<<<<<<<
4240
- * except AttributeError:
4241
- * exc = CancelledError()
4122
+ /* "a_sync/asyncio/igather.pyx":113
4123
+ * exc = (
4124
+ * CancelledError()
4125
+ * if PY_VERSION_HEX < 0x03090000 # Python 3.9 # <<<<<<<<<<<<<<
4126
+ * else fut._make_cancelled_error()
4127
+ * )
4242
4128
  */
4243
- __Pyx_TraceLine(109,0,__PYX_ERR(0, 109, __pyx_L8_error))
4244
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_make_cancelled_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 109, __pyx_L8_error)
4245
- __Pyx_GOTREF(__pyx_t_4);
4246
- __pyx_t_5 = NULL;
4247
- __pyx_t_6 = 0;
4248
- #if CYTHON_UNPACK_METHODS
4249
- if (likely(PyMethod_Check(__pyx_t_4))) {
4250
- __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
4251
- if (likely(__pyx_t_5)) {
4252
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
4253
- __Pyx_INCREF(__pyx_t_5);
4254
- __Pyx_INCREF(function);
4255
- __Pyx_DECREF_SET(__pyx_t_4, function);
4256
- __pyx_t_6 = 1;
4257
- }
4258
- }
4259
- #endif
4260
- {
4261
- PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
4262
- __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
4263
- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
4264
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 109, __pyx_L8_error)
4265
- __Pyx_GOTREF(__pyx_t_3);
4266
- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4267
- }
4268
- __pyx_v_exc = __pyx_t_3;
4269
- __pyx_t_3 = 0;
4129
+ __Pyx_TraceLine(113,0,__PYX_ERR(0, 113, __pyx_L1_error))
4130
+ __pyx_t_2 = (PY_VERSION_HEX < 0x03090000);
4131
+ if (__pyx_t_2) {
4270
4132
 
4271
- /* "a_sync/asyncio/igather.pyx":108
4272
- * # 'fut.exception()' will *raise* a CancelledError
4133
+ /* "a_sync/asyncio/igather.pyx":112
4273
4134
  * # instead of returning it.
4274
- * try: # <<<<<<<<<<<<<<
4275
- * exc = fut._make_cancelled_error()
4276
- * except AttributeError:
4277
- */
4135
+ * exc = (
4136
+ * CancelledError() # <<<<<<<<<<<<<<
4137
+ * if PY_VERSION_HEX < 0x03090000 # Python 3.9
4138
+ * else fut._make_cancelled_error()
4139
+ */
4140
+ __Pyx_TraceLine(112,0,__PYX_ERR(0, 112, __pyx_L1_error))
4141
+ __Pyx_INCREF(__pyx_v_6a_sync_7asyncio_7igather_CancelledError);
4142
+ __pyx_t_5 = __pyx_v_6a_sync_7asyncio_7igather_CancelledError; __pyx_t_7 = NULL;
4143
+ __pyx_t_6 = 0;
4144
+ #if CYTHON_UNPACK_METHODS
4145
+ if (unlikely(PyMethod_Check(__pyx_t_5))) {
4146
+ __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
4147
+ if (likely(__pyx_t_7)) {
4148
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
4149
+ __Pyx_INCREF(__pyx_t_7);
4150
+ __Pyx_INCREF(function);
4151
+ __Pyx_DECREF_SET(__pyx_t_5, function);
4152
+ __pyx_t_6 = 1;
4153
+ }
4278
4154
  }
4279
- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
4280
- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
4281
- __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
4282
- goto __pyx_L13_try_end;
4283
- __pyx_L8_error:;
4284
- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
4285
- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
4286
- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
4155
+ #endif
4156
+ {
4157
+ PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
4158
+ __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
4159
+ __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
4160
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 112, __pyx_L1_error)
4161
+ __Pyx_GOTREF(__pyx_t_4);
4162
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4163
+ }
4164
+ __pyx_t_3 = __pyx_t_4;
4165
+ __pyx_t_4 = 0;
4166
+ } else {
4287
4167
 
4288
- /* "a_sync/asyncio/igather.pyx":110
4289
- * try:
4290
- * exc = fut._make_cancelled_error()
4291
- * except AttributeError: # <<<<<<<<<<<<<<
4292
- * exc = CancelledError()
4168
+ /* "a_sync/asyncio/igather.pyx":114
4169
+ * CancelledError()
4170
+ * if PY_VERSION_HEX < 0x03090000 # Python 3.9
4171
+ * else fut._make_cancelled_error() # <<<<<<<<<<<<<<
4172
+ * )
4293
4173
  * outer.set_exception(exc)
4294
4174
  */
4295
- __Pyx_TraceLine(110,0,__PYX_ERR(0, 110, __pyx_L10_except_error))
4296
- __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError);
4297
- if (__pyx_t_10) {
4298
- __Pyx_AddTraceback("a_sync.asyncio.igather.cigather._done_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
4299
- if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5) < 0) __PYX_ERR(0, 110, __pyx_L10_except_error)
4300
- __Pyx_XGOTREF(__pyx_t_3);
4301
- __Pyx_XGOTREF(__pyx_t_4);
4302
- __Pyx_XGOTREF(__pyx_t_5);
4303
-
4304
- /* "a_sync/asyncio/igather.pyx":111
4305
- * exc = fut._make_cancelled_error()
4306
- * except AttributeError:
4307
- * exc = CancelledError() # <<<<<<<<<<<<<<
4308
- * outer.set_exception(exc)
4309
- * return
4310
- */
4311
- __Pyx_TraceLine(111,0,__PYX_ERR(0, 111, __pyx_L10_except_error))
4312
- __Pyx_INCREF(__pyx_v_6a_sync_7asyncio_7igather_CancelledError);
4313
- __pyx_t_12 = __pyx_v_6a_sync_7asyncio_7igather_CancelledError; __pyx_t_13 = NULL;
4314
- __pyx_t_6 = 0;
4315
- #if CYTHON_UNPACK_METHODS
4316
- if (unlikely(PyMethod_Check(__pyx_t_12))) {
4317
- __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_12);
4318
- if (likely(__pyx_t_13)) {
4319
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
4320
- __Pyx_INCREF(__pyx_t_13);
4321
- __Pyx_INCREF(function);
4322
- __Pyx_DECREF_SET(__pyx_t_12, function);
4323
- __pyx_t_6 = 1;
4324
- }
4175
+ __Pyx_TraceLine(114,0,__PYX_ERR(0, 114, __pyx_L1_error))
4176
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_make_cancelled_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 114, __pyx_L1_error)
4177
+ __Pyx_GOTREF(__pyx_t_5);
4178
+ __pyx_t_7 = NULL;
4179
+ __pyx_t_6 = 0;
4180
+ #if CYTHON_UNPACK_METHODS
4181
+ if (likely(PyMethod_Check(__pyx_t_5))) {
4182
+ __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
4183
+ if (likely(__pyx_t_7)) {
4184
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
4185
+ __Pyx_INCREF(__pyx_t_7);
4186
+ __Pyx_INCREF(function);
4187
+ __Pyx_DECREF_SET(__pyx_t_5, function);
4188
+ __pyx_t_6 = 1;
4325
4189
  }
4326
- #endif
4327
- {
4328
- PyObject *__pyx_callargs[2] = {__pyx_t_13, NULL};
4329
- __pyx_t_11 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
4330
- __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
4331
- if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 111, __pyx_L10_except_error)
4332
- __Pyx_GOTREF(__pyx_t_11);
4333
- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
4334
- }
4335
- __Pyx_XDECREF_SET(__pyx_v_exc, __pyx_t_11);
4336
- __pyx_t_11 = 0;
4337
- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
4338
- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
4339
- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
4340
- goto __pyx_L9_exception_handled;
4341
4190
  }
4342
- goto __pyx_L10_except_error;
4191
+ #endif
4192
+ {
4193
+ PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
4194
+ __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
4195
+ __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
4196
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 114, __pyx_L1_error)
4197
+ __Pyx_GOTREF(__pyx_t_4);
4198
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4199
+ }
4200
+ __pyx_t_3 = __pyx_t_4;
4201
+ __pyx_t_4 = 0;
4202
+ }
4203
+ __pyx_v_exc = __pyx_t_3;
4204
+ __pyx_t_3 = 0;
4343
4205
 
4344
- /* "a_sync/asyncio/igather.pyx":108
4345
- * # 'fut.exception()' will *raise* a CancelledError
4346
- * # instead of returning it.
4347
- * try: # <<<<<<<<<<<<<<
4348
- * exc = fut._make_cancelled_error()
4349
- * except AttributeError:
4350
- */
4351
- __pyx_L10_except_error:;
4352
- __Pyx_XGIVEREF(__pyx_t_7);
4353
- __Pyx_XGIVEREF(__pyx_t_8);
4354
- __Pyx_XGIVEREF(__pyx_t_9);
4355
- __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
4356
- goto __pyx_L1_error;
4357
- __pyx_L9_exception_handled:;
4358
- __Pyx_XGIVEREF(__pyx_t_7);
4359
- __Pyx_XGIVEREF(__pyx_t_8);
4360
- __Pyx_XGIVEREF(__pyx_t_9);
4361
- __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
4362
- __pyx_L13_try_end:;
4363
- }
4364
-
4365
- /* "a_sync/asyncio/igather.pyx":112
4366
- * except AttributeError:
4367
- * exc = CancelledError()
4206
+ /* "a_sync/asyncio/igather.pyx":116
4207
+ * else fut._make_cancelled_error()
4208
+ * )
4368
4209
  * outer.set_exception(exc) # <<<<<<<<<<<<<<
4369
4210
  * return
4370
4211
  * else:
4371
4212
  */
4372
- __Pyx_TraceLine(112,0,__PYX_ERR(0, 112, __pyx_L1_error))
4373
- if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 112, __pyx_L1_error) }
4374
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_outer, __pyx_n_s_set_exception); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 112, __pyx_L1_error)
4213
+ __Pyx_TraceLine(116,0,__PYX_ERR(0, 116, __pyx_L1_error))
4214
+ if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 116, __pyx_L1_error) }
4215
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_outer, __pyx_n_s_set_exception); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 116, __pyx_L1_error)
4375
4216
  __Pyx_GOTREF(__pyx_t_4);
4376
- __pyx_t_3 = NULL;
4217
+ __pyx_t_5 = NULL;
4377
4218
  __pyx_t_6 = 0;
4378
4219
  #if CYTHON_UNPACK_METHODS
4379
4220
  if (likely(PyMethod_Check(__pyx_t_4))) {
4380
- __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
4381
- if (likely(__pyx_t_3)) {
4221
+ __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
4222
+ if (likely(__pyx_t_5)) {
4382
4223
  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
4383
- __Pyx_INCREF(__pyx_t_3);
4224
+ __Pyx_INCREF(__pyx_t_5);
4384
4225
  __Pyx_INCREF(function);
4385
4226
  __Pyx_DECREF_SET(__pyx_t_4, function);
4386
4227
  __pyx_t_6 = 1;
@@ -4388,28 +4229,28 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather_2_done_callback(Py
4388
4229
  }
4389
4230
  #endif
4390
4231
  {
4391
- PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_exc};
4392
- __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
4393
- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
4394
- if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 112, __pyx_L1_error)
4395
- __Pyx_GOTREF(__pyx_t_5);
4232
+ PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_exc};
4233
+ __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
4234
+ __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
4235
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 116, __pyx_L1_error)
4236
+ __Pyx_GOTREF(__pyx_t_3);
4396
4237
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4397
4238
  }
4398
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4239
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4399
4240
 
4400
- /* "a_sync/asyncio/igather.pyx":113
4401
- * exc = CancelledError()
4241
+ /* "a_sync/asyncio/igather.pyx":117
4242
+ * )
4402
4243
  * outer.set_exception(exc)
4403
4244
  * return # <<<<<<<<<<<<<<
4404
4245
  * else:
4405
4246
  * exc = fut.exception()
4406
4247
  */
4407
- __Pyx_TraceLine(113,0,__PYX_ERR(0, 113, __pyx_L1_error))
4248
+ __Pyx_TraceLine(117,0,__PYX_ERR(0, 117, __pyx_L1_error))
4408
4249
  __Pyx_XDECREF(__pyx_r);
4409
4250
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
4410
4251
  goto __pyx_L0;
4411
4252
 
4412
- /* "a_sync/asyncio/igather.pyx":104
4253
+ /* "a_sync/asyncio/igather.pyx":107
4413
4254
  * return
4414
4255
  *
4415
4256
  * if fut.cancelled(): # <<<<<<<<<<<<<<
@@ -4418,25 +4259,25 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather_2_done_callback(Py
4418
4259
  */
4419
4260
  }
4420
4261
 
4421
- /* "a_sync/asyncio/igather.pyx":115
4262
+ /* "a_sync/asyncio/igather.pyx":119
4422
4263
  * return
4423
4264
  * else:
4424
4265
  * exc = fut.exception() # <<<<<<<<<<<<<<
4425
4266
  * if exc is not None:
4426
4267
  * outer.set_exception(exc)
4427
4268
  */
4428
- __Pyx_TraceLine(115,0,__PYX_ERR(0, 115, __pyx_L1_error))
4269
+ __Pyx_TraceLine(119,0,__PYX_ERR(0, 119, __pyx_L1_error))
4429
4270
  /*else*/ {
4430
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_exception); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 115, __pyx_L1_error)
4271
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_exception); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 119, __pyx_L1_error)
4431
4272
  __Pyx_GOTREF(__pyx_t_4);
4432
- __pyx_t_3 = NULL;
4273
+ __pyx_t_5 = NULL;
4433
4274
  __pyx_t_6 = 0;
4434
4275
  #if CYTHON_UNPACK_METHODS
4435
4276
  if (likely(PyMethod_Check(__pyx_t_4))) {
4436
- __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
4437
- if (likely(__pyx_t_3)) {
4277
+ __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
4278
+ if (likely(__pyx_t_5)) {
4438
4279
  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
4439
- __Pyx_INCREF(__pyx_t_3);
4280
+ __Pyx_INCREF(__pyx_t_5);
4440
4281
  __Pyx_INCREF(function);
4441
4282
  __Pyx_DECREF_SET(__pyx_t_4, function);
4442
4283
  __pyx_t_6 = 1;
@@ -4444,46 +4285,46 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather_2_done_callback(Py
4444
4285
  }
4445
4286
  #endif
4446
4287
  {
4447
- PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
4448
- __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
4449
- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
4450
- if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 115, __pyx_L1_error)
4451
- __Pyx_GOTREF(__pyx_t_5);
4288
+ PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
4289
+ __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
4290
+ __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
4291
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 119, __pyx_L1_error)
4292
+ __Pyx_GOTREF(__pyx_t_3);
4452
4293
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4453
4294
  }
4454
- __pyx_v_exc = __pyx_t_5;
4455
- __pyx_t_5 = 0;
4295
+ __pyx_v_exc = __pyx_t_3;
4296
+ __pyx_t_3 = 0;
4456
4297
 
4457
- /* "a_sync/asyncio/igather.pyx":116
4298
+ /* "a_sync/asyncio/igather.pyx":120
4458
4299
  * else:
4459
4300
  * exc = fut.exception()
4460
4301
  * if exc is not None: # <<<<<<<<<<<<<<
4461
4302
  * outer.set_exception(exc)
4462
4303
  * return
4463
4304
  */
4464
- __Pyx_TraceLine(116,0,__PYX_ERR(0, 116, __pyx_L1_error))
4305
+ __Pyx_TraceLine(120,0,__PYX_ERR(0, 120, __pyx_L1_error))
4465
4306
  __pyx_t_2 = (__pyx_v_exc != Py_None);
4466
4307
  if (__pyx_t_2) {
4467
4308
 
4468
- /* "a_sync/asyncio/igather.pyx":117
4309
+ /* "a_sync/asyncio/igather.pyx":121
4469
4310
  * exc = fut.exception()
4470
4311
  * if exc is not None:
4471
4312
  * outer.set_exception(exc) # <<<<<<<<<<<<<<
4472
4313
  * return
4473
4314
  *
4474
4315
  */
4475
- __Pyx_TraceLine(117,0,__PYX_ERR(0, 117, __pyx_L1_error))
4476
- if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 117, __pyx_L1_error) }
4477
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_outer, __pyx_n_s_set_exception); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 117, __pyx_L1_error)
4316
+ __Pyx_TraceLine(121,0,__PYX_ERR(0, 121, __pyx_L1_error))
4317
+ if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 121, __pyx_L1_error) }
4318
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_outer, __pyx_n_s_set_exception); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 121, __pyx_L1_error)
4478
4319
  __Pyx_GOTREF(__pyx_t_4);
4479
- __pyx_t_3 = NULL;
4320
+ __pyx_t_5 = NULL;
4480
4321
  __pyx_t_6 = 0;
4481
4322
  #if CYTHON_UNPACK_METHODS
4482
4323
  if (likely(PyMethod_Check(__pyx_t_4))) {
4483
- __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
4484
- if (likely(__pyx_t_3)) {
4324
+ __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
4325
+ if (likely(__pyx_t_5)) {
4485
4326
  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
4486
- __Pyx_INCREF(__pyx_t_3);
4327
+ __Pyx_INCREF(__pyx_t_5);
4487
4328
  __Pyx_INCREF(function);
4488
4329
  __Pyx_DECREF_SET(__pyx_t_4, function);
4489
4330
  __pyx_t_6 = 1;
@@ -4491,28 +4332,28 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather_2_done_callback(Py
4491
4332
  }
4492
4333
  #endif
4493
4334
  {
4494
- PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_exc};
4495
- __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
4496
- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
4497
- if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 117, __pyx_L1_error)
4498
- __Pyx_GOTREF(__pyx_t_5);
4335
+ PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_exc};
4336
+ __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
4337
+ __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
4338
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 121, __pyx_L1_error)
4339
+ __Pyx_GOTREF(__pyx_t_3);
4499
4340
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4500
4341
  }
4501
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4342
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4502
4343
 
4503
- /* "a_sync/asyncio/igather.pyx":118
4344
+ /* "a_sync/asyncio/igather.pyx":122
4504
4345
  * if exc is not None:
4505
4346
  * outer.set_exception(exc)
4506
4347
  * return # <<<<<<<<<<<<<<
4507
4348
  *
4508
4349
  * if nfinished == nfuts:
4509
4350
  */
4510
- __Pyx_TraceLine(118,0,__PYX_ERR(0, 118, __pyx_L1_error))
4351
+ __Pyx_TraceLine(122,0,__PYX_ERR(0, 122, __pyx_L1_error))
4511
4352
  __Pyx_XDECREF(__pyx_r);
4512
4353
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
4513
4354
  goto __pyx_L0;
4514
4355
 
4515
- /* "a_sync/asyncio/igather.pyx":116
4356
+ /* "a_sync/asyncio/igather.pyx":120
4516
4357
  * else:
4517
4358
  * exc = fut.exception()
4518
4359
  * if exc is not None: # <<<<<<<<<<<<<<
@@ -4522,191 +4363,126 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather_2_done_callback(Py
4522
4363
  }
4523
4364
  }
4524
4365
 
4525
- /* "a_sync/asyncio/igather.pyx":120
4366
+ /* "a_sync/asyncio/igather.pyx":124
4526
4367
  * return
4527
4368
  *
4528
4369
  * if nfinished == nfuts: # <<<<<<<<<<<<<<
4529
4370
  * # All futures are done; create a list of results
4530
4371
  * # and set it to the 'outer' future.
4531
4372
  */
4532
- __Pyx_TraceLine(120,0,__PYX_ERR(0, 120, __pyx_L1_error))
4373
+ __Pyx_TraceLine(124,0,__PYX_ERR(0, 124, __pyx_L1_error))
4533
4374
  __pyx_t_2 = (__pyx_cur_scope->__pyx_v_nfinished == __pyx_cur_scope->__pyx_v_nfuts);
4534
4375
  if (__pyx_t_2) {
4535
4376
 
4536
- /* "a_sync/asyncio/igather.pyx":124
4377
+ /* "a_sync/asyncio/igather.pyx":128
4537
4378
  * # and set it to the 'outer' future.
4538
4379
  *
4539
4380
  * if outer._cancel_requested: # <<<<<<<<<<<<<<
4540
4381
  * # If gather is being cancelled we must propagate the
4541
4382
  * # cancellation regardless of *return_exceptions* argument.
4542
4383
  */
4543
- __Pyx_TraceLine(124,0,__PYX_ERR(0, 124, __pyx_L1_error))
4544
- if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 124, __pyx_L1_error) }
4545
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_outer, __pyx_n_s_cancel_requested); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 124, __pyx_L1_error)
4546
- __Pyx_GOTREF(__pyx_t_5);
4547
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 124, __pyx_L1_error)
4548
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4384
+ __Pyx_TraceLine(128,0,__PYX_ERR(0, 128, __pyx_L1_error))
4385
+ if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 128, __pyx_L1_error) }
4386
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_outer, __pyx_n_s_cancel_requested); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 128, __pyx_L1_error)
4387
+ __Pyx_GOTREF(__pyx_t_3);
4388
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 128, __pyx_L1_error)
4389
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4549
4390
  if (__pyx_t_2) {
4550
4391
 
4551
- /* "a_sync/asyncio/igather.pyx":128
4552
- * # cancellation regardless of *return_exceptions* argument.
4553
- * # See issue 32684.
4554
- * try: # <<<<<<<<<<<<<<
4555
- * exc = fut._make_cancelled_error()
4556
- * except AttributeError:
4557
- */
4558
- __Pyx_TraceLine(128,0,__PYX_ERR(0, 128, __pyx_L1_error))
4559
- {
4560
- __Pyx_PyThreadState_declare
4561
- __Pyx_PyThreadState_assign
4562
- __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7);
4563
- __Pyx_XGOTREF(__pyx_t_9);
4564
- __Pyx_XGOTREF(__pyx_t_8);
4565
- __Pyx_XGOTREF(__pyx_t_7);
4566
- /*try:*/ {
4567
-
4568
- /* "a_sync/asyncio/igather.pyx":129
4569
- * # See issue 32684.
4570
- * try:
4571
- * exc = fut._make_cancelled_error() # <<<<<<<<<<<<<<
4572
- * except AttributeError:
4573
- * exc = CancelledError()
4392
+ /* "a_sync/asyncio/igather.pyx":134
4393
+ * exc = (
4394
+ * CancelledError()
4395
+ * if PY_VERSION_HEX < 0x03090000 # Python 3.9 # <<<<<<<<<<<<<<
4396
+ * else fut._make_cancelled_error()
4397
+ * )
4574
4398
  */
4575
- __Pyx_TraceLine(129,0,__PYX_ERR(0, 129, __pyx_L19_error))
4576
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_make_cancelled_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 129, __pyx_L19_error)
4577
- __Pyx_GOTREF(__pyx_t_4);
4578
- __pyx_t_3 = NULL;
4579
- __pyx_t_6 = 0;
4580
- #if CYTHON_UNPACK_METHODS
4581
- if (likely(PyMethod_Check(__pyx_t_4))) {
4582
- __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
4583
- if (likely(__pyx_t_3)) {
4584
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
4585
- __Pyx_INCREF(__pyx_t_3);
4586
- __Pyx_INCREF(function);
4587
- __Pyx_DECREF_SET(__pyx_t_4, function);
4588
- __pyx_t_6 = 1;
4589
- }
4590
- }
4591
- #endif
4592
- {
4593
- PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
4594
- __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
4595
- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
4596
- if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 129, __pyx_L19_error)
4597
- __Pyx_GOTREF(__pyx_t_5);
4598
- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4599
- }
4600
- __Pyx_DECREF_SET(__pyx_v_exc, __pyx_t_5);
4601
- __pyx_t_5 = 0;
4399
+ __Pyx_TraceLine(134,0,__PYX_ERR(0, 134, __pyx_L1_error))
4400
+ __pyx_t_2 = (PY_VERSION_HEX < 0x03090000);
4401
+ if (__pyx_t_2) {
4602
4402
 
4603
- /* "a_sync/asyncio/igather.pyx":128
4604
- * # cancellation regardless of *return_exceptions* argument.
4403
+ /* "a_sync/asyncio/igather.pyx":133
4605
4404
  * # See issue 32684.
4606
- * try: # <<<<<<<<<<<<<<
4607
- * exc = fut._make_cancelled_error()
4608
- * except AttributeError:
4405
+ * exc = (
4406
+ * CancelledError() # <<<<<<<<<<<<<<
4407
+ * if PY_VERSION_HEX < 0x03090000 # Python 3.9
4408
+ * else fut._make_cancelled_error()
4609
4409
  */
4410
+ __Pyx_TraceLine(133,0,__PYX_ERR(0, 133, __pyx_L1_error))
4411
+ __Pyx_INCREF(__pyx_v_6a_sync_7asyncio_7igather_CancelledError);
4412
+ __pyx_t_5 = __pyx_v_6a_sync_7asyncio_7igather_CancelledError; __pyx_t_7 = NULL;
4413
+ __pyx_t_6 = 0;
4414
+ #if CYTHON_UNPACK_METHODS
4415
+ if (unlikely(PyMethod_Check(__pyx_t_5))) {
4416
+ __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
4417
+ if (likely(__pyx_t_7)) {
4418
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
4419
+ __Pyx_INCREF(__pyx_t_7);
4420
+ __Pyx_INCREF(function);
4421
+ __Pyx_DECREF_SET(__pyx_t_5, function);
4422
+ __pyx_t_6 = 1;
4423
+ }
4610
4424
  }
4611
- __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
4612
- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
4613
- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
4614
- goto __pyx_L24_try_end;
4615
- __pyx_L19_error:;
4616
- __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
4617
- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
4618
- __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
4619
- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
4620
- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
4621
- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
4425
+ #endif
4426
+ {
4427
+ PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
4428
+ __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
4429
+ __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
4430
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 133, __pyx_L1_error)
4431
+ __Pyx_GOTREF(__pyx_t_4);
4432
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4433
+ }
4434
+ __pyx_t_3 = __pyx_t_4;
4435
+ __pyx_t_4 = 0;
4436
+ } else {
4622
4437
 
4623
- /* "a_sync/asyncio/igather.pyx":130
4624
- * try:
4625
- * exc = fut._make_cancelled_error()
4626
- * except AttributeError: # <<<<<<<<<<<<<<
4627
- * exc = CancelledError()
4438
+ /* "a_sync/asyncio/igather.pyx":135
4439
+ * CancelledError()
4440
+ * if PY_VERSION_HEX < 0x03090000 # Python 3.9
4441
+ * else fut._make_cancelled_error() # <<<<<<<<<<<<<<
4442
+ * )
4628
4443
  * outer.set_exception(exc)
4629
4444
  */
4630
- __Pyx_TraceLine(130,0,__PYX_ERR(0, 130, __pyx_L21_except_error))
4631
- __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError);
4632
- if (__pyx_t_10) {
4633
- __Pyx_AddTraceback("a_sync.asyncio.igather.cigather._done_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
4634
- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_3) < 0) __PYX_ERR(0, 130, __pyx_L21_except_error)
4635
- __Pyx_XGOTREF(__pyx_t_5);
4636
- __Pyx_XGOTREF(__pyx_t_4);
4637
- __Pyx_XGOTREF(__pyx_t_3);
4638
-
4639
- /* "a_sync/asyncio/igather.pyx":131
4640
- * exc = fut._make_cancelled_error()
4641
- * except AttributeError:
4642
- * exc = CancelledError() # <<<<<<<<<<<<<<
4643
- * outer.set_exception(exc)
4644
- * else:
4645
- */
4646
- __Pyx_TraceLine(131,0,__PYX_ERR(0, 131, __pyx_L21_except_error))
4647
- __Pyx_INCREF(__pyx_v_6a_sync_7asyncio_7igather_CancelledError);
4648
- __pyx_t_12 = __pyx_v_6a_sync_7asyncio_7igather_CancelledError; __pyx_t_13 = NULL;
4649
- __pyx_t_6 = 0;
4650
- #if CYTHON_UNPACK_METHODS
4651
- if (unlikely(PyMethod_Check(__pyx_t_12))) {
4652
- __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_12);
4653
- if (likely(__pyx_t_13)) {
4654
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
4655
- __Pyx_INCREF(__pyx_t_13);
4656
- __Pyx_INCREF(function);
4657
- __Pyx_DECREF_SET(__pyx_t_12, function);
4658
- __pyx_t_6 = 1;
4659
- }
4660
- }
4661
- #endif
4662
- {
4663
- PyObject *__pyx_callargs[2] = {__pyx_t_13, NULL};
4664
- __pyx_t_11 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
4665
- __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
4666
- if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 131, __pyx_L21_except_error)
4667
- __Pyx_GOTREF(__pyx_t_11);
4668
- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
4445
+ __Pyx_TraceLine(135,0,__PYX_ERR(0, 135, __pyx_L1_error))
4446
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_make_cancelled_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 135, __pyx_L1_error)
4447
+ __Pyx_GOTREF(__pyx_t_5);
4448
+ __pyx_t_7 = NULL;
4449
+ __pyx_t_6 = 0;
4450
+ #if CYTHON_UNPACK_METHODS
4451
+ if (likely(PyMethod_Check(__pyx_t_5))) {
4452
+ __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
4453
+ if (likely(__pyx_t_7)) {
4454
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
4455
+ __Pyx_INCREF(__pyx_t_7);
4456
+ __Pyx_INCREF(function);
4457
+ __Pyx_DECREF_SET(__pyx_t_5, function);
4458
+ __pyx_t_6 = 1;
4669
4459
  }
4670
- __Pyx_DECREF_SET(__pyx_v_exc, __pyx_t_11);
4671
- __pyx_t_11 = 0;
4672
- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
4673
- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
4674
- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
4675
- goto __pyx_L20_exception_handled;
4676
4460
  }
4677
- goto __pyx_L21_except_error;
4678
-
4679
- /* "a_sync/asyncio/igather.pyx":128
4680
- * # cancellation regardless of *return_exceptions* argument.
4681
- * # See issue 32684.
4682
- * try: # <<<<<<<<<<<<<<
4683
- * exc = fut._make_cancelled_error()
4684
- * except AttributeError:
4685
- */
4686
- __pyx_L21_except_error:;
4687
- __Pyx_XGIVEREF(__pyx_t_9);
4688
- __Pyx_XGIVEREF(__pyx_t_8);
4689
- __Pyx_XGIVEREF(__pyx_t_7);
4690
- __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_8, __pyx_t_7);
4691
- goto __pyx_L1_error;
4692
- __pyx_L20_exception_handled:;
4693
- __Pyx_XGIVEREF(__pyx_t_9);
4694
- __Pyx_XGIVEREF(__pyx_t_8);
4695
- __Pyx_XGIVEREF(__pyx_t_7);
4696
- __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_8, __pyx_t_7);
4697
- __pyx_L24_try_end:;
4461
+ #endif
4462
+ {
4463
+ PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
4464
+ __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
4465
+ __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
4466
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 135, __pyx_L1_error)
4467
+ __Pyx_GOTREF(__pyx_t_4);
4468
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4469
+ }
4470
+ __pyx_t_3 = __pyx_t_4;
4471
+ __pyx_t_4 = 0;
4698
4472
  }
4473
+ __Pyx_DECREF_SET(__pyx_v_exc, __pyx_t_3);
4474
+ __pyx_t_3 = 0;
4699
4475
 
4700
- /* "a_sync/asyncio/igather.pyx":132
4701
- * except AttributeError:
4702
- * exc = CancelledError()
4476
+ /* "a_sync/asyncio/igather.pyx":137
4477
+ * else fut._make_cancelled_error()
4478
+ * )
4703
4479
  * outer.set_exception(exc) # <<<<<<<<<<<<<<
4704
4480
  * else:
4705
4481
  * outer.set_result([_get_result_or_exc(child) for child in children])
4706
4482
  */
4707
- __Pyx_TraceLine(132,0,__PYX_ERR(0, 132, __pyx_L1_error))
4708
- if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 132, __pyx_L1_error) }
4709
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_outer, __pyx_n_s_set_exception); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 132, __pyx_L1_error)
4483
+ __Pyx_TraceLine(137,0,__PYX_ERR(0, 137, __pyx_L1_error))
4484
+ if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 137, __pyx_L1_error) }
4485
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_outer, __pyx_n_s_set_exception); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 137, __pyx_L1_error)
4710
4486
  __Pyx_GOTREF(__pyx_t_4);
4711
4487
  __pyx_t_5 = NULL;
4712
4488
  __pyx_t_6 = 0;
@@ -4726,81 +4502,81 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather_2_done_callback(Py
4726
4502
  PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_exc};
4727
4503
  __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
4728
4504
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
4729
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 132, __pyx_L1_error)
4505
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 137, __pyx_L1_error)
4730
4506
  __Pyx_GOTREF(__pyx_t_3);
4731
4507
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4732
4508
  }
4733
4509
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4734
4510
 
4735
- /* "a_sync/asyncio/igather.pyx":124
4511
+ /* "a_sync/asyncio/igather.pyx":128
4736
4512
  * # and set it to the 'outer' future.
4737
4513
  *
4738
4514
  * if outer._cancel_requested: # <<<<<<<<<<<<<<
4739
4515
  * # If gather is being cancelled we must propagate the
4740
4516
  * # cancellation regardless of *return_exceptions* argument.
4741
4517
  */
4742
- goto __pyx_L18;
4518
+ goto __pyx_L10;
4743
4519
  }
4744
4520
 
4745
- /* "a_sync/asyncio/igather.pyx":134
4521
+ /* "a_sync/asyncio/igather.pyx":139
4746
4522
  * outer.set_exception(exc)
4747
4523
  * else:
4748
4524
  * outer.set_result([_get_result_or_exc(child) for child in children]) # <<<<<<<<<<<<<<
4749
4525
  *
4750
4526
  * if loop._task_factory is smart_task_factory:
4751
4527
  */
4752
- __Pyx_TraceLine(134,0,__PYX_ERR(0, 134, __pyx_L1_error))
4528
+ __Pyx_TraceLine(139,0,__PYX_ERR(0, 139, __pyx_L1_error))
4753
4529
  /*else*/ {
4754
- if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 134, __pyx_L1_error) }
4755
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_outer, __pyx_n_s_set_result); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 134, __pyx_L1_error)
4530
+ if (unlikely(!__pyx_cur_scope->__pyx_v_outer)) { __Pyx_RaiseClosureNameError("outer"); __PYX_ERR(0, 139, __pyx_L1_error) }
4531
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_outer, __pyx_n_s_set_result); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 139, __pyx_L1_error)
4756
4532
  __Pyx_GOTREF(__pyx_t_4);
4757
4533
  { /* enter inner scope */
4758
- __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 134, __pyx_L29_error)
4534
+ __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 139, __pyx_L13_error)
4759
4535
  __Pyx_GOTREF(__pyx_t_5);
4760
- if (unlikely(!__pyx_cur_scope->__pyx_v_children)) { __Pyx_RaiseClosureNameError("children"); __PYX_ERR(0, 134, __pyx_L29_error) }
4536
+ if (unlikely(!__pyx_cur_scope->__pyx_v_children)) { __Pyx_RaiseClosureNameError("children"); __PYX_ERR(0, 139, __pyx_L13_error) }
4761
4537
  if (unlikely(__pyx_cur_scope->__pyx_v_children == Py_None)) {
4762
4538
  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
4763
- __PYX_ERR(0, 134, __pyx_L29_error)
4539
+ __PYX_ERR(0, 139, __pyx_L13_error)
4764
4540
  }
4765
- __pyx_t_11 = __pyx_cur_scope->__pyx_v_children; __Pyx_INCREF(__pyx_t_11);
4766
- __pyx_t_14 = 0;
4541
+ __pyx_t_7 = __pyx_cur_scope->__pyx_v_children; __Pyx_INCREF(__pyx_t_7);
4542
+ __pyx_t_8 = 0;
4767
4543
  for (;;) {
4768
4544
  {
4769
- Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_11);
4545
+ Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_7);
4770
4546
  #if !CYTHON_ASSUME_SAFE_MACROS
4771
- if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 134, __pyx_L29_error)
4547
+ if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 139, __pyx_L13_error)
4772
4548
  #endif
4773
- if (__pyx_t_14 >= __pyx_temp) break;
4549
+ if (__pyx_t_8 >= __pyx_temp) break;
4774
4550
  }
4775
4551
  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
4776
- __pyx_t_12 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_14); __Pyx_INCREF(__pyx_t_12); __pyx_t_14++; if (unlikely((0 < 0))) __PYX_ERR(0, 134, __pyx_L29_error)
4552
+ __pyx_t_9 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_9); __pyx_t_8++; if (unlikely((0 < 0))) __PYX_ERR(0, 139, __pyx_L13_error)
4777
4553
  #else
4778
- __pyx_t_12 = __Pyx_PySequence_ITEM(__pyx_t_11, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 134, __pyx_L29_error)
4779
- __Pyx_GOTREF(__pyx_t_12);
4554
+ __pyx_t_9 = __Pyx_PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 139, __pyx_L13_error)
4555
+ __Pyx_GOTREF(__pyx_t_9);
4780
4556
  #endif
4781
- __Pyx_XDECREF_SET(__pyx_8genexpr1__pyx_v_child, __pyx_t_12);
4782
- __pyx_t_12 = 0;
4783
- __pyx_t_12 = __pyx_f_6a_sync_7asyncio_7igather__get_result_or_exc(__pyx_8genexpr1__pyx_v_child); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 134, __pyx_L29_error)
4784
- __Pyx_GOTREF(__pyx_t_12);
4785
- if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_t_12))) __PYX_ERR(0, 134, __pyx_L29_error)
4786
- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
4787
- }
4788
- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
4557
+ __Pyx_XDECREF_SET(__pyx_8genexpr1__pyx_v_child, __pyx_t_9);
4558
+ __pyx_t_9 = 0;
4559
+ __pyx_t_9 = __pyx_f_6a_sync_7asyncio_7igather__get_result_or_exc(__pyx_8genexpr1__pyx_v_child); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 139, __pyx_L13_error)
4560
+ __Pyx_GOTREF(__pyx_t_9);
4561
+ if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 139, __pyx_L13_error)
4562
+ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
4563
+ }
4564
+ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
4789
4565
  __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_child); __pyx_8genexpr1__pyx_v_child = 0;
4790
- goto __pyx_L33_exit_scope;
4791
- __pyx_L29_error:;
4566
+ goto __pyx_L17_exit_scope;
4567
+ __pyx_L13_error:;
4792
4568
  __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_child); __pyx_8genexpr1__pyx_v_child = 0;
4793
4569
  goto __pyx_L1_error;
4794
- __pyx_L33_exit_scope:;
4570
+ __pyx_L17_exit_scope:;
4795
4571
  } /* exit inner scope */
4796
- __pyx_t_11 = NULL;
4572
+ __pyx_t_7 = NULL;
4797
4573
  __pyx_t_6 = 0;
4798
4574
  #if CYTHON_UNPACK_METHODS
4799
4575
  if (likely(PyMethod_Check(__pyx_t_4))) {
4800
- __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_4);
4801
- if (likely(__pyx_t_11)) {
4576
+ __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
4577
+ if (likely(__pyx_t_7)) {
4802
4578
  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
4803
- __Pyx_INCREF(__pyx_t_11);
4579
+ __Pyx_INCREF(__pyx_t_7);
4804
4580
  __Pyx_INCREF(function);
4805
4581
  __Pyx_DECREF_SET(__pyx_t_4, function);
4806
4582
  __pyx_t_6 = 1;
@@ -4808,19 +4584,19 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather_2_done_callback(Py
4808
4584
  }
4809
4585
  #endif
4810
4586
  {
4811
- PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_5};
4587
+ PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_5};
4812
4588
  __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
4813
- __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
4589
+ __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
4814
4590
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4815
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 134, __pyx_L1_error)
4591
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 139, __pyx_L1_error)
4816
4592
  __Pyx_GOTREF(__pyx_t_3);
4817
4593
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4818
4594
  }
4819
4595
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4820
4596
  }
4821
- __pyx_L18:;
4597
+ __pyx_L10:;
4822
4598
 
4823
- /* "a_sync/asyncio/igather.pyx":120
4599
+ /* "a_sync/asyncio/igather.pyx":124
4824
4600
  * return
4825
4601
  *
4826
4602
  * if nfinished == nfuts: # <<<<<<<<<<<<<<
@@ -4829,7 +4605,7 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather_2_done_callback(Py
4829
4605
  */
4830
4606
  }
4831
4607
 
4832
- /* "a_sync/asyncio/igather.pyx":93
4608
+ /* "a_sync/asyncio/igather.pyx":96
4833
4609
  * else:
4834
4610
  *
4835
4611
  * def _done_callback(fut: asyncio.Future) -> None: # <<<<<<<<<<<<<<
@@ -4844,9 +4620,8 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather_2_done_callback(Py
4844
4620
  __Pyx_XDECREF(__pyx_t_3);
4845
4621
  __Pyx_XDECREF(__pyx_t_4);
4846
4622
  __Pyx_XDECREF(__pyx_t_5);
4847
- __Pyx_XDECREF(__pyx_t_11);
4848
- __Pyx_XDECREF(__pyx_t_12);
4849
- __Pyx_XDECREF(__pyx_t_13);
4623
+ __Pyx_XDECREF(__pyx_t_7);
4624
+ __Pyx_XDECREF(__pyx_t_9);
4850
4625
  __Pyx_AddTraceback("a_sync.asyncio.igather.cigather._done_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
4851
4626
  __pyx_r = NULL;
4852
4627
  __pyx_L0:;
@@ -4858,7 +4633,7 @@ static PyObject *__pyx_pf_6a_sync_7asyncio_7igather_8cigather_2_done_callback(Py
4858
4633
  return __pyx_r;
4859
4634
  }
4860
4635
 
4861
- /* "a_sync/asyncio/igather.pyx":28
4636
+ /* "a_sync/asyncio/igather.pyx":30
4862
4637
  *
4863
4638
  *
4864
4639
  * cdef object cigather(object coros_or_futures, bint return_exceptions = False): # <<<<<<<<<<<<<<
@@ -4900,71 +4675,71 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather_cigather(PyObject *__pyx_v_co
4900
4675
  if (unlikely(!__pyx_cur_scope)) {
4901
4676
  __pyx_cur_scope = ((struct __pyx_obj_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather *)Py_None);
4902
4677
  __Pyx_INCREF(Py_None);
4903
- __PYX_ERR(0, 28, __pyx_L1_error)
4678
+ __PYX_ERR(0, 30, __pyx_L1_error)
4904
4679
  } else {
4905
4680
  __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
4906
4681
  }
4907
- __Pyx_TraceCall("cigather", __pyx_f[0], 28, 0, __PYX_ERR(0, 28, __pyx_L1_error));
4682
+ __Pyx_TraceCall("cigather", __pyx_f[0], 30, 0, __PYX_ERR(0, 30, __pyx_L1_error));
4908
4683
  if (__pyx_optional_args) {
4909
4684
  if (__pyx_optional_args->__pyx_n > 0) {
4910
4685
  __pyx_v_return_exceptions = __pyx_optional_args->return_exceptions;
4911
4686
  }
4912
4687
  }
4913
4688
 
4914
- /* "a_sync/asyncio/igather.pyx":32
4689
+ /* "a_sync/asyncio/igather.pyx":34
4915
4690
  * # NOTE: closures inside cpdef functions not yet supported, so we have this cdef helper
4916
4691
  * cdef long long nfuts, nfinished
4917
4692
  * cdef dict arg_to_fut = {} # <<<<<<<<<<<<<<
4918
4693
  * cdef list children = []
4919
4694
  * loop = None
4920
4695
  */
4921
- __Pyx_TraceLine(32,0,__PYX_ERR(0, 32, __pyx_L1_error))
4922
- __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 32, __pyx_L1_error)
4696
+ __Pyx_TraceLine(34,0,__PYX_ERR(0, 34, __pyx_L1_error))
4697
+ __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 34, __pyx_L1_error)
4923
4698
  __Pyx_GOTREF(__pyx_t_1);
4924
4699
  __pyx_v_arg_to_fut = ((PyObject*)__pyx_t_1);
4925
4700
  __pyx_t_1 = 0;
4926
4701
 
4927
- /* "a_sync/asyncio/igather.pyx":33
4702
+ /* "a_sync/asyncio/igather.pyx":35
4928
4703
  * cdef long long nfuts, nfinished
4929
4704
  * cdef dict arg_to_fut = {}
4930
4705
  * cdef list children = [] # <<<<<<<<<<<<<<
4931
4706
  * loop = None
4932
4707
  * for arg in coros_or_futures:
4933
4708
  */
4934
- __Pyx_TraceLine(33,0,__PYX_ERR(0, 33, __pyx_L1_error))
4935
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 33, __pyx_L1_error)
4709
+ __Pyx_TraceLine(35,0,__PYX_ERR(0, 35, __pyx_L1_error))
4710
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 35, __pyx_L1_error)
4936
4711
  __Pyx_GOTREF(__pyx_t_1);
4937
4712
  __Pyx_GIVEREF(__pyx_t_1);
4938
4713
  __pyx_cur_scope->__pyx_v_children = ((PyObject*)__pyx_t_1);
4939
4714
  __pyx_t_1 = 0;
4940
4715
 
4941
- /* "a_sync/asyncio/igather.pyx":34
4716
+ /* "a_sync/asyncio/igather.pyx":36
4942
4717
  * cdef dict arg_to_fut = {}
4943
4718
  * cdef list children = []
4944
4719
  * loop = None # <<<<<<<<<<<<<<
4945
4720
  * for arg in coros_or_futures:
4946
4721
  * if arg not in arg_to_fut:
4947
4722
  */
4948
- __Pyx_TraceLine(34,0,__PYX_ERR(0, 34, __pyx_L1_error))
4723
+ __Pyx_TraceLine(36,0,__PYX_ERR(0, 36, __pyx_L1_error))
4949
4724
  __Pyx_INCREF(Py_None);
4950
4725
  __pyx_v_loop = Py_None;
4951
4726
 
4952
- /* "a_sync/asyncio/igather.pyx":35
4727
+ /* "a_sync/asyncio/igather.pyx":37
4953
4728
  * cdef list children = []
4954
4729
  * loop = None
4955
4730
  * for arg in coros_or_futures: # <<<<<<<<<<<<<<
4956
4731
  * if arg not in arg_to_fut:
4957
4732
  * fut = ensure_future(arg, loop=loop)
4958
4733
  */
4959
- __Pyx_TraceLine(35,0,__PYX_ERR(0, 35, __pyx_L1_error))
4734
+ __Pyx_TraceLine(37,0,__PYX_ERR(0, 37, __pyx_L1_error))
4960
4735
  if (likely(PyList_CheckExact(__pyx_v_coros_or_futures)) || PyTuple_CheckExact(__pyx_v_coros_or_futures)) {
4961
4736
  __pyx_t_1 = __pyx_v_coros_or_futures; __Pyx_INCREF(__pyx_t_1);
4962
4737
  __pyx_t_2 = 0;
4963
4738
  __pyx_t_3 = NULL;
4964
4739
  } else {
4965
- __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_coros_or_futures); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 35, __pyx_L1_error)
4740
+ __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_coros_or_futures); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 37, __pyx_L1_error)
4966
4741
  __Pyx_GOTREF(__pyx_t_1);
4967
- __pyx_t_3 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 35, __pyx_L1_error)
4742
+ __pyx_t_3 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 37, __pyx_L1_error)
4968
4743
  }
4969
4744
  for (;;) {
4970
4745
  if (likely(!__pyx_t_3)) {
@@ -4972,28 +4747,28 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather_cigather(PyObject *__pyx_v_co
4972
4747
  {
4973
4748
  Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
4974
4749
  #if !CYTHON_ASSUME_SAFE_MACROS
4975
- if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 35, __pyx_L1_error)
4750
+ if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 37, __pyx_L1_error)
4976
4751
  #endif
4977
4752
  if (__pyx_t_2 >= __pyx_temp) break;
4978
4753
  }
4979
4754
  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
4980
- __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, 35, __pyx_L1_error)
4755
+ __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, 37, __pyx_L1_error)
4981
4756
  #else
4982
- __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 35, __pyx_L1_error)
4757
+ __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 37, __pyx_L1_error)
4983
4758
  __Pyx_GOTREF(__pyx_t_4);
4984
4759
  #endif
4985
4760
  } else {
4986
4761
  {
4987
4762
  Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
4988
4763
  #if !CYTHON_ASSUME_SAFE_MACROS
4989
- if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 35, __pyx_L1_error)
4764
+ if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 37, __pyx_L1_error)
4990
4765
  #endif
4991
4766
  if (__pyx_t_2 >= __pyx_temp) break;
4992
4767
  }
4993
4768
  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
4994
- __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, 35, __pyx_L1_error)
4769
+ __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, 37, __pyx_L1_error)
4995
4770
  #else
4996
- __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 35, __pyx_L1_error)
4771
+ __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 37, __pyx_L1_error)
4997
4772
  __Pyx_GOTREF(__pyx_t_4);
4998
4773
  #endif
4999
4774
  }
@@ -5003,7 +4778,7 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather_cigather(PyObject *__pyx_v_co
5003
4778
  PyObject* exc_type = PyErr_Occurred();
5004
4779
  if (exc_type) {
5005
4780
  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
5006
- else __PYX_ERR(0, 35, __pyx_L1_error)
4781
+ else __PYX_ERR(0, 37, __pyx_L1_error)
5007
4782
  }
5008
4783
  break;
5009
4784
  }
@@ -5012,59 +4787,59 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather_cigather(PyObject *__pyx_v_co
5012
4787
  __Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_4);
5013
4788
  __pyx_t_4 = 0;
5014
4789
 
5015
- /* "a_sync/asyncio/igather.pyx":36
4790
+ /* "a_sync/asyncio/igather.pyx":38
5016
4791
  * loop = None
5017
4792
  * for arg in coros_or_futures:
5018
4793
  * if arg not in arg_to_fut: # <<<<<<<<<<<<<<
5019
4794
  * fut = ensure_future(arg, loop=loop)
5020
4795
  * if loop is None:
5021
4796
  */
5022
- __Pyx_TraceLine(36,0,__PYX_ERR(0, 36, __pyx_L1_error))
5023
- __pyx_t_5 = (__Pyx_PyDict_ContainsTF(__pyx_v_arg, __pyx_v_arg_to_fut, Py_NE)); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 36, __pyx_L1_error)
4797
+ __Pyx_TraceLine(38,0,__PYX_ERR(0, 38, __pyx_L1_error))
4798
+ __pyx_t_5 = (__Pyx_PyDict_ContainsTF(__pyx_v_arg, __pyx_v_arg_to_fut, Py_NE)); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 38, __pyx_L1_error)
5024
4799
  if (__pyx_t_5) {
5025
4800
 
5026
- /* "a_sync/asyncio/igather.pyx":37
4801
+ /* "a_sync/asyncio/igather.pyx":39
5027
4802
  * for arg in coros_or_futures:
5028
4803
  * if arg not in arg_to_fut:
5029
4804
  * fut = ensure_future(arg, loop=loop) # <<<<<<<<<<<<<<
5030
4805
  * if loop is None:
5031
4806
  * loop = _get_loop(fut)
5032
4807
  */
5033
- __Pyx_TraceLine(37,0,__PYX_ERR(0, 37, __pyx_L1_error))
5034
- __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 37, __pyx_L1_error)
4808
+ __Pyx_TraceLine(39,0,__PYX_ERR(0, 39, __pyx_L1_error))
4809
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 39, __pyx_L1_error)
5035
4810
  __Pyx_GOTREF(__pyx_t_4);
5036
4811
  __Pyx_INCREF(__pyx_v_arg);
5037
4812
  __Pyx_GIVEREF(__pyx_v_arg);
5038
- if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_arg)) __PYX_ERR(0, 37, __pyx_L1_error);
5039
- __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 37, __pyx_L1_error)
4813
+ if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_arg)) __PYX_ERR(0, 39, __pyx_L1_error);
4814
+ __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 39, __pyx_L1_error)
5040
4815
  __Pyx_GOTREF(__pyx_t_6);
5041
- if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_loop, __pyx_v_loop) < 0) __PYX_ERR(0, 37, __pyx_L1_error)
5042
- __pyx_t_7 = __Pyx_PyObject_Call(__pyx_v_6a_sync_7asyncio_7igather_ensure_future, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 37, __pyx_L1_error)
4816
+ if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_loop, __pyx_v_loop) < 0) __PYX_ERR(0, 39, __pyx_L1_error)
4817
+ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_v_6a_sync_7asyncio_7igather_ensure_future, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 39, __pyx_L1_error)
5043
4818
  __Pyx_GOTREF(__pyx_t_7);
5044
4819
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
5045
4820
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5046
4821
  __Pyx_XDECREF_SET(__pyx_v_fut, __pyx_t_7);
5047
4822
  __pyx_t_7 = 0;
5048
4823
 
5049
- /* "a_sync/asyncio/igather.pyx":38
4824
+ /* "a_sync/asyncio/igather.pyx":40
5050
4825
  * if arg not in arg_to_fut:
5051
4826
  * fut = ensure_future(arg, loop=loop)
5052
4827
  * if loop is None: # <<<<<<<<<<<<<<
5053
4828
  * loop = _get_loop(fut)
5054
4829
  * if fut is not arg:
5055
4830
  */
5056
- __Pyx_TraceLine(38,0,__PYX_ERR(0, 38, __pyx_L1_error))
4831
+ __Pyx_TraceLine(40,0,__PYX_ERR(0, 40, __pyx_L1_error))
5057
4832
  __pyx_t_5 = (__pyx_v_loop == Py_None);
5058
4833
  if (__pyx_t_5) {
5059
4834
 
5060
- /* "a_sync/asyncio/igather.pyx":39
4835
+ /* "a_sync/asyncio/igather.pyx":41
5061
4836
  * fut = ensure_future(arg, loop=loop)
5062
4837
  * if loop is None:
5063
4838
  * loop = _get_loop(fut) # <<<<<<<<<<<<<<
5064
4839
  * if fut is not arg:
5065
4840
  * # 'arg' was not a Future, therefore, 'fut' is a new
5066
4841
  */
5067
- __Pyx_TraceLine(39,0,__PYX_ERR(0, 39, __pyx_L1_error))
4842
+ __Pyx_TraceLine(41,0,__PYX_ERR(0, 41, __pyx_L1_error))
5068
4843
  __Pyx_INCREF(__pyx_v_6a_sync_7asyncio_7igather__get_loop);
5069
4844
  __pyx_t_6 = __pyx_v_6a_sync_7asyncio_7igather__get_loop; __pyx_t_4 = NULL;
5070
4845
  __pyx_t_8 = 0;
@@ -5084,14 +4859,14 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather_cigather(PyObject *__pyx_v_co
5084
4859
  PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_fut};
5085
4860
  __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
5086
4861
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
5087
- if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 39, __pyx_L1_error)
4862
+ if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 41, __pyx_L1_error)
5088
4863
  __Pyx_GOTREF(__pyx_t_7);
5089
4864
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5090
4865
  }
5091
4866
  __Pyx_DECREF_SET(__pyx_v_loop, __pyx_t_7);
5092
4867
  __pyx_t_7 = 0;
5093
4868
 
5094
- /* "a_sync/asyncio/igather.pyx":38
4869
+ /* "a_sync/asyncio/igather.pyx":40
5095
4870
  * if arg not in arg_to_fut:
5096
4871
  * fut = ensure_future(arg, loop=loop)
5097
4872
  * if loop is None: # <<<<<<<<<<<<<<
@@ -5100,28 +4875,28 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather_cigather(PyObject *__pyx_v_co
5100
4875
  */
5101
4876
  }
5102
4877
 
5103
- /* "a_sync/asyncio/igather.pyx":40
4878
+ /* "a_sync/asyncio/igather.pyx":42
5104
4879
  * if loop is None:
5105
4880
  * loop = _get_loop(fut)
5106
4881
  * if fut is not arg: # <<<<<<<<<<<<<<
5107
4882
  * # 'arg' was not a Future, therefore, 'fut' is a new
5108
4883
  * # Future created specifically for 'arg'. Since the caller
5109
4884
  */
5110
- __Pyx_TraceLine(40,0,__PYX_ERR(0, 40, __pyx_L1_error))
4885
+ __Pyx_TraceLine(42,0,__PYX_ERR(0, 42, __pyx_L1_error))
5111
4886
  __pyx_t_5 = (__pyx_v_fut != __pyx_v_arg);
5112
4887
  if (__pyx_t_5) {
5113
4888
 
5114
- /* "a_sync/asyncio/igather.pyx":45
4889
+ /* "a_sync/asyncio/igather.pyx":47
5115
4890
  * # can't control it, disable the "destroy pending task"
5116
4891
  * # warning.
5117
4892
  * fut._log_destroy_pending = False # <<<<<<<<<<<<<<
5118
4893
  *
5119
4894
  * arg_to_fut[arg] = fut
5120
4895
  */
5121
- __Pyx_TraceLine(45,0,__PYX_ERR(0, 45, __pyx_L1_error))
5122
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_fut, __pyx_n_s_log_destroy_pending, Py_False) < 0) __PYX_ERR(0, 45, __pyx_L1_error)
4896
+ __Pyx_TraceLine(47,0,__PYX_ERR(0, 47, __pyx_L1_error))
4897
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_fut, __pyx_n_s_log_destroy_pending, Py_False) < 0) __PYX_ERR(0, 47, __pyx_L1_error)
5123
4898
 
5124
- /* "a_sync/asyncio/igather.pyx":40
4899
+ /* "a_sync/asyncio/igather.pyx":42
5125
4900
  * if loop is None:
5126
4901
  * loop = _get_loop(fut)
5127
4902
  * if fut is not arg: # <<<<<<<<<<<<<<
@@ -5130,17 +4905,17 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather_cigather(PyObject *__pyx_v_co
5130
4905
  */
5131
4906
  }
5132
4907
 
5133
- /* "a_sync/asyncio/igather.pyx":47
4908
+ /* "a_sync/asyncio/igather.pyx":49
5134
4909
  * fut._log_destroy_pending = False
5135
4910
  *
5136
4911
  * arg_to_fut[arg] = fut # <<<<<<<<<<<<<<
5137
4912
  *
5138
4913
  * else:
5139
4914
  */
5140
- __Pyx_TraceLine(47,0,__PYX_ERR(0, 47, __pyx_L1_error))
5141
- if (unlikely((PyDict_SetItem(__pyx_v_arg_to_fut, __pyx_v_arg, __pyx_v_fut) < 0))) __PYX_ERR(0, 47, __pyx_L1_error)
4915
+ __Pyx_TraceLine(49,0,__PYX_ERR(0, 49, __pyx_L1_error))
4916
+ if (unlikely((PyDict_SetItem(__pyx_v_arg_to_fut, __pyx_v_arg, __pyx_v_fut) < 0))) __PYX_ERR(0, 49, __pyx_L1_error)
5142
4917
 
5143
- /* "a_sync/asyncio/igather.pyx":36
4918
+ /* "a_sync/asyncio/igather.pyx":38
5144
4919
  * loop = None
5145
4920
  * for arg in coros_or_futures:
5146
4921
  * if arg not in arg_to_fut: # <<<<<<<<<<<<<<
@@ -5150,74 +4925,74 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather_cigather(PyObject *__pyx_v_co
5150
4925
  goto __pyx_L5;
5151
4926
  }
5152
4927
 
5153
- /* "a_sync/asyncio/igather.pyx":51
4928
+ /* "a_sync/asyncio/igather.pyx":53
5154
4929
  * else:
5155
4930
  * # There's a duplicate Future object in coros_or_futures.
5156
4931
  * fut = arg_to_fut[arg] # <<<<<<<<<<<<<<
5157
4932
  *
5158
4933
  * children.append(fut)
5159
4934
  */
5160
- __Pyx_TraceLine(51,0,__PYX_ERR(0, 51, __pyx_L1_error))
4935
+ __Pyx_TraceLine(53,0,__PYX_ERR(0, 53, __pyx_L1_error))
5161
4936
  /*else*/ {
5162
- __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_arg_to_fut, __pyx_v_arg); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 51, __pyx_L1_error)
4937
+ __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_arg_to_fut, __pyx_v_arg); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 53, __pyx_L1_error)
5163
4938
  __Pyx_GOTREF(__pyx_t_7);
5164
4939
  __Pyx_XDECREF_SET(__pyx_v_fut, __pyx_t_7);
5165
4940
  __pyx_t_7 = 0;
5166
4941
  }
5167
4942
  __pyx_L5:;
5168
4943
 
5169
- /* "a_sync/asyncio/igather.pyx":53
4944
+ /* "a_sync/asyncio/igather.pyx":55
5170
4945
  * fut = arg_to_fut[arg]
5171
4946
  *
5172
4947
  * children.append(fut) # <<<<<<<<<<<<<<
5173
4948
  *
5174
4949
  * if not children:
5175
4950
  */
5176
- __Pyx_TraceLine(53,0,__PYX_ERR(0, 53, __pyx_L1_error))
5177
- __pyx_t_9 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_children, __pyx_v_fut); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 53, __pyx_L1_error)
4951
+ __Pyx_TraceLine(55,0,__PYX_ERR(0, 55, __pyx_L1_error))
4952
+ __pyx_t_9 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_children, __pyx_v_fut); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 55, __pyx_L1_error)
5178
4953
 
5179
- /* "a_sync/asyncio/igather.pyx":35
4954
+ /* "a_sync/asyncio/igather.pyx":37
5180
4955
  * cdef list children = []
5181
4956
  * loop = None
5182
4957
  * for arg in coros_or_futures: # <<<<<<<<<<<<<<
5183
4958
  * if arg not in arg_to_fut:
5184
4959
  * fut = ensure_future(arg, loop=loop)
5185
4960
  */
5186
- __Pyx_TraceLine(35,0,__PYX_ERR(0, 35, __pyx_L1_error))
4961
+ __Pyx_TraceLine(37,0,__PYX_ERR(0, 37, __pyx_L1_error))
5187
4962
  }
5188
4963
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5189
4964
 
5190
- /* "a_sync/asyncio/igather.pyx":55
4965
+ /* "a_sync/asyncio/igather.pyx":57
5191
4966
  * children.append(fut)
5192
4967
  *
5193
4968
  * if not children: # <<<<<<<<<<<<<<
5194
4969
  * return _get_empty_result_set_fut(get_event_loop())
5195
4970
  *
5196
4971
  */
5197
- __Pyx_TraceLine(55,0,__PYX_ERR(0, 55, __pyx_L1_error))
4972
+ __Pyx_TraceLine(57,0,__PYX_ERR(0, 57, __pyx_L1_error))
5198
4973
  __pyx_t_5 = (PyList_GET_SIZE(__pyx_cur_scope->__pyx_v_children) != 0);
5199
4974
  __pyx_t_10 = (!__pyx_t_5);
5200
4975
  if (__pyx_t_10) {
5201
4976
 
5202
- /* "a_sync/asyncio/igather.pyx":56
4977
+ /* "a_sync/asyncio/igather.pyx":58
5203
4978
  *
5204
4979
  * if not children:
5205
4980
  * return _get_empty_result_set_fut(get_event_loop()) # <<<<<<<<<<<<<<
5206
4981
  *
5207
4982
  * nfuts = len(arg_to_fut)
5208
4983
  */
5209
- __Pyx_TraceLine(56,0,__PYX_ERR(0, 56, __pyx_L1_error))
4984
+ __Pyx_TraceLine(58,0,__PYX_ERR(0, 58, __pyx_L1_error))
5210
4985
  __Pyx_XDECREF(__pyx_r);
5211
- __pyx_t_1 = __pyx_f_6a_sync_6a_sync_8_helpers_get_event_loop(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 56, __pyx_L1_error)
4986
+ __pyx_t_1 = __pyx_f_6a_sync_6a_sync_8_helpers_get_event_loop(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error)
5212
4987
  __Pyx_GOTREF(__pyx_t_1);
5213
- __pyx_t_7 = __pyx_f_6a_sync_7asyncio_7igather__get_empty_result_set_fut(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 56, __pyx_L1_error)
4988
+ __pyx_t_7 = __pyx_f_6a_sync_7asyncio_7igather__get_empty_result_set_fut(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 58, __pyx_L1_error)
5214
4989
  __Pyx_GOTREF(__pyx_t_7);
5215
4990
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5216
4991
  __pyx_r = __pyx_t_7;
5217
4992
  __pyx_t_7 = 0;
5218
4993
  goto __pyx_L0;
5219
4994
 
5220
- /* "a_sync/asyncio/igather.pyx":55
4995
+ /* "a_sync/asyncio/igather.pyx":57
5221
4996
  * children.append(fut)
5222
4997
  *
5223
4998
  * if not children: # <<<<<<<<<<<<<<
@@ -5226,69 +5001,69 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather_cigather(PyObject *__pyx_v_co
5226
5001
  */
5227
5002
  }
5228
5003
 
5229
- /* "a_sync/asyncio/igather.pyx":58
5004
+ /* "a_sync/asyncio/igather.pyx":60
5230
5005
  * return _get_empty_result_set_fut(get_event_loop())
5231
5006
  *
5232
5007
  * nfuts = len(arg_to_fut) # <<<<<<<<<<<<<<
5233
5008
  * nfinished = 0
5234
5009
  * outer = None # bpo-46672
5235
5010
  */
5236
- __Pyx_TraceLine(58,0,__PYX_ERR(0, 58, __pyx_L1_error))
5237
- __pyx_t_2 = PyDict_Size(__pyx_v_arg_to_fut); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 58, __pyx_L1_error)
5011
+ __Pyx_TraceLine(60,0,__PYX_ERR(0, 60, __pyx_L1_error))
5012
+ __pyx_t_2 = PyDict_Size(__pyx_v_arg_to_fut); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 60, __pyx_L1_error)
5238
5013
  __pyx_cur_scope->__pyx_v_nfuts = __pyx_t_2;
5239
5014
 
5240
- /* "a_sync/asyncio/igather.pyx":59
5015
+ /* "a_sync/asyncio/igather.pyx":61
5241
5016
  *
5242
5017
  * nfuts = len(arg_to_fut)
5243
5018
  * nfinished = 0 # <<<<<<<<<<<<<<
5244
5019
  * outer = None # bpo-46672
5245
5020
  *
5246
5021
  */
5247
- __Pyx_TraceLine(59,0,__PYX_ERR(0, 59, __pyx_L1_error))
5022
+ __Pyx_TraceLine(61,0,__PYX_ERR(0, 61, __pyx_L1_error))
5248
5023
  __pyx_cur_scope->__pyx_v_nfinished = 0;
5249
5024
 
5250
- /* "a_sync/asyncio/igather.pyx":60
5025
+ /* "a_sync/asyncio/igather.pyx":62
5251
5026
  * nfuts = len(arg_to_fut)
5252
5027
  * nfinished = 0
5253
5028
  * outer = None # bpo-46672 # <<<<<<<<<<<<<<
5254
5029
  *
5255
5030
  * if return_exceptions:
5256
5031
  */
5257
- __Pyx_TraceLine(60,0,__PYX_ERR(0, 60, __pyx_L1_error))
5032
+ __Pyx_TraceLine(62,0,__PYX_ERR(0, 62, __pyx_L1_error))
5258
5033
  __Pyx_INCREF(Py_None);
5259
5034
  __Pyx_GIVEREF(Py_None);
5260
5035
  __pyx_cur_scope->__pyx_v_outer = Py_None;
5261
5036
 
5262
- /* "a_sync/asyncio/igather.pyx":62
5037
+ /* "a_sync/asyncio/igather.pyx":64
5263
5038
  * outer = None # bpo-46672
5264
5039
  *
5265
5040
  * if return_exceptions: # <<<<<<<<<<<<<<
5266
5041
  *
5267
5042
  * def _done_callback(fut: asyncio.Future) -> None:
5268
5043
  */
5269
- __Pyx_TraceLine(62,0,__PYX_ERR(0, 62, __pyx_L1_error))
5044
+ __Pyx_TraceLine(64,0,__PYX_ERR(0, 64, __pyx_L1_error))
5270
5045
  if (__pyx_v_return_exceptions) {
5271
5046
 
5272
- /* "a_sync/asyncio/igather.pyx":64
5047
+ /* "a_sync/asyncio/igather.pyx":66
5273
5048
  * if return_exceptions:
5274
5049
  *
5275
5050
  * def _done_callback(fut: asyncio.Future) -> None: # <<<<<<<<<<<<<<
5276
5051
  * # for some reason this wouldn't work until I added `return_exceptions=return_exceptions` to the func def
5277
5052
  * nonlocal nfinished
5278
5053
  */
5279
- __Pyx_TraceLine(64,0,__PYX_ERR(0, 64, __pyx_L1_error))
5280
- __pyx_t_7 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 64, __pyx_L1_error)
5054
+ __Pyx_TraceLine(66,0,__PYX_ERR(0, 66, __pyx_L1_error))
5055
+ __pyx_t_7 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 66, __pyx_L1_error)
5281
5056
  __Pyx_GOTREF(__pyx_t_7);
5282
- if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_fut, __pyx_kp_s_asyncio_Future) < 0) __PYX_ERR(0, 64, __pyx_L1_error)
5283
- if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_return, __pyx_n_s_None) < 0) __PYX_ERR(0, 64, __pyx_L1_error)
5284
- __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6a_sync_7asyncio_7igather_8cigather_1_done_callback, 0, __pyx_n_s_cigather_locals__done_callback, ((PyObject*)__pyx_cur_scope), __pyx_n_s_a_sync_asyncio_igather, __pyx_d, ((PyObject *)__pyx_codeobj__3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 64, __pyx_L1_error)
5057
+ if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_fut, __pyx_kp_s_asyncio_Future) < 0) __PYX_ERR(0, 66, __pyx_L1_error)
5058
+ if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_return, __pyx_n_s_None) < 0) __PYX_ERR(0, 66, __pyx_L1_error)
5059
+ __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6a_sync_7asyncio_7igather_8cigather_1_done_callback, 0, __pyx_n_s_cigather_locals__done_callback, ((PyObject*)__pyx_cur_scope), __pyx_n_s_a_sync_asyncio_igather, __pyx_d, ((PyObject *)__pyx_codeobj__3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 66, __pyx_L1_error)
5285
5060
  __Pyx_GOTREF(__pyx_t_1);
5286
5061
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_7);
5287
5062
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
5288
5063
  __pyx_v__done_callback = __pyx_t_1;
5289
5064
  __pyx_t_1 = 0;
5290
5065
 
5291
- /* "a_sync/asyncio/igather.pyx":62
5066
+ /* "a_sync/asyncio/igather.pyx":64
5292
5067
  * outer = None # bpo-46672
5293
5068
  *
5294
5069
  * if return_exceptions: # <<<<<<<<<<<<<<
@@ -5298,20 +5073,20 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather_cigather(PyObject *__pyx_v_co
5298
5073
  goto __pyx_L10;
5299
5074
  }
5300
5075
 
5301
- /* "a_sync/asyncio/igather.pyx":93
5076
+ /* "a_sync/asyncio/igather.pyx":96
5302
5077
  * else:
5303
5078
  *
5304
5079
  * def _done_callback(fut: asyncio.Future) -> None: # <<<<<<<<<<<<<<
5305
5080
  * # for some reason this wouldn't work until I added `return_exceptions=return_exceptions` to the func def
5306
5081
  * nonlocal nfinished
5307
5082
  */
5308
- __Pyx_TraceLine(93,0,__PYX_ERR(0, 93, __pyx_L1_error))
5083
+ __Pyx_TraceLine(96,0,__PYX_ERR(0, 96, __pyx_L1_error))
5309
5084
  /*else*/ {
5310
- __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 93, __pyx_L1_error)
5085
+ __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 96, __pyx_L1_error)
5311
5086
  __Pyx_GOTREF(__pyx_t_1);
5312
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_fut, __pyx_kp_s_asyncio_Future) < 0) __PYX_ERR(0, 93, __pyx_L1_error)
5313
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_return, __pyx_n_s_None) < 0) __PYX_ERR(0, 93, __pyx_L1_error)
5314
- __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_6a_sync_7asyncio_7igather_8cigather_3_done_callback, 0, __pyx_n_s_cigather_locals__done_callback, ((PyObject*)__pyx_cur_scope), __pyx_n_s_a_sync_asyncio_igather, __pyx_d, ((PyObject *)__pyx_codeobj__4)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 93, __pyx_L1_error)
5087
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_fut, __pyx_kp_s_asyncio_Future) < 0) __PYX_ERR(0, 96, __pyx_L1_error)
5088
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_return, __pyx_n_s_None) < 0) __PYX_ERR(0, 96, __pyx_L1_error)
5089
+ __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_6a_sync_7asyncio_7igather_8cigather_3_done_callback, 0, __pyx_n_s_cigather_locals__done_callback, ((PyObject*)__pyx_cur_scope), __pyx_n_s_a_sync_asyncio_igather, __pyx_d, ((PyObject *)__pyx_codeobj__4)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 96, __pyx_L1_error)
5315
5090
  __Pyx_GOTREF(__pyx_t_7);
5316
5091
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_7, __pyx_t_1);
5317
5092
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -5320,28 +5095,28 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather_cigather(PyObject *__pyx_v_co
5320
5095
  }
5321
5096
  __pyx_L10:;
5322
5097
 
5323
- /* "a_sync/asyncio/igather.pyx":136
5098
+ /* "a_sync/asyncio/igather.pyx":141
5324
5099
  * outer.set_result([_get_result_or_exc(child) for child in children])
5325
5100
  *
5326
5101
  * if loop._task_factory is smart_task_factory: # <<<<<<<<<<<<<<
5327
5102
  * current = current_task()
5328
5103
  * for fut in arg_to_fut.values():
5329
5104
  */
5330
- __Pyx_TraceLine(136,0,__PYX_ERR(0, 136, __pyx_L1_error))
5331
- __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_loop, __pyx_n_s_task_factory); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 136, __pyx_L1_error)
5105
+ __Pyx_TraceLine(141,0,__PYX_ERR(0, 141, __pyx_L1_error))
5106
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_loop, __pyx_n_s_task_factory); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 141, __pyx_L1_error)
5332
5107
  __Pyx_GOTREF(__pyx_t_7);
5333
5108
  __pyx_t_10 = (__pyx_t_7 == __pyx_v_6a_sync_7asyncio_7igather_smart_task_factory);
5334
5109
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
5335
5110
  if (__pyx_t_10) {
5336
5111
 
5337
- /* "a_sync/asyncio/igather.pyx":137
5112
+ /* "a_sync/asyncio/igather.pyx":142
5338
5113
  *
5339
5114
  * if loop._task_factory is smart_task_factory:
5340
5115
  * current = current_task() # <<<<<<<<<<<<<<
5341
5116
  * for fut in arg_to_fut.values():
5342
5117
  * fut.add_done_callback(_done_callback)
5343
5118
  */
5344
- __Pyx_TraceLine(137,0,__PYX_ERR(0, 137, __pyx_L1_error))
5119
+ __Pyx_TraceLine(142,0,__PYX_ERR(0, 142, __pyx_L1_error))
5345
5120
  __Pyx_INCREF(__pyx_v_6a_sync_7asyncio_7igather_current_task);
5346
5121
  __pyx_t_1 = __pyx_v_6a_sync_7asyncio_7igather_current_task; __pyx_t_6 = NULL;
5347
5122
  __pyx_t_8 = 0;
@@ -5361,23 +5136,23 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather_cigather(PyObject *__pyx_v_co
5361
5136
  PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
5362
5137
  __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8);
5363
5138
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
5364
- if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 137, __pyx_L1_error)
5139
+ if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 142, __pyx_L1_error)
5365
5140
  __Pyx_GOTREF(__pyx_t_7);
5366
5141
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5367
5142
  }
5368
5143
  __pyx_v_current = __pyx_t_7;
5369
5144
  __pyx_t_7 = 0;
5370
5145
 
5371
- /* "a_sync/asyncio/igather.pyx":138
5146
+ /* "a_sync/asyncio/igather.pyx":143
5372
5147
  * if loop._task_factory is smart_task_factory:
5373
5148
  * current = current_task()
5374
5149
  * for fut in arg_to_fut.values(): # <<<<<<<<<<<<<<
5375
5150
  * fut.add_done_callback(_done_callback)
5376
5151
  * waiters = getattr(fut, "_waiters", None)
5377
5152
  */
5378
- __Pyx_TraceLine(138,0,__PYX_ERR(0, 138, __pyx_L1_error))
5153
+ __Pyx_TraceLine(143,0,__PYX_ERR(0, 143, __pyx_L1_error))
5379
5154
  __pyx_t_2 = 0;
5380
- __pyx_t_1 = __Pyx_dict_iterator(__pyx_v_arg_to_fut, 1, __pyx_n_s_values, (&__pyx_t_11), (&__pyx_t_12)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 138, __pyx_L1_error)
5155
+ __pyx_t_1 = __Pyx_dict_iterator(__pyx_v_arg_to_fut, 1, __pyx_n_s_values, (&__pyx_t_11), (&__pyx_t_12)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 143, __pyx_L1_error)
5381
5156
  __Pyx_GOTREF(__pyx_t_1);
5382
5157
  __Pyx_XDECREF(__pyx_t_7);
5383
5158
  __pyx_t_7 = __pyx_t_1;
@@ -5385,20 +5160,20 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather_cigather(PyObject *__pyx_v_co
5385
5160
  while (1) {
5386
5161
  __pyx_t_13 = __Pyx_dict_iter_next(__pyx_t_7, __pyx_t_11, &__pyx_t_2, NULL, &__pyx_t_1, NULL, __pyx_t_12);
5387
5162
  if (unlikely(__pyx_t_13 == 0)) break;
5388
- if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(0, 138, __pyx_L1_error)
5163
+ if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(0, 143, __pyx_L1_error)
5389
5164
  __Pyx_GOTREF(__pyx_t_1);
5390
5165
  __Pyx_XDECREF_SET(__pyx_v_fut, __pyx_t_1);
5391
5166
  __pyx_t_1 = 0;
5392
5167
 
5393
- /* "a_sync/asyncio/igather.pyx":139
5168
+ /* "a_sync/asyncio/igather.pyx":144
5394
5169
  * current = current_task()
5395
5170
  * for fut in arg_to_fut.values():
5396
5171
  * fut.add_done_callback(_done_callback) # <<<<<<<<<<<<<<
5397
5172
  * waiters = getattr(fut, "_waiters", None)
5398
5173
  * if waiters is not None:
5399
5174
  */
5400
- __Pyx_TraceLine(139,0,__PYX_ERR(0, 139, __pyx_L1_error))
5401
- __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_add_done_callback); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error)
5175
+ __Pyx_TraceLine(144,0,__PYX_ERR(0, 144, __pyx_L1_error))
5176
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_add_done_callback); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 144, __pyx_L1_error)
5402
5177
  __Pyx_GOTREF(__pyx_t_6);
5403
5178
  __pyx_t_4 = NULL;
5404
5179
  __pyx_t_8 = 0;
@@ -5418,45 +5193,45 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather_cigather(PyObject *__pyx_v_co
5418
5193
  PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v__done_callback};
5419
5194
  __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
5420
5195
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
5421
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
5196
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 144, __pyx_L1_error)
5422
5197
  __Pyx_GOTREF(__pyx_t_1);
5423
5198
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5424
5199
  }
5425
5200
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5426
5201
 
5427
- /* "a_sync/asyncio/igather.pyx":140
5202
+ /* "a_sync/asyncio/igather.pyx":145
5428
5203
  * for fut in arg_to_fut.values():
5429
5204
  * fut.add_done_callback(_done_callback)
5430
5205
  * waiters = getattr(fut, "_waiters", None) # <<<<<<<<<<<<<<
5431
5206
  * if waiters is not None:
5432
5207
  * waiters.add(current)
5433
5208
  */
5434
- __Pyx_TraceLine(140,0,__PYX_ERR(0, 140, __pyx_L1_error))
5435
- __pyx_t_1 = __Pyx_GetAttr3(__pyx_v_fut, __pyx_n_u_waiters, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error)
5209
+ __Pyx_TraceLine(145,0,__PYX_ERR(0, 145, __pyx_L1_error))
5210
+ __pyx_t_1 = __Pyx_GetAttr3(__pyx_v_fut, __pyx_n_u_waiters, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 145, __pyx_L1_error)
5436
5211
  __Pyx_GOTREF(__pyx_t_1);
5437
5212
  __Pyx_XDECREF_SET(__pyx_v_waiters, __pyx_t_1);
5438
5213
  __pyx_t_1 = 0;
5439
5214
 
5440
- /* "a_sync/asyncio/igather.pyx":141
5215
+ /* "a_sync/asyncio/igather.pyx":146
5441
5216
  * fut.add_done_callback(_done_callback)
5442
5217
  * waiters = getattr(fut, "_waiters", None)
5443
5218
  * if waiters is not None: # <<<<<<<<<<<<<<
5444
5219
  * waiters.add(current)
5445
5220
  * else:
5446
5221
  */
5447
- __Pyx_TraceLine(141,0,__PYX_ERR(0, 141, __pyx_L1_error))
5222
+ __Pyx_TraceLine(146,0,__PYX_ERR(0, 146, __pyx_L1_error))
5448
5223
  __pyx_t_10 = (__pyx_v_waiters != Py_None);
5449
5224
  if (__pyx_t_10) {
5450
5225
 
5451
- /* "a_sync/asyncio/igather.pyx":142
5226
+ /* "a_sync/asyncio/igather.pyx":147
5452
5227
  * waiters = getattr(fut, "_waiters", None)
5453
5228
  * if waiters is not None:
5454
5229
  * waiters.add(current) # <<<<<<<<<<<<<<
5455
5230
  * else:
5456
5231
  * for fut in arg_to_fut.values():
5457
5232
  */
5458
- __Pyx_TraceLine(142,0,__PYX_ERR(0, 142, __pyx_L1_error))
5459
- __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_waiters, __pyx_n_s_add); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 142, __pyx_L1_error)
5233
+ __Pyx_TraceLine(147,0,__PYX_ERR(0, 147, __pyx_L1_error))
5234
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_waiters, __pyx_n_s_add); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 147, __pyx_L1_error)
5460
5235
  __Pyx_GOTREF(__pyx_t_6);
5461
5236
  __pyx_t_4 = NULL;
5462
5237
  __pyx_t_8 = 0;
@@ -5476,13 +5251,13 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather_cigather(PyObject *__pyx_v_co
5476
5251
  PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_current};
5477
5252
  __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
5478
5253
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
5479
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 142, __pyx_L1_error)
5254
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 147, __pyx_L1_error)
5480
5255
  __Pyx_GOTREF(__pyx_t_1);
5481
5256
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5482
5257
  }
5483
5258
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5484
5259
 
5485
- /* "a_sync/asyncio/igather.pyx":141
5260
+ /* "a_sync/asyncio/igather.pyx":146
5486
5261
  * fut.add_done_callback(_done_callback)
5487
5262
  * waiters = getattr(fut, "_waiters", None)
5488
5263
  * if waiters is not None: # <<<<<<<<<<<<<<
@@ -5493,7 +5268,7 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather_cigather(PyObject *__pyx_v_co
5493
5268
  }
5494
5269
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
5495
5270
 
5496
- /* "a_sync/asyncio/igather.pyx":136
5271
+ /* "a_sync/asyncio/igather.pyx":141
5497
5272
  * outer.set_result([_get_result_or_exc(child) for child in children])
5498
5273
  *
5499
5274
  * if loop._task_factory is smart_task_factory: # <<<<<<<<<<<<<<
@@ -5503,17 +5278,17 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather_cigather(PyObject *__pyx_v_co
5503
5278
  goto __pyx_L11;
5504
5279
  }
5505
5280
 
5506
- /* "a_sync/asyncio/igather.pyx":144
5281
+ /* "a_sync/asyncio/igather.pyx":149
5507
5282
  * waiters.add(current)
5508
5283
  * else:
5509
5284
  * for fut in arg_to_fut.values(): # <<<<<<<<<<<<<<
5510
5285
  * fut.add_done_callback(_done_callback)
5511
5286
  *
5512
5287
  */
5513
- __Pyx_TraceLine(144,0,__PYX_ERR(0, 144, __pyx_L1_error))
5288
+ __Pyx_TraceLine(149,0,__PYX_ERR(0, 149, __pyx_L1_error))
5514
5289
  /*else*/ {
5515
5290
  __pyx_t_11 = 0;
5516
- __pyx_t_1 = __Pyx_dict_iterator(__pyx_v_arg_to_fut, 1, __pyx_n_s_values, (&__pyx_t_2), (&__pyx_t_12)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 144, __pyx_L1_error)
5291
+ __pyx_t_1 = __Pyx_dict_iterator(__pyx_v_arg_to_fut, 1, __pyx_n_s_values, (&__pyx_t_2), (&__pyx_t_12)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 149, __pyx_L1_error)
5517
5292
  __Pyx_GOTREF(__pyx_t_1);
5518
5293
  __Pyx_XDECREF(__pyx_t_7);
5519
5294
  __pyx_t_7 = __pyx_t_1;
@@ -5521,20 +5296,20 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather_cigather(PyObject *__pyx_v_co
5521
5296
  while (1) {
5522
5297
  __pyx_t_13 = __Pyx_dict_iter_next(__pyx_t_7, __pyx_t_2, &__pyx_t_11, NULL, &__pyx_t_1, NULL, __pyx_t_12);
5523
5298
  if (unlikely(__pyx_t_13 == 0)) break;
5524
- if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(0, 144, __pyx_L1_error)
5299
+ if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(0, 149, __pyx_L1_error)
5525
5300
  __Pyx_GOTREF(__pyx_t_1);
5526
5301
  __Pyx_XDECREF_SET(__pyx_v_fut, __pyx_t_1);
5527
5302
  __pyx_t_1 = 0;
5528
5303
 
5529
- /* "a_sync/asyncio/igather.pyx":145
5304
+ /* "a_sync/asyncio/igather.pyx":150
5530
5305
  * else:
5531
5306
  * for fut in arg_to_fut.values():
5532
5307
  * fut.add_done_callback(_done_callback) # <<<<<<<<<<<<<<
5533
5308
  *
5534
5309
  * outer = _GatheringFuture(children, loop=loop)
5535
5310
  */
5536
- __Pyx_TraceLine(145,0,__PYX_ERR(0, 145, __pyx_L1_error))
5537
- __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_add_done_callback); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 145, __pyx_L1_error)
5311
+ __Pyx_TraceLine(150,0,__PYX_ERR(0, 150, __pyx_L1_error))
5312
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_add_done_callback); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 150, __pyx_L1_error)
5538
5313
  __Pyx_GOTREF(__pyx_t_6);
5539
5314
  __pyx_t_4 = NULL;
5540
5315
  __pyx_t_8 = 0;
@@ -5554,7 +5329,7 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather_cigather(PyObject *__pyx_v_co
5554
5329
  PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v__done_callback};
5555
5330
  __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
5556
5331
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
5557
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 145, __pyx_L1_error)
5332
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 150, __pyx_L1_error)
5558
5333
  __Pyx_GOTREF(__pyx_t_1);
5559
5334
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5560
5335
  }
@@ -5564,23 +5339,23 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather_cigather(PyObject *__pyx_v_co
5564
5339
  }
5565
5340
  __pyx_L11:;
5566
5341
 
5567
- /* "a_sync/asyncio/igather.pyx":147
5342
+ /* "a_sync/asyncio/igather.pyx":152
5568
5343
  * fut.add_done_callback(_done_callback)
5569
5344
  *
5570
5345
  * outer = _GatheringFuture(children, loop=loop) # <<<<<<<<<<<<<<
5571
5346
  *
5572
5347
  * return outer
5573
5348
  */
5574
- __Pyx_TraceLine(147,0,__PYX_ERR(0, 147, __pyx_L1_error))
5575
- __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 147, __pyx_L1_error)
5349
+ __Pyx_TraceLine(152,0,__PYX_ERR(0, 152, __pyx_L1_error))
5350
+ __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 152, __pyx_L1_error)
5576
5351
  __Pyx_GOTREF(__pyx_t_7);
5577
5352
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_children);
5578
5353
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_children);
5579
- if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_cur_scope->__pyx_v_children)) __PYX_ERR(0, 147, __pyx_L1_error);
5580
- __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 147, __pyx_L1_error)
5354
+ if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_cur_scope->__pyx_v_children)) __PYX_ERR(0, 152, __pyx_L1_error);
5355
+ __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 152, __pyx_L1_error)
5581
5356
  __Pyx_GOTREF(__pyx_t_1);
5582
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_loop, __pyx_v_loop) < 0) __PYX_ERR(0, 147, __pyx_L1_error)
5583
- __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_6a_sync_7asyncio_7igather__GatheringFuture, __pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 147, __pyx_L1_error)
5357
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_loop, __pyx_v_loop) < 0) __PYX_ERR(0, 152, __pyx_L1_error)
5358
+ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_6a_sync_7asyncio_7igather__GatheringFuture, __pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 152, __pyx_L1_error)
5584
5359
  __Pyx_GOTREF(__pyx_t_6);
5585
5360
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
5586
5361
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -5589,20 +5364,20 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather_cigather(PyObject *__pyx_v_co
5589
5364
  __Pyx_GIVEREF(__pyx_t_6);
5590
5365
  __pyx_t_6 = 0;
5591
5366
 
5592
- /* "a_sync/asyncio/igather.pyx":149
5367
+ /* "a_sync/asyncio/igather.pyx":154
5593
5368
  * outer = _GatheringFuture(children, loop=loop)
5594
5369
  *
5595
5370
  * return outer # <<<<<<<<<<<<<<
5596
5371
  *
5597
5372
  *
5598
5373
  */
5599
- __Pyx_TraceLine(149,0,__PYX_ERR(0, 149, __pyx_L1_error))
5374
+ __Pyx_TraceLine(154,0,__PYX_ERR(0, 154, __pyx_L1_error))
5600
5375
  __Pyx_XDECREF(__pyx_r);
5601
5376
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_outer);
5602
5377
  __pyx_r = __pyx_cur_scope->__pyx_v_outer;
5603
5378
  goto __pyx_L0;
5604
5379
 
5605
- /* "a_sync/asyncio/igather.pyx":28
5380
+ /* "a_sync/asyncio/igather.pyx":30
5606
5381
  *
5607
5382
  *
5608
5383
  * cdef object cigather(object coros_or_futures, bint return_exceptions = False): # <<<<<<<<<<<<<<
@@ -5633,7 +5408,7 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather_cigather(PyObject *__pyx_v_co
5633
5408
  return __pyx_r;
5634
5409
  }
5635
5410
 
5636
- /* "a_sync/asyncio/igather.pyx":155
5411
+ /* "a_sync/asyncio/igather.pyx":160
5637
5412
  *
5638
5413
  *
5639
5414
  * cdef object _get_empty_result_set_fut(loop): # <<<<<<<<<<<<<<
@@ -5656,45 +5431,45 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather__get_empty_result_set_fut(PyO
5656
5431
  const char *__pyx_filename = NULL;
5657
5432
  int __pyx_clineno = 0;
5658
5433
  __Pyx_RefNannySetupContext("_get_empty_result_set_fut", 1);
5659
- __Pyx_TraceCall("_get_empty_result_set_fut", __pyx_f[0], 155, 0, __PYX_ERR(0, 155, __pyx_L1_error));
5434
+ __Pyx_TraceCall("_get_empty_result_set_fut", __pyx_f[0], 160, 0, __PYX_ERR(0, 160, __pyx_L1_error));
5660
5435
 
5661
- /* "a_sync/asyncio/igather.pyx":156
5436
+ /* "a_sync/asyncio/igather.pyx":161
5662
5437
  *
5663
5438
  * cdef object _get_empty_result_set_fut(loop):
5664
5439
  * fut = _no_results_futs.get(loop) # <<<<<<<<<<<<<<
5665
5440
  * if fut is None:
5666
5441
  * fut = _no_results_futs[loop] = loop.create_future()
5667
5442
  */
5668
- __Pyx_TraceLine(156,0,__PYX_ERR(0, 156, __pyx_L1_error))
5443
+ __Pyx_TraceLine(161,0,__PYX_ERR(0, 161, __pyx_L1_error))
5669
5444
  if (unlikely(__pyx_v_6a_sync_7asyncio_7igather__no_results_futs == Py_None)) {
5670
5445
  PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
5671
- __PYX_ERR(0, 156, __pyx_L1_error)
5446
+ __PYX_ERR(0, 161, __pyx_L1_error)
5672
5447
  }
5673
- __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_6a_sync_7asyncio_7igather__no_results_futs, __pyx_v_loop, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 156, __pyx_L1_error)
5448
+ __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_6a_sync_7asyncio_7igather__no_results_futs, __pyx_v_loop, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 161, __pyx_L1_error)
5674
5449
  __Pyx_GOTREF(__pyx_t_1);
5675
5450
  __pyx_v_fut = __pyx_t_1;
5676
5451
  __pyx_t_1 = 0;
5677
5452
 
5678
- /* "a_sync/asyncio/igather.pyx":157
5453
+ /* "a_sync/asyncio/igather.pyx":162
5679
5454
  * cdef object _get_empty_result_set_fut(loop):
5680
5455
  * fut = _no_results_futs.get(loop)
5681
5456
  * if fut is None: # <<<<<<<<<<<<<<
5682
5457
  * fut = _no_results_futs[loop] = loop.create_future()
5683
5458
  * fut.set_result([])
5684
5459
  */
5685
- __Pyx_TraceLine(157,0,__PYX_ERR(0, 157, __pyx_L1_error))
5460
+ __Pyx_TraceLine(162,0,__PYX_ERR(0, 162, __pyx_L1_error))
5686
5461
  __pyx_t_2 = (__pyx_v_fut == Py_None);
5687
5462
  if (__pyx_t_2) {
5688
5463
 
5689
- /* "a_sync/asyncio/igather.pyx":158
5464
+ /* "a_sync/asyncio/igather.pyx":163
5690
5465
  * fut = _no_results_futs.get(loop)
5691
5466
  * if fut is None:
5692
5467
  * fut = _no_results_futs[loop] = loop.create_future() # <<<<<<<<<<<<<<
5693
5468
  * fut.set_result([])
5694
5469
  * return fut
5695
5470
  */
5696
- __Pyx_TraceLine(158,0,__PYX_ERR(0, 158, __pyx_L1_error))
5697
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_loop, __pyx_n_s_create_future); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 158, __pyx_L1_error)
5471
+ __Pyx_TraceLine(163,0,__PYX_ERR(0, 163, __pyx_L1_error))
5472
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_loop, __pyx_n_s_create_future); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 163, __pyx_L1_error)
5698
5473
  __Pyx_GOTREF(__pyx_t_3);
5699
5474
  __pyx_t_4 = NULL;
5700
5475
  __pyx_t_5 = 0;
@@ -5714,7 +5489,7 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather__get_empty_result_set_fut(PyO
5714
5489
  PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
5715
5490
  __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
5716
5491
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
5717
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 158, __pyx_L1_error)
5492
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 163, __pyx_L1_error)
5718
5493
  __Pyx_GOTREF(__pyx_t_1);
5719
5494
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5720
5495
  }
@@ -5722,22 +5497,22 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather__get_empty_result_set_fut(PyO
5722
5497
  __Pyx_DECREF_SET(__pyx_v_fut, __pyx_t_1);
5723
5498
  if (unlikely(__pyx_v_6a_sync_7asyncio_7igather__no_results_futs == Py_None)) {
5724
5499
  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
5725
- __PYX_ERR(0, 158, __pyx_L1_error)
5500
+ __PYX_ERR(0, 163, __pyx_L1_error)
5726
5501
  }
5727
- if (unlikely((PyDict_SetItem(__pyx_v_6a_sync_7asyncio_7igather__no_results_futs, __pyx_v_loop, __pyx_t_1) < 0))) __PYX_ERR(0, 158, __pyx_L1_error)
5502
+ if (unlikely((PyDict_SetItem(__pyx_v_6a_sync_7asyncio_7igather__no_results_futs, __pyx_v_loop, __pyx_t_1) < 0))) __PYX_ERR(0, 163, __pyx_L1_error)
5728
5503
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5729
5504
 
5730
- /* "a_sync/asyncio/igather.pyx":159
5505
+ /* "a_sync/asyncio/igather.pyx":164
5731
5506
  * if fut is None:
5732
5507
  * fut = _no_results_futs[loop] = loop.create_future()
5733
5508
  * fut.set_result([]) # <<<<<<<<<<<<<<
5734
5509
  * return fut
5735
5510
  *
5736
5511
  */
5737
- __Pyx_TraceLine(159,0,__PYX_ERR(0, 159, __pyx_L1_error))
5738
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_set_result); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 159, __pyx_L1_error)
5512
+ __Pyx_TraceLine(164,0,__PYX_ERR(0, 164, __pyx_L1_error))
5513
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_set_result); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 164, __pyx_L1_error)
5739
5514
  __Pyx_GOTREF(__pyx_t_3);
5740
- __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 159, __pyx_L1_error)
5515
+ __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 164, __pyx_L1_error)
5741
5516
  __Pyx_GOTREF(__pyx_t_4);
5742
5517
  __pyx_t_6 = NULL;
5743
5518
  __pyx_t_5 = 0;
@@ -5758,13 +5533,13 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather__get_empty_result_set_fut(PyO
5758
5533
  __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
5759
5534
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
5760
5535
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
5761
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 159, __pyx_L1_error)
5536
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 164, __pyx_L1_error)
5762
5537
  __Pyx_GOTREF(__pyx_t_1);
5763
5538
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5764
5539
  }
5765
5540
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5766
5541
 
5767
- /* "a_sync/asyncio/igather.pyx":157
5542
+ /* "a_sync/asyncio/igather.pyx":162
5768
5543
  * cdef object _get_empty_result_set_fut(loop):
5769
5544
  * fut = _no_results_futs.get(loop)
5770
5545
  * if fut is None: # <<<<<<<<<<<<<<
@@ -5773,20 +5548,20 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather__get_empty_result_set_fut(PyO
5773
5548
  */
5774
5549
  }
5775
5550
 
5776
- /* "a_sync/asyncio/igather.pyx":160
5551
+ /* "a_sync/asyncio/igather.pyx":165
5777
5552
  * fut = _no_results_futs[loop] = loop.create_future()
5778
5553
  * fut.set_result([])
5779
5554
  * return fut # <<<<<<<<<<<<<<
5780
5555
  *
5781
5556
  *
5782
5557
  */
5783
- __Pyx_TraceLine(160,0,__PYX_ERR(0, 160, __pyx_L1_error))
5558
+ __Pyx_TraceLine(165,0,__PYX_ERR(0, 165, __pyx_L1_error))
5784
5559
  __Pyx_XDECREF(__pyx_r);
5785
5560
  __Pyx_INCREF(__pyx_v_fut);
5786
5561
  __pyx_r = __pyx_v_fut;
5787
5562
  goto __pyx_L0;
5788
5563
 
5789
- /* "a_sync/asyncio/igather.pyx":155
5564
+ /* "a_sync/asyncio/igather.pyx":160
5790
5565
  *
5791
5566
  *
5792
5567
  * cdef object _get_empty_result_set_fut(loop): # <<<<<<<<<<<<<<
@@ -5810,12 +5585,12 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather__get_empty_result_set_fut(PyO
5810
5585
  return __pyx_r;
5811
5586
  }
5812
5587
 
5813
- /* "a_sync/asyncio/igather.pyx":163
5588
+ /* "a_sync/asyncio/igather.pyx":168
5814
5589
  *
5815
5590
  *
5816
5591
  * cdef object _get_result_or_exc(fut: asyncio.Future): # <<<<<<<<<<<<<<
5817
5592
  * if fut.cancelled():
5818
- * # Check if 'fut' is cancelled first, as 'fut.exception()'
5593
+ * if PY_VERSION_HEX < 0x03090000:
5819
5594
  */
5820
5595
 
5821
5596
  static PyObject *__pyx_f_6a_sync_7asyncio_7igather__get_result_or_exc(PyObject *__pyx_v_fut) {
@@ -5833,17 +5608,17 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather__get_result_or_exc(PyObject *
5833
5608
  const char *__pyx_filename = NULL;
5834
5609
  int __pyx_clineno = 0;
5835
5610
  __Pyx_RefNannySetupContext("_get_result_or_exc", 1);
5836
- __Pyx_TraceCall("_get_result_or_exc", __pyx_f[0], 163, 0, __PYX_ERR(0, 163, __pyx_L1_error));
5611
+ __Pyx_TraceCall("_get_result_or_exc", __pyx_f[0], 168, 0, __PYX_ERR(0, 168, __pyx_L1_error));
5837
5612
 
5838
- /* "a_sync/asyncio/igather.pyx":164
5613
+ /* "a_sync/asyncio/igather.pyx":169
5839
5614
  *
5840
5615
  * cdef object _get_result_or_exc(fut: asyncio.Future):
5841
5616
  * if fut.cancelled(): # <<<<<<<<<<<<<<
5842
- * # Check if 'fut' is cancelled first, as 'fut.exception()'
5843
- * # will *raise* a CancelledError instead of returning it.
5617
+ * if PY_VERSION_HEX < 0x03090000:
5618
+ * return CancelledError()
5844
5619
  */
5845
- __Pyx_TraceLine(164,0,__PYX_ERR(0, 164, __pyx_L1_error))
5846
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_cancelled); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 164, __pyx_L1_error)
5620
+ __Pyx_TraceLine(169,0,__PYX_ERR(0, 169, __pyx_L1_error))
5621
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_cancelled); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 169, __pyx_L1_error)
5847
5622
  __Pyx_GOTREF(__pyx_t_2);
5848
5623
  __pyx_t_3 = NULL;
5849
5624
  __pyx_t_4 = 0;
@@ -5863,24 +5638,80 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather__get_result_or_exc(PyObject *
5863
5638
  PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
5864
5639
  __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
5865
5640
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
5866
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 164, __pyx_L1_error)
5641
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 169, __pyx_L1_error)
5867
5642
  __Pyx_GOTREF(__pyx_t_1);
5868
5643
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5869
5644
  }
5870
- __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 164, __pyx_L1_error)
5645
+ __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 169, __pyx_L1_error)
5871
5646
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5872
5647
  if (__pyx_t_5) {
5873
5648
 
5874
- /* "a_sync/asyncio/igather.pyx":171
5649
+ /* "a_sync/asyncio/igather.pyx":170
5650
+ * cdef object _get_result_or_exc(fut: asyncio.Future):
5651
+ * if fut.cancelled():
5652
+ * if PY_VERSION_HEX < 0x03090000: # <<<<<<<<<<<<<<
5653
+ * return CancelledError()
5654
+ * # Check if 'fut' is cancelled first, as 'fut.exception()'
5655
+ */
5656
+ __Pyx_TraceLine(170,0,__PYX_ERR(0, 170, __pyx_L1_error))
5657
+ __pyx_t_5 = (PY_VERSION_HEX < 0x03090000);
5658
+ if (__pyx_t_5) {
5659
+
5660
+ /* "a_sync/asyncio/igather.pyx":171
5661
+ * if fut.cancelled():
5662
+ * if PY_VERSION_HEX < 0x03090000:
5663
+ * return CancelledError() # <<<<<<<<<<<<<<
5664
+ * # Check if 'fut' is cancelled first, as 'fut.exception()'
5665
+ * # will *raise* a CancelledError instead of returning it.
5666
+ */
5667
+ __Pyx_TraceLine(171,0,__PYX_ERR(0, 171, __pyx_L1_error))
5668
+ __Pyx_XDECREF(__pyx_r);
5669
+ __Pyx_INCREF(__pyx_v_6a_sync_7asyncio_7igather_CancelledError);
5670
+ __pyx_t_2 = __pyx_v_6a_sync_7asyncio_7igather_CancelledError; __pyx_t_3 = NULL;
5671
+ __pyx_t_4 = 0;
5672
+ #if CYTHON_UNPACK_METHODS
5673
+ if (unlikely(PyMethod_Check(__pyx_t_2))) {
5674
+ __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
5675
+ if (likely(__pyx_t_3)) {
5676
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
5677
+ __Pyx_INCREF(__pyx_t_3);
5678
+ __Pyx_INCREF(function);
5679
+ __Pyx_DECREF_SET(__pyx_t_2, function);
5680
+ __pyx_t_4 = 1;
5681
+ }
5682
+ }
5683
+ #endif
5684
+ {
5685
+ PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
5686
+ __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
5687
+ __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
5688
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 171, __pyx_L1_error)
5689
+ __Pyx_GOTREF(__pyx_t_1);
5690
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5691
+ }
5692
+ __pyx_r = __pyx_t_1;
5693
+ __pyx_t_1 = 0;
5694
+ goto __pyx_L0;
5695
+
5696
+ /* "a_sync/asyncio/igather.pyx":170
5697
+ * cdef object _get_result_or_exc(fut: asyncio.Future):
5698
+ * if fut.cancelled():
5699
+ * if PY_VERSION_HEX < 0x03090000: # <<<<<<<<<<<<<<
5700
+ * return CancelledError()
5701
+ * # Check if 'fut' is cancelled first, as 'fut.exception()'
5702
+ */
5703
+ }
5704
+
5705
+ /* "a_sync/asyncio/igather.pyx":178
5875
5706
  * # setting __context__. This also lets us preserve
5876
5707
  * # calling '_make_cancelled_error()' at most once.
5877
5708
  * return CancelledError("" if fut._cancel_message is None else fut._cancel_message) # <<<<<<<<<<<<<<
5878
5709
  * res = fut.exception()
5879
5710
  * if res is None:
5880
5711
  */
5881
- __Pyx_TraceLine(171,0,__PYX_ERR(0, 171, __pyx_L1_error))
5712
+ __Pyx_TraceLine(178,0,__PYX_ERR(0, 178, __pyx_L1_error))
5882
5713
  __Pyx_XDECREF(__pyx_r);
5883
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_cancel_message); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 171, __pyx_L1_error)
5714
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_cancel_message); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 178, __pyx_L1_error)
5884
5715
  __Pyx_GOTREF(__pyx_t_3);
5885
5716
  __pyx_t_5 = (__pyx_t_3 == Py_None);
5886
5717
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -5888,7 +5719,7 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather__get_result_or_exc(PyObject *
5888
5719
  __Pyx_INCREF(__pyx_kp_u__5);
5889
5720
  __pyx_t_2 = __pyx_kp_u__5;
5890
5721
  } else {
5891
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_cancel_message); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 171, __pyx_L1_error)
5722
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_cancel_message); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 178, __pyx_L1_error)
5892
5723
  __Pyx_GOTREF(__pyx_t_3);
5893
5724
  __pyx_t_2 = __pyx_t_3;
5894
5725
  __pyx_t_3 = 0;
@@ -5913,7 +5744,7 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather__get_result_or_exc(PyObject *
5913
5744
  __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
5914
5745
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
5915
5746
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5916
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 171, __pyx_L1_error)
5747
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 178, __pyx_L1_error)
5917
5748
  __Pyx_GOTREF(__pyx_t_1);
5918
5749
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5919
5750
  }
@@ -5921,24 +5752,24 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather__get_result_or_exc(PyObject *
5921
5752
  __pyx_t_1 = 0;
5922
5753
  goto __pyx_L0;
5923
5754
 
5924
- /* "a_sync/asyncio/igather.pyx":164
5755
+ /* "a_sync/asyncio/igather.pyx":169
5925
5756
  *
5926
5757
  * cdef object _get_result_or_exc(fut: asyncio.Future):
5927
5758
  * if fut.cancelled(): # <<<<<<<<<<<<<<
5928
- * # Check if 'fut' is cancelled first, as 'fut.exception()'
5929
- * # will *raise* a CancelledError instead of returning it.
5759
+ * if PY_VERSION_HEX < 0x03090000:
5760
+ * return CancelledError()
5930
5761
  */
5931
5762
  }
5932
5763
 
5933
- /* "a_sync/asyncio/igather.pyx":172
5764
+ /* "a_sync/asyncio/igather.pyx":179
5934
5765
  * # calling '_make_cancelled_error()' at most once.
5935
5766
  * return CancelledError("" if fut._cancel_message is None else fut._cancel_message)
5936
5767
  * res = fut.exception() # <<<<<<<<<<<<<<
5937
5768
  * if res is None:
5938
5769
  * return fut.result()
5939
5770
  */
5940
- __Pyx_TraceLine(172,0,__PYX_ERR(0, 172, __pyx_L1_error))
5941
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_exception); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 172, __pyx_L1_error)
5771
+ __Pyx_TraceLine(179,0,__PYX_ERR(0, 179, __pyx_L1_error))
5772
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_exception); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 179, __pyx_L1_error)
5942
5773
  __Pyx_GOTREF(__pyx_t_3);
5943
5774
  __pyx_t_2 = NULL;
5944
5775
  __pyx_t_4 = 0;
@@ -5958,33 +5789,33 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather__get_result_or_exc(PyObject *
5958
5789
  PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
5959
5790
  __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
5960
5791
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
5961
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 172, __pyx_L1_error)
5792
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 179, __pyx_L1_error)
5962
5793
  __Pyx_GOTREF(__pyx_t_1);
5963
5794
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5964
5795
  }
5965
5796
  __pyx_v_res = __pyx_t_1;
5966
5797
  __pyx_t_1 = 0;
5967
5798
 
5968
- /* "a_sync/asyncio/igather.pyx":173
5799
+ /* "a_sync/asyncio/igather.pyx":180
5969
5800
  * return CancelledError("" if fut._cancel_message is None else fut._cancel_message)
5970
5801
  * res = fut.exception()
5971
5802
  * if res is None: # <<<<<<<<<<<<<<
5972
5803
  * return fut.result()
5973
5804
  * return res
5974
5805
  */
5975
- __Pyx_TraceLine(173,0,__PYX_ERR(0, 173, __pyx_L1_error))
5806
+ __Pyx_TraceLine(180,0,__PYX_ERR(0, 180, __pyx_L1_error))
5976
5807
  __pyx_t_5 = (__pyx_v_res == Py_None);
5977
5808
  if (__pyx_t_5) {
5978
5809
 
5979
- /* "a_sync/asyncio/igather.pyx":174
5810
+ /* "a_sync/asyncio/igather.pyx":181
5980
5811
  * res = fut.exception()
5981
5812
  * if res is None:
5982
5813
  * return fut.result() # <<<<<<<<<<<<<<
5983
5814
  * return res
5984
5815
  */
5985
- __Pyx_TraceLine(174,0,__PYX_ERR(0, 174, __pyx_L1_error))
5816
+ __Pyx_TraceLine(181,0,__PYX_ERR(0, 181, __pyx_L1_error))
5986
5817
  __Pyx_XDECREF(__pyx_r);
5987
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_result); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 174, __pyx_L1_error)
5818
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_fut, __pyx_n_s_result); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 181, __pyx_L1_error)
5988
5819
  __Pyx_GOTREF(__pyx_t_3);
5989
5820
  __pyx_t_2 = NULL;
5990
5821
  __pyx_t_4 = 0;
@@ -6004,7 +5835,7 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather__get_result_or_exc(PyObject *
6004
5835
  PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
6005
5836
  __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
6006
5837
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
6007
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 174, __pyx_L1_error)
5838
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 181, __pyx_L1_error)
6008
5839
  __Pyx_GOTREF(__pyx_t_1);
6009
5840
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6010
5841
  }
@@ -6012,7 +5843,7 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather__get_result_or_exc(PyObject *
6012
5843
  __pyx_t_1 = 0;
6013
5844
  goto __pyx_L0;
6014
5845
 
6015
- /* "a_sync/asyncio/igather.pyx":173
5846
+ /* "a_sync/asyncio/igather.pyx":180
6016
5847
  * return CancelledError("" if fut._cancel_message is None else fut._cancel_message)
6017
5848
  * res = fut.exception()
6018
5849
  * if res is None: # <<<<<<<<<<<<<<
@@ -6021,23 +5852,23 @@ static PyObject *__pyx_f_6a_sync_7asyncio_7igather__get_result_or_exc(PyObject *
6021
5852
  */
6022
5853
  }
6023
5854
 
6024
- /* "a_sync/asyncio/igather.pyx":175
5855
+ /* "a_sync/asyncio/igather.pyx":182
6025
5856
  * if res is None:
6026
5857
  * return fut.result()
6027
5858
  * return res # <<<<<<<<<<<<<<
6028
5859
  */
6029
- __Pyx_TraceLine(175,0,__PYX_ERR(0, 175, __pyx_L1_error))
5860
+ __Pyx_TraceLine(182,0,__PYX_ERR(0, 182, __pyx_L1_error))
6030
5861
  __Pyx_XDECREF(__pyx_r);
6031
5862
  __Pyx_INCREF(__pyx_v_res);
6032
5863
  __pyx_r = __pyx_v_res;
6033
5864
  goto __pyx_L0;
6034
5865
 
6035
- /* "a_sync/asyncio/igather.pyx":163
5866
+ /* "a_sync/asyncio/igather.pyx":168
6036
5867
  *
6037
5868
  *
6038
5869
  * cdef object _get_result_or_exc(fut: asyncio.Future): # <<<<<<<<<<<<<<
6039
5870
  * if fut.cancelled():
6040
- * # Check if 'fut' is cancelled first, as 'fut.exception()'
5871
+ * if PY_VERSION_HEX < 0x03090000:
6041
5872
  */
6042
5873
 
6043
5874
  /* function exit code */
@@ -6253,7 +6084,6 @@ static PyMethodDef __pyx_methods[] = {
6253
6084
 
6254
6085
  static int __Pyx_CreateStringTabAndInitStrings(void) {
6255
6086
  __Pyx_StringTabEntry __pyx_string_tab[] = {
6256
- {&__pyx_n_s_AttributeError, __pyx_k_AttributeError, sizeof(__pyx_k_AttributeError), 0, 0, 1, 1},
6257
6087
  {&__pyx_n_s_Awaitable, __pyx_k_Awaitable, sizeof(__pyx_k_Awaitable), 0, 0, 1, 1},
6258
6088
  {&__pyx_kp_s_Awaitable_List___T, __pyx_k_Awaitable_List___T, sizeof(__pyx_k_Awaitable_List___T), 0, 0, 1, 0},
6259
6089
  {&__pyx_n_s_CancelledError, __pyx_k_CancelledError, sizeof(__pyx_k_CancelledError), 0, 0, 1, 1},
@@ -6330,10 +6160,7 @@ static int __Pyx_CreateStringTabAndInitStrings(void) {
6330
6160
  }
6331
6161
  /* #### Code section: cached_builtins ### */
6332
6162
  static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
6333
- __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(0, 85, __pyx_L1_error)
6334
6163
  return 0;
6335
- __pyx_L1_error:;
6336
- return -1;
6337
6164
  }
6338
6165
  /* #### Code section: cached_constants ### */
6339
6166
 
@@ -6341,49 +6168,49 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
6341
6168
  __Pyx_RefNannyDeclarations
6342
6169
  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);
6343
6170
 
6344
- /* "a_sync/asyncio/igather.pyx":64
6171
+ /* "a_sync/asyncio/igather.pyx":66
6345
6172
  * if return_exceptions:
6346
6173
  *
6347
6174
  * def _done_callback(fut: asyncio.Future) -> None: # <<<<<<<<<<<<<<
6348
6175
  * # for some reason this wouldn't work until I added `return_exceptions=return_exceptions` to the func def
6349
6176
  * nonlocal nfinished
6350
6177
  */
6351
- __pyx_tuple__2 = PyTuple_Pack(3, __pyx_n_s_fut, __pyx_n_s_exc, __pyx_n_s_child); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 64, __pyx_L1_error)
6178
+ __pyx_tuple__2 = PyTuple_Pack(3, __pyx_n_s_fut, __pyx_n_s_exc, __pyx_n_s_child); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 66, __pyx_L1_error)
6352
6179
  __Pyx_GOTREF(__pyx_tuple__2);
6353
6180
  __Pyx_GIVEREF(__pyx_tuple__2);
6354
- __pyx_codeobj__3 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__2, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_a_sync_asyncio_igather_pyx, __pyx_n_s_done_callback, 64, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__3)) __PYX_ERR(0, 64, __pyx_L1_error)
6181
+ __pyx_codeobj__3 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__2, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_a_sync_asyncio_igather_pyx, __pyx_n_s_done_callback, 66, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__3)) __PYX_ERR(0, 66, __pyx_L1_error)
6355
6182
 
6356
- /* "a_sync/asyncio/igather.pyx":93
6183
+ /* "a_sync/asyncio/igather.pyx":96
6357
6184
  * else:
6358
6185
  *
6359
6186
  * def _done_callback(fut: asyncio.Future) -> None: # <<<<<<<<<<<<<<
6360
6187
  * # for some reason this wouldn't work until I added `return_exceptions=return_exceptions` to the func def
6361
6188
  * nonlocal nfinished
6362
6189
  */
6363
- __pyx_codeobj__4 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__2, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_a_sync_asyncio_igather_pyx, __pyx_n_s_done_callback, 93, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__4)) __PYX_ERR(0, 93, __pyx_L1_error)
6190
+ __pyx_codeobj__4 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__2, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_a_sync_asyncio_igather_pyx, __pyx_n_s_done_callback, 96, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__4)) __PYX_ERR(0, 96, __pyx_L1_error)
6364
6191
 
6365
- /* "a_sync/asyncio/igather.pyx":9
6192
+ /* "a_sync/asyncio/igather.pyx":11
6366
6193
  *
6367
6194
  *
6368
6195
  * __T = TypeVar("__T") # <<<<<<<<<<<<<<
6369
6196
  *
6370
6197
  *
6371
6198
  */
6372
- __pyx_tuple__8 = PyTuple_Pack(1, __pyx_n_u_T); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(0, 9, __pyx_L1_error)
6199
+ __pyx_tuple__8 = PyTuple_Pack(1, __pyx_n_u_T); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(0, 11, __pyx_L1_error)
6373
6200
  __Pyx_GOTREF(__pyx_tuple__8);
6374
6201
  __Pyx_GIVEREF(__pyx_tuple__8);
6375
6202
 
6376
- /* "a_sync/asyncio/igather.pyx":21
6203
+ /* "a_sync/asyncio/igather.pyx":23
6377
6204
  *
6378
6205
  *
6379
6206
  * def igather( # <<<<<<<<<<<<<<
6380
6207
  * coros_or_futures: Iterable[Awaitable[__T]], bint return_exceptions = False
6381
6208
  * ) -> Awaitable[List[__T]]:
6382
6209
  */
6383
- __pyx_tuple__9 = PyTuple_Pack(2, __pyx_n_s_coros_or_futures, __pyx_n_s_return_exceptions); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(0, 21, __pyx_L1_error)
6210
+ __pyx_tuple__9 = PyTuple_Pack(2, __pyx_n_s_coros_or_futures, __pyx_n_s_return_exceptions); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(0, 23, __pyx_L1_error)
6384
6211
  __Pyx_GOTREF(__pyx_tuple__9);
6385
6212
  __Pyx_GIVEREF(__pyx_tuple__9);
6386
- __pyx_codeobj_ = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__9, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_a_sync_asyncio_igather_pyx, __pyx_n_s_igather, 21, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj_)) __PYX_ERR(0, 21, __pyx_L1_error)
6213
+ __pyx_codeobj_ = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__9, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_a_sync_asyncio_igather_pyx, __pyx_n_s_igather, 23, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj_)) __PYX_ERR(0, 23, __pyx_L1_error)
6387
6214
  __Pyx_RefNannyFinishContext();
6388
6215
  return 0;
6389
6216
  __pyx_L1_error:;
@@ -6461,15 +6288,15 @@ static int __Pyx_modinit_type_init_code(void) {
6461
6288
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
6462
6289
  /*--- Type init code ---*/
6463
6290
  #if CYTHON_USE_TYPE_SPECS
6464
- __pyx_ptype_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather_spec, NULL); if (unlikely(!__pyx_ptype_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather)) __PYX_ERR(0, 28, __pyx_L1_error)
6465
- if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather_spec, __pyx_ptype_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather) < 0) __PYX_ERR(0, 28, __pyx_L1_error)
6291
+ __pyx_ptype_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather_spec, NULL); if (unlikely(!__pyx_ptype_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather)) __PYX_ERR(0, 30, __pyx_L1_error)
6292
+ if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather_spec, __pyx_ptype_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather) < 0) __PYX_ERR(0, 30, __pyx_L1_error)
6466
6293
  #else
6467
6294
  __pyx_ptype_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather = &__pyx_type_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather;
6468
6295
  #endif
6469
6296
  #if !CYTHON_COMPILING_IN_LIMITED_API
6470
6297
  #endif
6471
6298
  #if !CYTHON_USE_TYPE_SPECS
6472
- if (__Pyx_PyType_Ready(__pyx_ptype_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather) < 0) __PYX_ERR(0, 28, __pyx_L1_error)
6299
+ if (__Pyx_PyType_Ready(__pyx_ptype_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather) < 0) __PYX_ERR(0, 30, __pyx_L1_error)
6473
6300
  #endif
6474
6301
  #if PY_MAJOR_VERSION < 3
6475
6302
  __pyx_ptype_6a_sync_7asyncio_7igather___pyx_scope_struct____pyx_f_6a_sync_7asyncio_7igather_cigather->tp_print = 0;
@@ -6848,7 +6675,7 @@ if (!__Pyx_RefNanny) {
6848
6675
  * from asyncio import futures, tasks
6849
6676
  * from typing import Awaitable, Iterable, List, TypeVar # <<<<<<<<<<<<<<
6850
6677
  *
6851
- * from a_sync import _smart
6678
+ * from cpython.version cimport PY_VERSION_HEX
6852
6679
  */
6853
6680
  __Pyx_TraceLine(3,0,__PYX_ERR(0, 3, __pyx_L1_error))
6854
6681
  __pyx_t_3 = PyList_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3, __pyx_L1_error)
@@ -6886,55 +6713,55 @@ if (!__Pyx_RefNanny) {
6886
6713
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6887
6714
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6888
6715
 
6889
- /* "a_sync/asyncio/igather.pyx":5
6890
- * from typing import Awaitable, Iterable, List, TypeVar
6716
+ /* "a_sync/asyncio/igather.pyx":7
6717
+ * from cpython.version cimport PY_VERSION_HEX
6891
6718
  *
6892
6719
  * from a_sync import _smart # <<<<<<<<<<<<<<
6893
6720
  * from a_sync.a_sync._helpers cimport get_event_loop
6894
6721
  *
6895
6722
  */
6896
- __Pyx_TraceLine(5,0,__PYX_ERR(0, 5, __pyx_L1_error))
6897
- __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5, __pyx_L1_error)
6723
+ __Pyx_TraceLine(7,0,__PYX_ERR(0, 7, __pyx_L1_error))
6724
+ __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7, __pyx_L1_error)
6898
6725
  __Pyx_GOTREF(__pyx_t_2);
6899
6726
  __Pyx_INCREF(__pyx_n_s_smart);
6900
6727
  __Pyx_GIVEREF(__pyx_n_s_smart);
6901
- if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_smart)) __PYX_ERR(0, 5, __pyx_L1_error);
6902
- __pyx_t_3 = __Pyx_Import(__pyx_n_s_a_sync, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5, __pyx_L1_error)
6728
+ if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_smart)) __PYX_ERR(0, 7, __pyx_L1_error);
6729
+ __pyx_t_3 = __Pyx_Import(__pyx_n_s_a_sync, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7, __pyx_L1_error)
6903
6730
  __Pyx_GOTREF(__pyx_t_3);
6904
6731
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6905
- __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_smart); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5, __pyx_L1_error)
6732
+ __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_smart); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7, __pyx_L1_error)
6906
6733
  __Pyx_GOTREF(__pyx_t_2);
6907
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_smart, __pyx_t_2) < 0) __PYX_ERR(0, 5, __pyx_L1_error)
6734
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_smart, __pyx_t_2) < 0) __PYX_ERR(0, 7, __pyx_L1_error)
6908
6735
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6909
6736
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6910
6737
 
6911
- /* "a_sync/asyncio/igather.pyx":9
6738
+ /* "a_sync/asyncio/igather.pyx":11
6912
6739
  *
6913
6740
  *
6914
6741
  * __T = TypeVar("__T") # <<<<<<<<<<<<<<
6915
6742
  *
6916
6743
  *
6917
6744
  */
6918
- __Pyx_TraceLine(9,0,__PYX_ERR(0, 9, __pyx_L1_error))
6919
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TypeVar); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9, __pyx_L1_error)
6745
+ __Pyx_TraceLine(11,0,__PYX_ERR(0, 11, __pyx_L1_error))
6746
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TypeVar); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 11, __pyx_L1_error)
6920
6747
  __Pyx_GOTREF(__pyx_t_3);
6921
- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9, __pyx_L1_error)
6748
+ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11, __pyx_L1_error)
6922
6749
  __Pyx_GOTREF(__pyx_t_2);
6923
6750
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6924
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_T, __pyx_t_2) < 0) __PYX_ERR(0, 9, __pyx_L1_error)
6751
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_T, __pyx_t_2) < 0) __PYX_ERR(0, 11, __pyx_L1_error)
6925
6752
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6926
6753
 
6927
- /* "a_sync/asyncio/igather.pyx":12
6754
+ /* "a_sync/asyncio/igather.pyx":14
6928
6755
  *
6929
6756
  *
6930
6757
  * cdef object current_task = asyncio.current_task # <<<<<<<<<<<<<<
6931
6758
  * cdef object ensure_future = asyncio.ensure_future
6932
6759
  * cdef object CancelledError = asyncio.CancelledError
6933
6760
  */
6934
- __Pyx_TraceLine(12,0,__PYX_ERR(0, 12, __pyx_L1_error))
6935
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12, __pyx_L1_error)
6761
+ __Pyx_TraceLine(14,0,__PYX_ERR(0, 14, __pyx_L1_error))
6762
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14, __pyx_L1_error)
6936
6763
  __Pyx_GOTREF(__pyx_t_2);
6937
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_current_task); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12, __pyx_L1_error)
6764
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_current_task); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14, __pyx_L1_error)
6938
6765
  __Pyx_GOTREF(__pyx_t_3);
6939
6766
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6940
6767
  __Pyx_XGOTREF(__pyx_v_6a_sync_7asyncio_7igather_current_task);
@@ -6942,17 +6769,17 @@ if (!__Pyx_RefNanny) {
6942
6769
  __Pyx_GIVEREF(__pyx_t_3);
6943
6770
  __pyx_t_3 = 0;
6944
6771
 
6945
- /* "a_sync/asyncio/igather.pyx":13
6772
+ /* "a_sync/asyncio/igather.pyx":15
6946
6773
  *
6947
6774
  * cdef object current_task = asyncio.current_task
6948
6775
  * cdef object ensure_future = asyncio.ensure_future # <<<<<<<<<<<<<<
6949
6776
  * cdef object CancelledError = asyncio.CancelledError
6950
6777
  * cdef object _get_loop = futures._get_loop
6951
6778
  */
6952
- __Pyx_TraceLine(13,0,__PYX_ERR(0, 13, __pyx_L1_error))
6953
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13, __pyx_L1_error)
6779
+ __Pyx_TraceLine(15,0,__PYX_ERR(0, 15, __pyx_L1_error))
6780
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15, __pyx_L1_error)
6954
6781
  __Pyx_GOTREF(__pyx_t_3);
6955
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ensure_future); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13, __pyx_L1_error)
6782
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ensure_future); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error)
6956
6783
  __Pyx_GOTREF(__pyx_t_2);
6957
6784
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6958
6785
  __Pyx_XGOTREF(__pyx_v_6a_sync_7asyncio_7igather_ensure_future);
@@ -6960,17 +6787,17 @@ if (!__Pyx_RefNanny) {
6960
6787
  __Pyx_GIVEREF(__pyx_t_2);
6961
6788
  __pyx_t_2 = 0;
6962
6789
 
6963
- /* "a_sync/asyncio/igather.pyx":14
6790
+ /* "a_sync/asyncio/igather.pyx":16
6964
6791
  * cdef object current_task = asyncio.current_task
6965
6792
  * cdef object ensure_future = asyncio.ensure_future
6966
6793
  * cdef object CancelledError = asyncio.CancelledError # <<<<<<<<<<<<<<
6967
6794
  * cdef object _get_loop = futures._get_loop
6968
6795
  * cdef object _GatheringFuture = tasks._GatheringFuture
6969
6796
  */
6970
- __Pyx_TraceLine(14,0,__PYX_ERR(0, 14, __pyx_L1_error))
6971
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14, __pyx_L1_error)
6797
+ __Pyx_TraceLine(16,0,__PYX_ERR(0, 16, __pyx_L1_error))
6798
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16, __pyx_L1_error)
6972
6799
  __Pyx_GOTREF(__pyx_t_2);
6973
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_CancelledError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14, __pyx_L1_error)
6800
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_CancelledError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16, __pyx_L1_error)
6974
6801
  __Pyx_GOTREF(__pyx_t_3);
6975
6802
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6976
6803
  __Pyx_XGOTREF(__pyx_v_6a_sync_7asyncio_7igather_CancelledError);
@@ -6978,17 +6805,17 @@ if (!__Pyx_RefNanny) {
6978
6805
  __Pyx_GIVEREF(__pyx_t_3);
6979
6806
  __pyx_t_3 = 0;
6980
6807
 
6981
- /* "a_sync/asyncio/igather.pyx":15
6808
+ /* "a_sync/asyncio/igather.pyx":17
6982
6809
  * cdef object ensure_future = asyncio.ensure_future
6983
6810
  * cdef object CancelledError = asyncio.CancelledError
6984
6811
  * cdef object _get_loop = futures._get_loop # <<<<<<<<<<<<<<
6985
6812
  * cdef object _GatheringFuture = tasks._GatheringFuture
6986
6813
  *
6987
6814
  */
6988
- __Pyx_TraceLine(15,0,__PYX_ERR(0, 15, __pyx_L1_error))
6989
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_futures); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15, __pyx_L1_error)
6815
+ __Pyx_TraceLine(17,0,__PYX_ERR(0, 17, __pyx_L1_error))
6816
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_futures); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 17, __pyx_L1_error)
6990
6817
  __Pyx_GOTREF(__pyx_t_3);
6991
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_get_loop); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error)
6818
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_get_loop); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17, __pyx_L1_error)
6992
6819
  __Pyx_GOTREF(__pyx_t_2);
6993
6820
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6994
6821
  __Pyx_XGOTREF(__pyx_v_6a_sync_7asyncio_7igather__get_loop);
@@ -6996,17 +6823,17 @@ if (!__Pyx_RefNanny) {
6996
6823
  __Pyx_GIVEREF(__pyx_t_2);
6997
6824
  __pyx_t_2 = 0;
6998
6825
 
6999
- /* "a_sync/asyncio/igather.pyx":16
6826
+ /* "a_sync/asyncio/igather.pyx":18
7000
6827
  * cdef object CancelledError = asyncio.CancelledError
7001
6828
  * cdef object _get_loop = futures._get_loop
7002
6829
  * cdef object _GatheringFuture = tasks._GatheringFuture # <<<<<<<<<<<<<<
7003
6830
  *
7004
6831
  * cdef object smart_task_factory = _smart.smart_task_factory
7005
6832
  */
7006
- __Pyx_TraceLine(16,0,__PYX_ERR(0, 16, __pyx_L1_error))
7007
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tasks); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16, __pyx_L1_error)
6833
+ __Pyx_TraceLine(18,0,__PYX_ERR(0, 18, __pyx_L1_error))
6834
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tasks); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18, __pyx_L1_error)
7008
6835
  __Pyx_GOTREF(__pyx_t_2);
7009
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_GatheringFuture); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16, __pyx_L1_error)
6836
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_GatheringFuture); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18, __pyx_L1_error)
7010
6837
  __Pyx_GOTREF(__pyx_t_3);
7011
6838
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7012
6839
  __Pyx_XGOTREF(__pyx_v_6a_sync_7asyncio_7igather__GatheringFuture);
@@ -7014,17 +6841,17 @@ if (!__Pyx_RefNanny) {
7014
6841
  __Pyx_GIVEREF(__pyx_t_3);
7015
6842
  __pyx_t_3 = 0;
7016
6843
 
7017
- /* "a_sync/asyncio/igather.pyx":18
6844
+ /* "a_sync/asyncio/igather.pyx":20
7018
6845
  * cdef object _GatheringFuture = tasks._GatheringFuture
7019
6846
  *
7020
6847
  * cdef object smart_task_factory = _smart.smart_task_factory # <<<<<<<<<<<<<<
7021
6848
  *
7022
6849
  *
7023
6850
  */
7024
- __Pyx_TraceLine(18,0,__PYX_ERR(0, 18, __pyx_L1_error))
7025
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_smart); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18, __pyx_L1_error)
6851
+ __Pyx_TraceLine(20,0,__PYX_ERR(0, 20, __pyx_L1_error))
6852
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_smart); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20, __pyx_L1_error)
7026
6853
  __Pyx_GOTREF(__pyx_t_3);
7027
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_smart_task_factory); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18, __pyx_L1_error)
6854
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_smart_task_factory); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 20, __pyx_L1_error)
7028
6855
  __Pyx_GOTREF(__pyx_t_2);
7029
6856
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
7030
6857
  __Pyx_XGOTREF(__pyx_v_6a_sync_7asyncio_7igather_smart_task_factory);
@@ -7032,86 +6859,86 @@ if (!__Pyx_RefNanny) {
7032
6859
  __Pyx_GIVEREF(__pyx_t_2);
7033
6860
  __pyx_t_2 = 0;
7034
6861
 
7035
- /* "a_sync/asyncio/igather.pyx":22
6862
+ /* "a_sync/asyncio/igather.pyx":24
7036
6863
  *
7037
6864
  * def igather(
7038
6865
  * coros_or_futures: Iterable[Awaitable[__T]], bint return_exceptions = False # <<<<<<<<<<<<<<
7039
6866
  * ) -> Awaitable[List[__T]]:
7040
6867
  * """A clone of asyncio.gather that takes a single iterator of coroutines instead of an unpacked tuple."""
7041
6868
  */
7042
- __Pyx_TraceLine(22,0,__PYX_ERR(0, 22, __pyx_L1_error))
7043
- __pyx_t_2 = __Pyx_PyBool_FromLong(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22, __pyx_L1_error)
6869
+ __Pyx_TraceLine(24,0,__PYX_ERR(0, 24, __pyx_L1_error))
6870
+ __pyx_t_2 = __Pyx_PyBool_FromLong(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error)
7044
6871
  __Pyx_GOTREF(__pyx_t_2);
7045
6872
 
7046
- /* "a_sync/asyncio/igather.pyx":21
6873
+ /* "a_sync/asyncio/igather.pyx":23
7047
6874
  *
7048
6875
  *
7049
6876
  * def igather( # <<<<<<<<<<<<<<
7050
6877
  * coros_or_futures: Iterable[Awaitable[__T]], bint return_exceptions = False
7051
6878
  * ) -> Awaitable[List[__T]]:
7052
6879
  */
7053
- __Pyx_TraceLine(21,0,__PYX_ERR(0, 21, __pyx_L1_error))
7054
- __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21, __pyx_L1_error)
6880
+ __Pyx_TraceLine(23,0,__PYX_ERR(0, 23, __pyx_L1_error))
6881
+ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23, __pyx_L1_error)
7055
6882
  __Pyx_GOTREF(__pyx_t_3);
7056
6883
  __Pyx_GIVEREF(__pyx_t_2);
7057
- if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(0, 21, __pyx_L1_error);
6884
+ if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(0, 23, __pyx_L1_error);
7058
6885
  __pyx_t_2 = 0;
7059
- __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21, __pyx_L1_error)
6886
+ __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23, __pyx_L1_error)
7060
6887
  __Pyx_GOTREF(__pyx_t_2);
7061
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_coros_or_futures, __pyx_kp_s_Iterable_Awaitable___T) < 0) __PYX_ERR(0, 21, __pyx_L1_error)
7062
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_return, __pyx_kp_s_Awaitable_List___T) < 0) __PYX_ERR(0, 21, __pyx_L1_error)
7063
- __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6a_sync_7asyncio_7igather_1igather, 0, __pyx_n_s_igather, NULL, __pyx_n_s_a_sync_asyncio_igather, __pyx_d, ((PyObject *)__pyx_codeobj_)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21, __pyx_L1_error)
6888
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_coros_or_futures, __pyx_kp_s_Iterable_Awaitable___T) < 0) __PYX_ERR(0, 23, __pyx_L1_error)
6889
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_return, __pyx_kp_s_Awaitable_List___T) < 0) __PYX_ERR(0, 23, __pyx_L1_error)
6890
+ __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6a_sync_7asyncio_7igather_1igather, 0, __pyx_n_s_igather, NULL, __pyx_n_s_a_sync_asyncio_igather, __pyx_d, ((PyObject *)__pyx_codeobj_)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23, __pyx_L1_error)
7064
6891
  __Pyx_GOTREF(__pyx_t_4);
7065
6892
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3);
7066
6893
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_4, __pyx_t_2);
7067
6894
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
7068
6895
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
7069
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_igather, __pyx_t_4) < 0) __PYX_ERR(0, 21, __pyx_L1_error)
6896
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_igather, __pyx_t_4) < 0) __PYX_ERR(0, 23, __pyx_L1_error)
7070
6897
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
7071
6898
 
7072
- /* "a_sync/asyncio/igather.pyx":28
6899
+ /* "a_sync/asyncio/igather.pyx":30
7073
6900
  *
7074
6901
  *
7075
6902
  * cdef object cigather(object coros_or_futures, bint return_exceptions = False): # <<<<<<<<<<<<<<
7076
6903
  * """A clone of asyncio.gather that takes a single iterator of coroutines instead of an unpacked tuple."""
7077
6904
  * # NOTE: closures inside cpdef functions not yet supported, so we have this cdef helper
7078
6905
  */
7079
- __Pyx_TraceLine(28,0,__PYX_ERR(0, 28, __pyx_L1_error))
6906
+ __Pyx_TraceLine(30,0,__PYX_ERR(0, 30, __pyx_L1_error))
7080
6907
 
7081
6908
 
7082
- /* "a_sync/asyncio/igather.pyx":152
6909
+ /* "a_sync/asyncio/igather.pyx":157
7083
6910
  *
7084
6911
  *
7085
6912
  * cdef dict[object, object] _no_results_futs = {} # <<<<<<<<<<<<<<
7086
6913
  *
7087
6914
  *
7088
6915
  */
7089
- __Pyx_TraceLine(152,0,__PYX_ERR(0, 152, __pyx_L1_error))
7090
- __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 152, __pyx_L1_error)
6916
+ __Pyx_TraceLine(157,0,__PYX_ERR(0, 157, __pyx_L1_error))
6917
+ __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 157, __pyx_L1_error)
7091
6918
  __Pyx_GOTREF(__pyx_t_4);
7092
6919
  __Pyx_XGOTREF(__pyx_v_6a_sync_7asyncio_7igather__no_results_futs);
7093
6920
  __Pyx_DECREF_SET(__pyx_v_6a_sync_7asyncio_7igather__no_results_futs, ((PyObject*)__pyx_t_4));
7094
6921
  __Pyx_GIVEREF(__pyx_t_4);
7095
6922
  __pyx_t_4 = 0;
7096
6923
 
7097
- /* "a_sync/asyncio/igather.pyx":155
6924
+ /* "a_sync/asyncio/igather.pyx":160
7098
6925
  *
7099
6926
  *
7100
6927
  * cdef object _get_empty_result_set_fut(loop): # <<<<<<<<<<<<<<
7101
6928
  * fut = _no_results_futs.get(loop)
7102
6929
  * if fut is None:
7103
6930
  */
7104
- __Pyx_TraceLine(155,0,__PYX_ERR(0, 155, __pyx_L1_error))
6931
+ __Pyx_TraceLine(160,0,__PYX_ERR(0, 160, __pyx_L1_error))
7105
6932
 
7106
6933
 
7107
- /* "a_sync/asyncio/igather.pyx":163
6934
+ /* "a_sync/asyncio/igather.pyx":168
7108
6935
  *
7109
6936
  *
7110
6937
  * cdef object _get_result_or_exc(fut: asyncio.Future): # <<<<<<<<<<<<<<
7111
6938
  * if fut.cancelled():
7112
- * # Check if 'fut' is cancelled first, as 'fut.exception()'
6939
+ * if PY_VERSION_HEX < 0x03090000:
7113
6940
  */
7114
- __Pyx_TraceLine(163,0,__PYX_ERR(0, 163, __pyx_L1_error))
6941
+ __Pyx_TraceLine(168,0,__PYX_ERR(0, 168, __pyx_L1_error))
7115
6942
 
7116
6943
 
7117
6944
  /* "a_sync/asyncio/igather.pyx":1
@@ -7164,196 +6991,37 @@ if (!__Pyx_RefNanny) {
7164
6991
  /* #### Code section: cleanup_globals ### */
7165
6992
  /* #### Code section: cleanup_module ### */
7166
6993
  /* #### Code section: main_method ### */
7167
- /* #### Code section: utility_code_pragmas ### */
7168
- #ifdef _MSC_VER
7169
- #pragma warning( push )
7170
- /* Warning 4127: conditional expression is constant
7171
- * Cython uses constant conditional expressions to allow in inline functions to be optimized at
7172
- * compile-time, so this warning is not useful
7173
- */
7174
- #pragma warning( disable : 4127 )
7175
- #endif
7176
-
7177
-
7178
-
7179
- /* #### Code section: utility_code_def ### */
7180
-
7181
- /* --- Runtime support code --- */
7182
- /* Refnanny */
7183
- #if CYTHON_REFNANNY
7184
- static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
7185
- PyObject *m = NULL, *p = NULL;
7186
- void *r = NULL;
7187
- m = PyImport_ImportModule(modname);
7188
- if (!m) goto end;
7189
- p = PyObject_GetAttrString(m, "RefNannyAPI");
7190
- if (!p) goto end;
7191
- r = PyLong_AsVoidPtr(p);
7192
- end:
7193
- Py_XDECREF(p);
7194
- Py_XDECREF(m);
7195
- return (__Pyx_RefNannyAPIStruct *)r;
7196
- }
7197
- #endif
7198
-
7199
- /* PyErrExceptionMatches */
7200
- #if CYTHON_FAST_THREAD_STATE
7201
- static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
7202
- Py_ssize_t i, n;
7203
- n = PyTuple_GET_SIZE(tuple);
7204
- #if PY_MAJOR_VERSION >= 3
7205
- for (i=0; i<n; i++) {
7206
- if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
7207
- }
7208
- #endif
7209
- for (i=0; i<n; i++) {
7210
- if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
7211
- }
7212
- return 0;
7213
- }
7214
- static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
7215
- int result;
7216
- PyObject *exc_type;
7217
- #if PY_VERSION_HEX >= 0x030C00A6
7218
- PyObject *current_exception = tstate->current_exception;
7219
- if (unlikely(!current_exception)) return 0;
7220
- exc_type = (PyObject*) Py_TYPE(current_exception);
7221
- if (exc_type == err) return 1;
7222
- #else
7223
- exc_type = tstate->curexc_type;
7224
- if (exc_type == err) return 1;
7225
- if (unlikely(!exc_type)) return 0;
7226
- #endif
7227
- #if CYTHON_AVOID_BORROWED_REFS
7228
- Py_INCREF(exc_type);
7229
- #endif
7230
- if (unlikely(PyTuple_Check(err))) {
7231
- result = __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
7232
- } else {
7233
- result = __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
7234
- }
7235
- #if CYTHON_AVOID_BORROWED_REFS
7236
- Py_DECREF(exc_type);
7237
- #endif
7238
- return result;
7239
- }
7240
- #endif
7241
-
7242
- /* PyErrFetchRestore */
7243
- #if CYTHON_FAST_THREAD_STATE
7244
- static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
7245
- #if PY_VERSION_HEX >= 0x030C00A6
7246
- PyObject *tmp_value;
7247
- assert(type == NULL || (value != NULL && type == (PyObject*) Py_TYPE(value)));
7248
- if (value) {
7249
- #if CYTHON_COMPILING_IN_CPYTHON
7250
- if (unlikely(((PyBaseExceptionObject*) value)->traceback != tb))
7251
- #endif
7252
- PyException_SetTraceback(value, tb);
7253
- }
7254
- tmp_value = tstate->current_exception;
7255
- tstate->current_exception = value;
7256
- Py_XDECREF(tmp_value);
7257
- Py_XDECREF(type);
7258
- Py_XDECREF(tb);
7259
- #else
7260
- PyObject *tmp_type, *tmp_value, *tmp_tb;
7261
- tmp_type = tstate->curexc_type;
7262
- tmp_value = tstate->curexc_value;
7263
- tmp_tb = tstate->curexc_traceback;
7264
- tstate->curexc_type = type;
7265
- tstate->curexc_value = value;
7266
- tstate->curexc_traceback = tb;
7267
- Py_XDECREF(tmp_type);
7268
- Py_XDECREF(tmp_value);
7269
- Py_XDECREF(tmp_tb);
7270
- #endif
7271
- }
7272
- static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
7273
- #if PY_VERSION_HEX >= 0x030C00A6
7274
- PyObject* exc_value;
7275
- exc_value = tstate->current_exception;
7276
- tstate->current_exception = 0;
7277
- *value = exc_value;
7278
- *type = NULL;
7279
- *tb = NULL;
7280
- if (exc_value) {
7281
- *type = (PyObject*) Py_TYPE(exc_value);
7282
- Py_INCREF(*type);
7283
- #if CYTHON_COMPILING_IN_CPYTHON
7284
- *tb = ((PyBaseExceptionObject*) exc_value)->traceback;
7285
- Py_XINCREF(*tb);
7286
- #else
7287
- *tb = PyException_GetTraceback(exc_value);
7288
- #endif
7289
- }
7290
- #else
7291
- *type = tstate->curexc_type;
7292
- *value = tstate->curexc_value;
7293
- *tb = tstate->curexc_traceback;
7294
- tstate->curexc_type = 0;
7295
- tstate->curexc_value = 0;
7296
- tstate->curexc_traceback = 0;
7297
- #endif
7298
- }
7299
- #endif
7300
-
7301
- /* PyObjectGetAttrStr */
7302
- #if CYTHON_USE_TYPE_SLOTS
7303
- static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
7304
- PyTypeObject* tp = Py_TYPE(obj);
7305
- if (likely(tp->tp_getattro))
7306
- return tp->tp_getattro(obj, attr_name);
7307
- #if PY_MAJOR_VERSION < 3
7308
- if (likely(tp->tp_getattr))
7309
- return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
7310
- #endif
7311
- return PyObject_GetAttr(obj, attr_name);
7312
- }
7313
- #endif
7314
-
7315
- /* PyObjectGetAttrStrNoError */
7316
- #if __PYX_LIMITED_VERSION_HEX < 0x030d00A1
7317
- static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
7318
- __Pyx_PyThreadState_declare
7319
- __Pyx_PyThreadState_assign
7320
- if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
7321
- __Pyx_PyErr_Clear();
7322
- }
7323
- #endif
7324
- static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
7325
- PyObject *result;
7326
- #if __PYX_LIMITED_VERSION_HEX >= 0x030d00A1
7327
- (void) PyObject_GetOptionalAttr(obj, attr_name, &result);
7328
- return result;
7329
- #else
7330
- #if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1
7331
- PyTypeObject* tp = Py_TYPE(obj);
7332
- if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
7333
- return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
7334
- }
7335
- #endif
7336
- result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
7337
- if (unlikely(!result)) {
7338
- __Pyx_PyObject_GetAttrStr_ClearAttributeError();
7339
- }
7340
- return result;
7341
- #endif
7342
- }
7343
-
7344
- /* GetBuiltinName */
7345
- static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
7346
- PyObject* result = __Pyx_PyObject_GetAttrStrNoError(__pyx_b, name);
7347
- if (unlikely(!result) && !PyErr_Occurred()) {
7348
- PyErr_Format(PyExc_NameError,
7349
- #if PY_MAJOR_VERSION >= 3
7350
- "name '%U' is not defined", name);
7351
- #else
7352
- "name '%.200s' is not defined", PyString_AS_STRING(name));
6994
+ /* #### Code section: utility_code_pragmas ### */
6995
+ #ifdef _MSC_VER
6996
+ #pragma warning( push )
6997
+ /* Warning 4127: conditional expression is constant
6998
+ * Cython uses constant conditional expressions to allow in inline functions to be optimized at
6999
+ * compile-time, so this warning is not useful
7000
+ */
7001
+ #pragma warning( disable : 4127 )
7353
7002
  #endif
7354
- }
7355
- return result;
7003
+
7004
+
7005
+
7006
+ /* #### Code section: utility_code_def ### */
7007
+
7008
+ /* --- Runtime support code --- */
7009
+ /* Refnanny */
7010
+ #if CYTHON_REFNANNY
7011
+ static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
7012
+ PyObject *m = NULL, *p = NULL;
7013
+ void *r = NULL;
7014
+ m = PyImport_ImportModule(modname);
7015
+ if (!m) goto end;
7016
+ p = PyObject_GetAttrString(m, "RefNannyAPI");
7017
+ if (!p) goto end;
7018
+ r = PyLong_AsVoidPtr(p);
7019
+ end:
7020
+ Py_XDECREF(p);
7021
+ Py_XDECREF(m);
7022
+ return (__Pyx_RefNannyAPIStruct *)r;
7356
7023
  }
7024
+ #endif
7357
7025
 
7358
7026
  /* TupleAndListFromArray */
7359
7027
  #if CYTHON_COMPILING_IN_CPYTHON
@@ -7776,6 +7444,65 @@ static void __Pyx_RaiseArgtupleInvalid(
7776
7444
  (num_expected == 1) ? "" : "s", num_found);
7777
7445
  }
7778
7446
 
7447
+ /* PyErrFetchRestore */
7448
+ #if CYTHON_FAST_THREAD_STATE
7449
+ static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
7450
+ #if PY_VERSION_HEX >= 0x030C00A6
7451
+ PyObject *tmp_value;
7452
+ assert(type == NULL || (value != NULL && type == (PyObject*) Py_TYPE(value)));
7453
+ if (value) {
7454
+ #if CYTHON_COMPILING_IN_CPYTHON
7455
+ if (unlikely(((PyBaseExceptionObject*) value)->traceback != tb))
7456
+ #endif
7457
+ PyException_SetTraceback(value, tb);
7458
+ }
7459
+ tmp_value = tstate->current_exception;
7460
+ tstate->current_exception = value;
7461
+ Py_XDECREF(tmp_value);
7462
+ Py_XDECREF(type);
7463
+ Py_XDECREF(tb);
7464
+ #else
7465
+ PyObject *tmp_type, *tmp_value, *tmp_tb;
7466
+ tmp_type = tstate->curexc_type;
7467
+ tmp_value = tstate->curexc_value;
7468
+ tmp_tb = tstate->curexc_traceback;
7469
+ tstate->curexc_type = type;
7470
+ tstate->curexc_value = value;
7471
+ tstate->curexc_traceback = tb;
7472
+ Py_XDECREF(tmp_type);
7473
+ Py_XDECREF(tmp_value);
7474
+ Py_XDECREF(tmp_tb);
7475
+ #endif
7476
+ }
7477
+ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
7478
+ #if PY_VERSION_HEX >= 0x030C00A6
7479
+ PyObject* exc_value;
7480
+ exc_value = tstate->current_exception;
7481
+ tstate->current_exception = 0;
7482
+ *value = exc_value;
7483
+ *type = NULL;
7484
+ *tb = NULL;
7485
+ if (exc_value) {
7486
+ *type = (PyObject*) Py_TYPE(exc_value);
7487
+ Py_INCREF(*type);
7488
+ #if CYTHON_COMPILING_IN_CPYTHON
7489
+ *tb = ((PyBaseExceptionObject*) exc_value)->traceback;
7490
+ Py_XINCREF(*tb);
7491
+ #else
7492
+ *tb = PyException_GetTraceback(exc_value);
7493
+ #endif
7494
+ }
7495
+ #else
7496
+ *type = tstate->curexc_type;
7497
+ *value = tstate->curexc_value;
7498
+ *tb = tstate->curexc_traceback;
7499
+ tstate->curexc_type = 0;
7500
+ tstate->curexc_value = 0;
7501
+ tstate->curexc_traceback = 0;
7502
+ #endif
7503
+ }
7504
+ #endif
7505
+
7779
7506
  /* Profile */
7780
7507
  #if CYTHON_PROFILE
7781
7508
  static int __Pyx_TraceSetupAndCall(PyCodeObject** code,
@@ -7871,6 +7598,20 @@ static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname) {
7871
7598
  PyErr_Format(PyExc_NameError, "free variable '%s' referenced before assignment in enclosing scope", varname);
7872
7599
  }
7873
7600
 
7601
+ /* PyObjectGetAttrStr */
7602
+ #if CYTHON_USE_TYPE_SLOTS
7603
+ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
7604
+ PyTypeObject* tp = Py_TYPE(obj);
7605
+ if (likely(tp->tp_getattro))
7606
+ return tp->tp_getattro(obj, attr_name);
7607
+ #if PY_MAJOR_VERSION < 3
7608
+ if (likely(tp->tp_getattr))
7609
+ return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
7610
+ #endif
7611
+ return PyObject_GetAttr(obj, attr_name);
7612
+ }
7613
+ #endif
7614
+
7874
7615
  /* PyFunctionFastCall */
7875
7616
  #if CYTHON_FAST_PYCALL && !CYTHON_VECTORCALL
7876
7617
  static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na,
@@ -8122,183 +7863,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObj
8122
7863
  #endif
8123
7864
  }
8124
7865
 
8125
- /* GetTopmostException */
8126
- #if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
8127
- static _PyErr_StackItem *
8128
- __Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
8129
- {
8130
- _PyErr_StackItem *exc_info = tstate->exc_info;
8131
- while ((exc_info->exc_value == NULL || exc_info->exc_value == Py_None) &&
8132
- exc_info->previous_item != NULL)
8133
- {
8134
- exc_info = exc_info->previous_item;
8135
- }
8136
- return exc_info;
8137
- }
8138
- #endif
8139
-
8140
- /* SaveResetException */
8141
- #if CYTHON_FAST_THREAD_STATE
8142
- static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
8143
- #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
8144
- _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
8145
- PyObject *exc_value = exc_info->exc_value;
8146
- if (exc_value == NULL || exc_value == Py_None) {
8147
- *value = NULL;
8148
- *type = NULL;
8149
- *tb = NULL;
8150
- } else {
8151
- *value = exc_value;
8152
- Py_INCREF(*value);
8153
- *type = (PyObject*) Py_TYPE(exc_value);
8154
- Py_INCREF(*type);
8155
- *tb = PyException_GetTraceback(exc_value);
8156
- }
8157
- #elif CYTHON_USE_EXC_INFO_STACK
8158
- _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
8159
- *type = exc_info->exc_type;
8160
- *value = exc_info->exc_value;
8161
- *tb = exc_info->exc_traceback;
8162
- Py_XINCREF(*type);
8163
- Py_XINCREF(*value);
8164
- Py_XINCREF(*tb);
8165
- #else
8166
- *type = tstate->exc_type;
8167
- *value = tstate->exc_value;
8168
- *tb = tstate->exc_traceback;
8169
- Py_XINCREF(*type);
8170
- Py_XINCREF(*value);
8171
- Py_XINCREF(*tb);
8172
- #endif
8173
- }
8174
- static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
8175
- #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
8176
- _PyErr_StackItem *exc_info = tstate->exc_info;
8177
- PyObject *tmp_value = exc_info->exc_value;
8178
- exc_info->exc_value = value;
8179
- Py_XDECREF(tmp_value);
8180
- Py_XDECREF(type);
8181
- Py_XDECREF(tb);
8182
- #else
8183
- PyObject *tmp_type, *tmp_value, *tmp_tb;
8184
- #if CYTHON_USE_EXC_INFO_STACK
8185
- _PyErr_StackItem *exc_info = tstate->exc_info;
8186
- tmp_type = exc_info->exc_type;
8187
- tmp_value = exc_info->exc_value;
8188
- tmp_tb = exc_info->exc_traceback;
8189
- exc_info->exc_type = type;
8190
- exc_info->exc_value = value;
8191
- exc_info->exc_traceback = tb;
8192
- #else
8193
- tmp_type = tstate->exc_type;
8194
- tmp_value = tstate->exc_value;
8195
- tmp_tb = tstate->exc_traceback;
8196
- tstate->exc_type = type;
8197
- tstate->exc_value = value;
8198
- tstate->exc_traceback = tb;
8199
- #endif
8200
- Py_XDECREF(tmp_type);
8201
- Py_XDECREF(tmp_value);
8202
- Py_XDECREF(tmp_tb);
8203
- #endif
8204
- }
8205
- #endif
8206
-
8207
- /* GetException */
8208
- #if CYTHON_FAST_THREAD_STATE
8209
- static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
8210
- #else
8211
- static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
8212
- #endif
8213
- {
8214
- PyObject *local_type = NULL, *local_value, *local_tb = NULL;
8215
- #if CYTHON_FAST_THREAD_STATE
8216
- PyObject *tmp_type, *tmp_value, *tmp_tb;
8217
- #if PY_VERSION_HEX >= 0x030C00A6
8218
- local_value = tstate->current_exception;
8219
- tstate->current_exception = 0;
8220
- if (likely(local_value)) {
8221
- local_type = (PyObject*) Py_TYPE(local_value);
8222
- Py_INCREF(local_type);
8223
- local_tb = PyException_GetTraceback(local_value);
8224
- }
8225
- #else
8226
- local_type = tstate->curexc_type;
8227
- local_value = tstate->curexc_value;
8228
- local_tb = tstate->curexc_traceback;
8229
- tstate->curexc_type = 0;
8230
- tstate->curexc_value = 0;
8231
- tstate->curexc_traceback = 0;
8232
- #endif
8233
- #else
8234
- PyErr_Fetch(&local_type, &local_value, &local_tb);
8235
- #endif
8236
- PyErr_NormalizeException(&local_type, &local_value, &local_tb);
8237
- #if CYTHON_FAST_THREAD_STATE && PY_VERSION_HEX >= 0x030C00A6
8238
- if (unlikely(tstate->current_exception))
8239
- #elif CYTHON_FAST_THREAD_STATE
8240
- if (unlikely(tstate->curexc_type))
8241
- #else
8242
- if (unlikely(PyErr_Occurred()))
8243
- #endif
8244
- goto bad;
8245
- #if PY_MAJOR_VERSION >= 3
8246
- if (local_tb) {
8247
- if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
8248
- goto bad;
8249
- }
8250
- #endif
8251
- Py_XINCREF(local_tb);
8252
- Py_XINCREF(local_type);
8253
- Py_XINCREF(local_value);
8254
- *type = local_type;
8255
- *value = local_value;
8256
- *tb = local_tb;
8257
- #if CYTHON_FAST_THREAD_STATE
8258
- #if CYTHON_USE_EXC_INFO_STACK
8259
- {
8260
- _PyErr_StackItem *exc_info = tstate->exc_info;
8261
- #if PY_VERSION_HEX >= 0x030B00a4
8262
- tmp_value = exc_info->exc_value;
8263
- exc_info->exc_value = local_value;
8264
- tmp_type = NULL;
8265
- tmp_tb = NULL;
8266
- Py_XDECREF(local_type);
8267
- Py_XDECREF(local_tb);
8268
- #else
8269
- tmp_type = exc_info->exc_type;
8270
- tmp_value = exc_info->exc_value;
8271
- tmp_tb = exc_info->exc_traceback;
8272
- exc_info->exc_type = local_type;
8273
- exc_info->exc_value = local_value;
8274
- exc_info->exc_traceback = local_tb;
8275
- #endif
8276
- }
8277
- #else
8278
- tmp_type = tstate->exc_type;
8279
- tmp_value = tstate->exc_value;
8280
- tmp_tb = tstate->exc_traceback;
8281
- tstate->exc_type = local_type;
8282
- tstate->exc_value = local_value;
8283
- tstate->exc_traceback = local_tb;
8284
- #endif
8285
- Py_XDECREF(tmp_type);
8286
- Py_XDECREF(tmp_value);
8287
- Py_XDECREF(tmp_tb);
8288
- #else
8289
- PyErr_SetExcInfo(local_type, local_value, local_tb);
8290
- #endif
8291
- return 0;
8292
- bad:
8293
- *type = 0;
8294
- *value = 0;
8295
- *tb = 0;
8296
- Py_XDECREF(local_type);
8297
- Py_XDECREF(local_value);
8298
- Py_XDECREF(local_tb);
8299
- return -1;
8300
- }
8301
-
8302
7866
  /* PyObjectSetAttrStr */
8303
7867
  #if CYTHON_USE_TYPE_SLOTS
8304
7868
  static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
@@ -9941,6 +9505,49 @@ static CYTHON_INLINE int __Pyx_dict_iter_next(
9941
9505
  return 1;
9942
9506
  }
9943
9507
 
9508
+ /* PyErrExceptionMatches */
9509
+ #if CYTHON_FAST_THREAD_STATE
9510
+ static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
9511
+ Py_ssize_t i, n;
9512
+ n = PyTuple_GET_SIZE(tuple);
9513
+ #if PY_MAJOR_VERSION >= 3
9514
+ for (i=0; i<n; i++) {
9515
+ if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
9516
+ }
9517
+ #endif
9518
+ for (i=0; i<n; i++) {
9519
+ if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
9520
+ }
9521
+ return 0;
9522
+ }
9523
+ static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
9524
+ int result;
9525
+ PyObject *exc_type;
9526
+ #if PY_VERSION_HEX >= 0x030C00A6
9527
+ PyObject *current_exception = tstate->current_exception;
9528
+ if (unlikely(!current_exception)) return 0;
9529
+ exc_type = (PyObject*) Py_TYPE(current_exception);
9530
+ if (exc_type == err) return 1;
9531
+ #else
9532
+ exc_type = tstate->curexc_type;
9533
+ if (exc_type == err) return 1;
9534
+ if (unlikely(!exc_type)) return 0;
9535
+ #endif
9536
+ #if CYTHON_AVOID_BORROWED_REFS
9537
+ Py_INCREF(exc_type);
9538
+ #endif
9539
+ if (unlikely(PyTuple_Check(err))) {
9540
+ result = __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
9541
+ } else {
9542
+ result = __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
9543
+ }
9544
+ #if CYTHON_AVOID_BORROWED_REFS
9545
+ Py_DECREF(exc_type);
9546
+ #endif
9547
+ return result;
9548
+ }
9549
+ #endif
9550
+
9944
9551
  /* GetAttr3 */
9945
9552
  #if __PYX_LIMITED_VERSION_HEX < 0x030d00A1
9946
9553
  static PyObject *__Pyx_GetAttr3Default(PyObject *d) {
@@ -10759,6 +10366,49 @@ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
10759
10366
  return value;
10760
10367
  }
10761
10368
 
10369
+ /* PyObjectGetAttrStrNoError */
10370
+ #if __PYX_LIMITED_VERSION_HEX < 0x030d00A1
10371
+ static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
10372
+ __Pyx_PyThreadState_declare
10373
+ __Pyx_PyThreadState_assign
10374
+ if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
10375
+ __Pyx_PyErr_Clear();
10376
+ }
10377
+ #endif
10378
+ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
10379
+ PyObject *result;
10380
+ #if __PYX_LIMITED_VERSION_HEX >= 0x030d00A1
10381
+ (void) PyObject_GetOptionalAttr(obj, attr_name, &result);
10382
+ return result;
10383
+ #else
10384
+ #if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1
10385
+ PyTypeObject* tp = Py_TYPE(obj);
10386
+ if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
10387
+ return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
10388
+ }
10389
+ #endif
10390
+ result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
10391
+ if (unlikely(!result)) {
10392
+ __Pyx_PyObject_GetAttrStr_ClearAttributeError();
10393
+ }
10394
+ return result;
10395
+ #endif
10396
+ }
10397
+
10398
+ /* GetBuiltinName */
10399
+ static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
10400
+ PyObject* result = __Pyx_PyObject_GetAttrStrNoError(__pyx_b, name);
10401
+ if (unlikely(!result) && !PyErr_Occurred()) {
10402
+ PyErr_Format(PyExc_NameError,
10403
+ #if PY_MAJOR_VERSION >= 3
10404
+ "name '%U' is not defined", name);
10405
+ #else
10406
+ "name '%.200s' is not defined", PyString_AS_STRING(name));
10407
+ #endif
10408
+ }
10409
+ return result;
10410
+ }
10411
+
10762
10412
  /* PyDictVersioning */
10763
10413
  #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
10764
10414
  static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {