Generated by Cython 0.29.21
Yellow lines hint at Python interaction.
Click on a line that starts with a "+" to see the C code that Cython generated for it.
Raw output: scheduler.c
+0001: import asyncio
__pyx_t_1 = __Pyx_patch_asyncio(__Pyx_Import(__pyx_n_s_asyncio, 0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_asyncio, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0002: from collections import defaultdict, deque
__pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_defaultdict); __Pyx_GIVEREF(__pyx_n_s_defaultdict); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_defaultdict); __Pyx_INCREF(__pyx_n_s_deque); __Pyx_GIVEREF(__pyx_n_s_deque); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_deque); __pyx_t_2 = __Pyx_Import(__pyx_n_s_collections, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_defaultdict); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_defaultdict, __pyx_t_1) < 0) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_deque); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_deque, __pyx_t_1) < 0) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0003:
+0004: from collections.abc import Mapping, Set
__pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_Mapping); __Pyx_GIVEREF(__pyx_n_s_Mapping); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_Mapping); __Pyx_INCREF(__pyx_n_s_Set); __Pyx_GIVEREF(__pyx_n_s_Set); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_Set); __pyx_t_1 = __Pyx_Import(__pyx_n_s_collections_abc, __pyx_t_2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_Mapping); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_Mapping, __pyx_t_2) < 0) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_Set); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_Set, __pyx_t_2) < 0) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0005: from contextlib import suppress
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_suppress); __Pyx_GIVEREF(__pyx_n_s_suppress); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_suppress); __pyx_t_2 = __Pyx_Import(__pyx_n_s_contextlib, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_suppress); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_suppress, __pyx_t_1) < 0) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0006: from datetime import timedelta
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_timedelta); __Pyx_GIVEREF(__pyx_n_s_timedelta); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_timedelta); __pyx_t_1 = __Pyx_Import(__pyx_n_s_datetime, __pyx_t_2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_timedelta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_timedelta, __pyx_t_2) < 0) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0007: from functools import partial
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_partial); __Pyx_GIVEREF(__pyx_n_s_partial); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_partial); __pyx_t_2 = __Pyx_Import(__pyx_n_s_functools, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_partial); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_partial, __pyx_t_1) < 0) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0008: import inspect
__pyx_t_2 = __Pyx_patch_inspect(__Pyx_Import(__pyx_n_s_inspect, 0, 0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_inspect, __pyx_t_2) < 0) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0009: import itertools
__pyx_t_2 = __Pyx_Import(__pyx_n_s_itertools, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_itertools, __pyx_t_2) < 0) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0010: import json
__pyx_t_2 = __Pyx_Import(__pyx_n_s_json, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_json, __pyx_t_2) < 0) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0011: import logging
__pyx_t_2 = __Pyx_Import(__pyx_n_s_logging, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_logging, __pyx_t_2) < 0) __PYX_ERR(0, 11, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0012: import math
__pyx_t_2 = __Pyx_Import(__pyx_n_s_math, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_math, __pyx_t_2) < 0) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0013: from numbers import Number
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_Number); __Pyx_GIVEREF(__pyx_n_s_Number); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_Number); __pyx_t_1 = __Pyx_Import(__pyx_n_s_numbers, __pyx_t_2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_Number); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_Number, __pyx_t_2) < 0) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0014: import operator
__pyx_t_1 = __Pyx_Import(__pyx_n_s_operator, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_operator, __pyx_t_1) < 0) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0015: import os
__pyx_t_1 = __Pyx_Import(__pyx_n_s_os, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_os, __pyx_t_1) < 0) __PYX_ERR(0, 15, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0016: import sys
__pyx_t_1 = __Pyx_Import(__pyx_n_s_sys, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_1) < 0) __PYX_ERR(0, 16, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0017: import random
__pyx_t_1 = __Pyx_Import(__pyx_n_s_random, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_random, __pyx_t_1) < 0) __PYX_ERR(0, 17, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0018: import warnings
__pyx_t_1 = __Pyx_Import(__pyx_n_s_warnings, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_warnings, __pyx_t_1) < 0) __PYX_ERR(0, 18, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0019: import weakref
__pyx_t_1 = __Pyx_Import(__pyx_n_s_weakref, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 19, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_weakref, __pyx_t_1) < 0) __PYX_ERR(0, 19, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0020: import psutil
__pyx_t_1 = __Pyx_Import(__pyx_n_s_psutil, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_psutil, __pyx_t_1) < 0) __PYX_ERR(0, 20, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0021: import sortedcontainers
__pyx_t_1 = __Pyx_Import(__pyx_n_s_sortedcontainers, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_sortedcontainers, __pyx_t_1) < 0) __PYX_ERR(0, 21, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0022:
+0023: from tlz import (
__pyx_t_2 = __Pyx_Import(__pyx_n_s_tlz, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_merge); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_merge, __pyx_t_1) < 0) __PYX_ERR(0, 24, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_pluck); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pluck, __pyx_t_1) < 0) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_merge_sorted); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_merge_sorted, __pyx_t_1) < 0) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_first); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_first, __pyx_t_1) < 0) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_merge_with); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_merge_with, __pyx_t_1) < 0) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_valmap); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_valmap, __pyx_t_1) < 0) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_second); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_second, __pyx_t_1) < 0) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_compose); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_compose, __pyx_t_1) < 0) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_groupby); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_groupby, __pyx_t_1) < 0) __PYX_ERR(0, 32, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_concat); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_concat, __pyx_t_1) < 0) __PYX_ERR(0, 33, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0024: merge,
__pyx_t_1 = PyList_New(10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_merge); __Pyx_GIVEREF(__pyx_n_s_merge); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_merge); __Pyx_INCREF(__pyx_n_s_pluck); __Pyx_GIVEREF(__pyx_n_s_pluck); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_pluck); __Pyx_INCREF(__pyx_n_s_merge_sorted); __Pyx_GIVEREF(__pyx_n_s_merge_sorted); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_s_merge_sorted); __Pyx_INCREF(__pyx_n_s_first); __Pyx_GIVEREF(__pyx_n_s_first); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_s_first); __Pyx_INCREF(__pyx_n_s_merge_with); __Pyx_GIVEREF(__pyx_n_s_merge_with); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_s_merge_with); __Pyx_INCREF(__pyx_n_s_valmap); __Pyx_GIVEREF(__pyx_n_s_valmap); PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_s_valmap); __Pyx_INCREF(__pyx_n_s_second); __Pyx_GIVEREF(__pyx_n_s_second); PyList_SET_ITEM(__pyx_t_1, 6, __pyx_n_s_second); __Pyx_INCREF(__pyx_n_s_compose); __Pyx_GIVEREF(__pyx_n_s_compose); PyList_SET_ITEM(__pyx_t_1, 7, __pyx_n_s_compose); __Pyx_INCREF(__pyx_n_s_groupby); __Pyx_GIVEREF(__pyx_n_s_groupby); PyList_SET_ITEM(__pyx_t_1, 8, __pyx_n_s_groupby); __Pyx_INCREF(__pyx_n_s_concat); __Pyx_GIVEREF(__pyx_n_s_concat); PyList_SET_ITEM(__pyx_t_1, 9, __pyx_n_s_concat);
0025: pluck,
0026: merge_sorted,
0027: first,
0028: merge_with,
0029: valmap,
0030: second,
0031: compose,
0032: groupby,
0033: concat,
0034: )
+0035: from tornado.ioloop import IOLoop, PeriodicCallback
__pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_IOLoop); __Pyx_GIVEREF(__pyx_n_s_IOLoop); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_IOLoop); __Pyx_INCREF(__pyx_n_s_PeriodicCallback); __Pyx_GIVEREF(__pyx_n_s_PeriodicCallback); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_PeriodicCallback); __pyx_t_1 = __Pyx_Import(__pyx_n_s_tornado_ioloop, __pyx_t_2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_IOLoop); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_IOLoop, __pyx_t_2) < 0) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_PeriodicCallback); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_PeriodicCallback, __pyx_t_2) < 0) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0036:
+0037: import dask
__pyx_t_1 = __Pyx_Import(__pyx_n_s_dask, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_dask, __pyx_t_1) < 0) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0038:
+0039: from . import profile
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_profile); __Pyx_GIVEREF(__pyx_n_s_profile); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_profile); __pyx_t_2 = __Pyx_Import(__pyx_n_s__50, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_profile); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_profile, __pyx_t_1) < 0) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0040: from .batched import BatchedSend
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 40, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_BatchedSend); __Pyx_GIVEREF(__pyx_n_s_BatchedSend); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_BatchedSend); __pyx_t_1 = __Pyx_Import(__pyx_n_s_batched, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_BatchedSend); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 40, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_BatchedSend, __pyx_t_2) < 0) __PYX_ERR(0, 40, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0041: from .comm import (
__pyx_t_2 = __Pyx_Import(__pyx_n_s_comm, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_normalize_address); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_normalize_address, __pyx_t_1) < 0) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_resolve_address); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_resolve_address, __pyx_t_1) < 0) __PYX_ERR(0, 43, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_get_address_host); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_address_host, __pyx_t_1) < 0) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_unparse_host_port); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_unparse_host_port, __pyx_t_1) < 0) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0042: normalize_address,
__pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_normalize_address); __Pyx_GIVEREF(__pyx_n_s_normalize_address); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_normalize_address); __Pyx_INCREF(__pyx_n_s_resolve_address); __Pyx_GIVEREF(__pyx_n_s_resolve_address); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_resolve_address); __Pyx_INCREF(__pyx_n_s_get_address_host); __Pyx_GIVEREF(__pyx_n_s_get_address_host); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_s_get_address_host); __Pyx_INCREF(__pyx_n_s_unparse_host_port); __Pyx_GIVEREF(__pyx_n_s_unparse_host_port); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_s_unparse_host_port);
0043: resolve_address,
0044: get_address_host,
0045: unparse_host_port,
0046: )
+0047: from .comm.addressing import addresses_from_user_args
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_addresses_from_user_args); __Pyx_GIVEREF(__pyx_n_s_addresses_from_user_args); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_addresses_from_user_args); __pyx_t_1 = __Pyx_Import(__pyx_n_s_comm_addressing, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_addresses_from_user_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_addresses_from_user_args, __pyx_t_2) < 0) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0048: from .core import rpc, send_recv, clean_exception, CommClosedError, Status
__pyx_t_1 = PyList_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_rpc); __Pyx_GIVEREF(__pyx_n_s_rpc); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_rpc); __Pyx_INCREF(__pyx_n_s_send_recv); __Pyx_GIVEREF(__pyx_n_s_send_recv); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_send_recv); __Pyx_INCREF(__pyx_n_s_clean_exception); __Pyx_GIVEREF(__pyx_n_s_clean_exception); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_s_clean_exception); __Pyx_INCREF(__pyx_n_s_CommClosedError); __Pyx_GIVEREF(__pyx_n_s_CommClosedError); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_s_CommClosedError); __Pyx_INCREF(__pyx_n_s_Status); __Pyx_GIVEREF(__pyx_n_s_Status); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_s_Status); __pyx_t_2 = __Pyx_Import(__pyx_n_s_core, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_rpc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_rpc, __pyx_t_1) < 0) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_send_recv); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_send_recv, __pyx_t_1) < 0) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_clean_exception); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_clean_exception, __pyx_t_1) < 0) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_CommClosedError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CommClosedError, __pyx_t_1) < 0) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_Status, __pyx_t_1) < 0) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0049: from .diagnostics.plugin import SchedulerPlugin
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_SchedulerPlugin); __Pyx_GIVEREF(__pyx_n_s_SchedulerPlugin); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_SchedulerPlugin); __pyx_t_1 = __Pyx_Import(__pyx_n_s_diagnostics_plugin, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_SchedulerPlugin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_SchedulerPlugin, __pyx_t_2) < 0) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0050:
+0051: from .http import get_handlers
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_get_handlers); __Pyx_GIVEREF(__pyx_n_s_get_handlers); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_get_handlers); __pyx_t_2 = __Pyx_Import(__pyx_n_s_http, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_get_handlers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_handlers, __pyx_t_1) < 0) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0052: from .metrics import time
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_time); __Pyx_GIVEREF(__pyx_n_s_time); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_time); __pyx_t_1 = __Pyx_Import(__pyx_n_s_metrics, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_time); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_time, __pyx_t_2) < 0) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0053: from .node import ServerNode
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_ServerNode); __Pyx_GIVEREF(__pyx_n_s_ServerNode); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_ServerNode); __pyx_t_2 = __Pyx_Import(__pyx_n_s_node, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_ServerNode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_ServerNode, __pyx_t_1) < 0) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0054: from . import preloading
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_preloading); __Pyx_GIVEREF(__pyx_n_s_preloading); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_preloading); __pyx_t_1 = __Pyx_Import(__pyx_n_s__50, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_preloading); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_preloading, __pyx_t_2) < 0) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0055: from .proctitle import setproctitle
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_setproctitle); __Pyx_GIVEREF(__pyx_n_s_setproctitle); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_setproctitle); __pyx_t_2 = __Pyx_Import(__pyx_n_s_proctitle, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_setproctitle); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_setproctitle, __pyx_t_1) < 0) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0056: from .security import Security
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 56, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_Security); __Pyx_GIVEREF(__pyx_n_s_Security); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_Security); __pyx_t_1 = __Pyx_Import(__pyx_n_s_security, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 56, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_Security); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 56, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_Security, __pyx_t_2) < 0) __PYX_ERR(0, 56, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0057: from .utils import (
__pyx_t_2 = __Pyx_Import(__pyx_n_s_utils, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_All); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_All, __pyx_t_1) < 0) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_get_fileno_limit); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_fileno_limit, __pyx_t_1) < 0) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_log_errors); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_log_errors, __pyx_t_1) < 0) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_key_split); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_key_split, __pyx_t_1) < 0) __PYX_ERR(0, 61, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_validate_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_validate_key, __pyx_t_1) < 0) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_no_default); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_no_default, __pyx_t_1) < 0) __PYX_ERR(0, 63, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_parse_timedelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_parse_timedelta, __pyx_t_1) < 0) __PYX_ERR(0, 64, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_parse_bytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_parse_bytes, __pyx_t_1) < 0) __PYX_ERR(0, 65, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_shutting_down); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_shutting_down, __pyx_t_1) < 0) __PYX_ERR(0, 66, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_key_split_group); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_key_split_group, __pyx_t_1) < 0) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_empty_context); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_empty_context, __pyx_t_1) < 0) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_tmpfile); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_tmpfile, __pyx_t_1) < 0) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_format_bytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_format_bytes, __pyx_t_1) < 0) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_format_time); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_format_time, __pyx_t_1) < 0) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_TimeoutError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_TimeoutError, __pyx_t_1) < 0) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0058: All,
__pyx_t_1 = PyList_New(15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_All); __Pyx_GIVEREF(__pyx_n_s_All); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_All); __Pyx_INCREF(__pyx_n_s_get_fileno_limit); __Pyx_GIVEREF(__pyx_n_s_get_fileno_limit); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_get_fileno_limit); __Pyx_INCREF(__pyx_n_s_log_errors); __Pyx_GIVEREF(__pyx_n_s_log_errors); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_s_log_errors); __Pyx_INCREF(__pyx_n_s_key_split); __Pyx_GIVEREF(__pyx_n_s_key_split); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_s_key_split); __Pyx_INCREF(__pyx_n_s_validate_key); __Pyx_GIVEREF(__pyx_n_s_validate_key); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_s_validate_key); __Pyx_INCREF(__pyx_n_s_no_default); __Pyx_GIVEREF(__pyx_n_s_no_default); PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_s_no_default); __Pyx_INCREF(__pyx_n_s_parse_timedelta); __Pyx_GIVEREF(__pyx_n_s_parse_timedelta); PyList_SET_ITEM(__pyx_t_1, 6, __pyx_n_s_parse_timedelta); __Pyx_INCREF(__pyx_n_s_parse_bytes); __Pyx_GIVEREF(__pyx_n_s_parse_bytes); PyList_SET_ITEM(__pyx_t_1, 7, __pyx_n_s_parse_bytes); __Pyx_INCREF(__pyx_n_s_shutting_down); __Pyx_GIVEREF(__pyx_n_s_shutting_down); PyList_SET_ITEM(__pyx_t_1, 8, __pyx_n_s_shutting_down); __Pyx_INCREF(__pyx_n_s_key_split_group); __Pyx_GIVEREF(__pyx_n_s_key_split_group); PyList_SET_ITEM(__pyx_t_1, 9, __pyx_n_s_key_split_group); __Pyx_INCREF(__pyx_n_s_empty_context); __Pyx_GIVEREF(__pyx_n_s_empty_context); PyList_SET_ITEM(__pyx_t_1, 10, __pyx_n_s_empty_context); __Pyx_INCREF(__pyx_n_s_tmpfile); __Pyx_GIVEREF(__pyx_n_s_tmpfile); PyList_SET_ITEM(__pyx_t_1, 11, __pyx_n_s_tmpfile); __Pyx_INCREF(__pyx_n_s_format_bytes); __Pyx_GIVEREF(__pyx_n_s_format_bytes); PyList_SET_ITEM(__pyx_t_1, 12, __pyx_n_s_format_bytes); __Pyx_INCREF(__pyx_n_s_format_time); __Pyx_GIVEREF(__pyx_n_s_format_time); PyList_SET_ITEM(__pyx_t_1, 13, __pyx_n_s_format_time); __Pyx_INCREF(__pyx_n_s_TimeoutError); __Pyx_GIVEREF(__pyx_n_s_TimeoutError); PyList_SET_ITEM(__pyx_t_1, 14, __pyx_n_s_TimeoutError);
0059: get_fileno_limit,
0060: log_errors,
0061: key_split,
0062: validate_key,
0063: no_default,
0064: parse_timedelta,
0065: parse_bytes,
0066: shutting_down,
0067: key_split_group,
0068: empty_context,
0069: tmpfile,
0070: format_bytes,
0071: format_time,
0072: TimeoutError,
0073: )
+0074: from .utils_comm import scatter_to_workers, gather_from_workers, retry_operation
__pyx_t_2 = PyList_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_scatter_to_workers); __Pyx_GIVEREF(__pyx_n_s_scatter_to_workers); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_scatter_to_workers); __Pyx_INCREF(__pyx_n_s_gather_from_workers); __Pyx_GIVEREF(__pyx_n_s_gather_from_workers); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_gather_from_workers); __Pyx_INCREF(__pyx_n_s_retry_operation); __Pyx_GIVEREF(__pyx_n_s_retry_operation); PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_retry_operation); __pyx_t_1 = __Pyx_Import(__pyx_n_s_utils_comm, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_scatter_to_workers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_scatter_to_workers, __pyx_t_2) < 0) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_gather_from_workers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_gather_from_workers, __pyx_t_2) < 0) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_retry_operation); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_retry_operation, __pyx_t_2) < 0) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0075: from .utils_perf import enable_gc_diagnosis, disable_gc_diagnosis
__pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_enable_gc_diagnosis); __Pyx_GIVEREF(__pyx_n_s_enable_gc_diagnosis); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_enable_gc_diagnosis); __Pyx_INCREF(__pyx_n_s_disable_gc_diagnosis); __Pyx_GIVEREF(__pyx_n_s_disable_gc_diagnosis); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_disable_gc_diagnosis); __pyx_t_2 = __Pyx_Import(__pyx_n_s_utils_perf, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_enable_gc_diagnosis); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_enable_gc_diagnosis, __pyx_t_1) < 0) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_disable_gc_diagnosis); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_disable_gc_diagnosis, __pyx_t_1) < 0) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0076: from . import versions as version_module
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_versions); __Pyx_GIVEREF(__pyx_n_s_versions); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_versions); __pyx_t_1 = __Pyx_Import(__pyx_n_s__50, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_versions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_version_module, __pyx_t_2) < 0) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0077:
+0078: from .publish import PublishExtension
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_PublishExtension); __Pyx_GIVEREF(__pyx_n_s_PublishExtension); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PublishExtension); __pyx_t_2 = __Pyx_Import(__pyx_n_s_publish, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_PublishExtension); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_PublishExtension, __pyx_t_1) < 0) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0079: from .queues import QueueExtension
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_QueueExtension); __Pyx_GIVEREF(__pyx_n_s_QueueExtension); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_QueueExtension); __pyx_t_1 = __Pyx_Import(__pyx_n_s_queues, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_QueueExtension); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_QueueExtension, __pyx_t_2) < 0) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0080: from .semaphore import SemaphoreExtension
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_SemaphoreExtension); __Pyx_GIVEREF(__pyx_n_s_SemaphoreExtension); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_SemaphoreExtension); __pyx_t_2 = __Pyx_Import(__pyx_n_s_semaphore, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_SemaphoreExtension); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_SemaphoreExtension, __pyx_t_1) < 0) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0081: from .recreate_exceptions import ReplayExceptionScheduler
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_ReplayExceptionScheduler); __Pyx_GIVEREF(__pyx_n_s_ReplayExceptionScheduler); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_ReplayExceptionScheduler); __pyx_t_1 = __Pyx_Import(__pyx_n_s_recreate_exceptions, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_ReplayExceptionScheduler); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_ReplayExceptionScheduler, __pyx_t_2) < 0) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0082: from .lock import LockExtension
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_LockExtension); __Pyx_GIVEREF(__pyx_n_s_LockExtension); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_LockExtension); __pyx_t_2 = __Pyx_Import(__pyx_n_s_lock_2, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 82, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_LockExtension); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_LockExtension, __pyx_t_1) < 0) __PYX_ERR(0, 82, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0083: from .event import EventExtension
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 83, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_EventExtension); __Pyx_GIVEREF(__pyx_n_s_EventExtension); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_EventExtension); __pyx_t_1 = __Pyx_Import(__pyx_n_s_event, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 83, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_EventExtension); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 83, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_EventExtension, __pyx_t_2) < 0) __PYX_ERR(0, 83, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0084: from .pubsub import PubSubSchedulerExtension
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_PubSubSchedulerExtension); __Pyx_GIVEREF(__pyx_n_s_PubSubSchedulerExtension); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PubSubSchedulerExtension); __pyx_t_2 = __Pyx_Import(__pyx_n_s_pubsub, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_PubSubSchedulerExtension); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_PubSubSchedulerExtension, __pyx_t_1) < 0) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0085: from .stealing import WorkStealing
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_WorkStealing); __Pyx_GIVEREF(__pyx_n_s_WorkStealing); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_WorkStealing); __pyx_t_1 = __Pyx_Import(__pyx_n_s_stealing, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_WorkStealing); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_WorkStealing, __pyx_t_2) < 0) __PYX_ERR(0, 85, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0086: from .variable import VariableExtension
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_VariableExtension); __Pyx_GIVEREF(__pyx_n_s_VariableExtension); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_VariableExtension); __pyx_t_2 = __Pyx_Import(__pyx_n_s_variable, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_VariableExtension); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_VariableExtension, __pyx_t_1) < 0) __PYX_ERR(0, 86, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0087: from .protocol.highlevelgraph import highlevelgraph_unpack
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_highlevelgraph_unpack); __Pyx_GIVEREF(__pyx_n_s_highlevelgraph_unpack); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_highlevelgraph_unpack); __pyx_t_1 = __Pyx_Import(__pyx_n_s_protocol_highlevelgraph, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_highlevelgraph_unpack); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_highlevelgraph_unpack, __pyx_t_2) < 0) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0088:
+0089: try:
{
/*try:*/ {
}
}
0090: from cython import compiled
0091: except ImportError:
0092: compiled = False
0093:
+0094: if compiled:
__pyx_t_6 = (1 != 0);
if (__pyx_t_6) {
goto __pyx_L8;
}
0095: from cython import (
0096: bint,
0097: cast,
0098: ccall,
0099: cclass,
0100: cfunc,
0101: declare,
0102: double,
0103: exceptval,
0104: final,
0105: inline,
0106: nogil,
0107: Py_hash_t,
0108: Py_ssize_t,
0109: )
0110: else:
+0111: from ctypes import (
/*else*/ {
/* … */
__pyx_t_2 = __Pyx_Import(__pyx_n_s_ctypes, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 111, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_c_double); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 111, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(0, 112, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_c_ssize_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 111, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_Py_hash_t, __pyx_t_1) < 0) __PYX_ERR(0, 113, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_c_ssize_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 111, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_Py_ssize_t, __pyx_t_1) < 0) __PYX_ERR(0, 114, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0112: c_double as double,
__pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_c_double); __Pyx_GIVEREF(__pyx_n_s_c_double); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_c_double); __Pyx_INCREF(__pyx_n_s_c_ssize_t); __Pyx_GIVEREF(__pyx_n_s_c_ssize_t); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_c_ssize_t); __Pyx_INCREF(__pyx_n_s_c_ssize_t); __Pyx_GIVEREF(__pyx_n_s_c_ssize_t); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_s_c_ssize_t);
0113: c_ssize_t as Py_hash_t,
0114: c_ssize_t as Py_ssize_t,
0115: )
0116:
+0117: bint = bool
if (PyDict_SetItem(__pyx_d, __pyx_n_s_bint, ((PyObject*)&PyBool_Type)) < 0) __PYX_ERR(0, 117, __pyx_L1_error)
0118:
+0119: def cast(T, v, *a, **k):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_1cast(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_1cast = {"cast", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_1cast, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_1cast(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
CYTHON_UNUSED PyObject *__pyx_v_T = 0;
PyObject *__pyx_v_v = 0;
CYTHON_UNUSED PyObject *__pyx_v_a = 0;
CYTHON_UNUSED PyObject *__pyx_v_k = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("cast (wrapper)", 0);
__pyx_v_k = PyDict_New(); if (unlikely(!__pyx_v_k)) return NULL;
__Pyx_GOTREF(__pyx_v_k);
if (PyTuple_GET_SIZE(__pyx_args) > 2) {
__pyx_v_a = PyTuple_GetSlice(__pyx_args, 2, PyTuple_GET_SIZE(__pyx_args));
if (unlikely(!__pyx_v_a)) {
__Pyx_DECREF(__pyx_v_k); __pyx_v_k = 0;
__Pyx_RefNannyFinishContext();
return NULL;
}
__Pyx_GOTREF(__pyx_v_a);
} else {
__pyx_v_a = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple);
}
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_T,&__pyx_n_s_v,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
default:
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_T)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("cast", 0, 2, 2, 1); __PYX_ERR(0, 119, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t used_pos_args = (pos_args < 2) ? pos_args : 2;
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_k, values, used_pos_args, "cast") < 0)) __PYX_ERR(0, 119, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) < 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_T = values[0];
__pyx_v_v = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("cast", 0, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 119, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_a); __pyx_v_a = 0;
__Pyx_DECREF(__pyx_v_k); __pyx_v_k = 0;
__Pyx_AddTraceback("distributed.scheduler.cast", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_cast(__pyx_self, __pyx_v_T, __pyx_v_v, __pyx_v_a, __pyx_v_k);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_XDECREF(__pyx_v_a);
__Pyx_XDECREF(__pyx_v_k);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_cast(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_T, PyObject *__pyx_v_v, CYTHON_UNUSED PyObject *__pyx_v_a, CYTHON_UNUSED PyObject *__pyx_v_k) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("cast", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__95 = PyTuple_Pack(4, __pyx_n_s_T, __pyx_n_s_v, __pyx_n_s_a, __pyx_n_s_k); if (unlikely(!__pyx_tuple__95)) __PYX_ERR(0, 119, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__95);
__Pyx_GIVEREF(__pyx_tuple__95);
/* … */
__pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_11distributed_9scheduler_1cast, NULL, __pyx_n_s_distributed_scheduler); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 119, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_cast, __pyx_t_2) < 0) __PYX_ERR(0, 119, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__96 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_cast, 119, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__96)) __PYX_ERR(0, 119, __pyx_L1_error)
+0120: return v
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_v); __pyx_r = __pyx_v_v; goto __pyx_L0;
0121:
+0122: def ccall(func):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_3ccall(PyObject *__pyx_self, PyObject *__pyx_v_func); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_3ccall = {"ccall", (PyCFunction)__pyx_pw_11distributed_9scheduler_3ccall, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_3ccall(PyObject *__pyx_self, PyObject *__pyx_v_func) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("ccall (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_2ccall(__pyx_self, ((PyObject *)__pyx_v_func));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_2ccall(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("ccall", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__97 = PyTuple_Pack(1, __pyx_n_s_func); if (unlikely(!__pyx_tuple__97)) __PYX_ERR(0, 122, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__97);
__Pyx_GIVEREF(__pyx_tuple__97);
/* … */
__pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_11distributed_9scheduler_3ccall, NULL, __pyx_n_s_distributed_scheduler); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 122, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_ccall, __pyx_t_2) < 0) __PYX_ERR(0, 122, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__98 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__97, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_ccall, 122, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__98)) __PYX_ERR(0, 122, __pyx_L1_error)
+0123: return func
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_func); __pyx_r = __pyx_v_func; goto __pyx_L0;
0124:
+0125: def cclass(cls):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_5cclass(PyObject *__pyx_self, PyObject *__pyx_v_cls); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_5cclass = {"cclass", (PyCFunction)__pyx_pw_11distributed_9scheduler_5cclass, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_5cclass(PyObject *__pyx_self, PyObject *__pyx_v_cls) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("cclass (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_4cclass(__pyx_self, ((PyObject *)__pyx_v_cls));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_4cclass(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("cclass", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__99 = PyTuple_Pack(1, __pyx_n_s_cls); if (unlikely(!__pyx_tuple__99)) __PYX_ERR(0, 125, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__99);
__Pyx_GIVEREF(__pyx_tuple__99);
/* … */
__pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_11distributed_9scheduler_5cclass, NULL, __pyx_n_s_distributed_scheduler); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 125, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_cclass, __pyx_t_2) < 0) __PYX_ERR(0, 125, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__100 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__99, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_cclass, 125, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__100)) __PYX_ERR(0, 125, __pyx_L1_error)
+0126: return cls
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_cls); __pyx_r = __pyx_v_cls; goto __pyx_L0;
0127:
+0128: def cfunc(func):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_7cfunc(PyObject *__pyx_self, PyObject *__pyx_v_func); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_7cfunc = {"cfunc", (PyCFunction)__pyx_pw_11distributed_9scheduler_7cfunc, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_7cfunc(PyObject *__pyx_self, PyObject *__pyx_v_func) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("cfunc (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_6cfunc(__pyx_self, ((PyObject *)__pyx_v_func));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_6cfunc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("cfunc", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__101 = PyTuple_Pack(1, __pyx_n_s_func); if (unlikely(!__pyx_tuple__101)) __PYX_ERR(0, 128, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__101);
__Pyx_GIVEREF(__pyx_tuple__101);
/* … */
__pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_11distributed_9scheduler_7cfunc, NULL, __pyx_n_s_distributed_scheduler); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 128, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_cfunc, __pyx_t_2) < 0) __PYX_ERR(0, 128, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__102 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__101, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_cfunc, 128, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__102)) __PYX_ERR(0, 128, __pyx_L1_error)
+0129: return func
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_func); __pyx_r = __pyx_v_func; goto __pyx_L0;
0130:
+0131: def declare(*a, **k):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9declare(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9declare = {"declare", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9declare, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9declare(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_a = 0;
CYTHON_UNUSED PyObject *__pyx_v_k = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("declare (wrapper)", 0);
if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "declare", 1))) return NULL;
__Pyx_INCREF(__pyx_args);
__pyx_v_a = __pyx_args;
__pyx_r = __pyx_pf_11distributed_9scheduler_8declare(__pyx_self, __pyx_v_a, __pyx_v_k);
/* function exit code */
__Pyx_XDECREF(__pyx_v_a);
__Pyx_XDECREF(__pyx_v_k);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_8declare(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_a, CYTHON_UNUSED PyObject *__pyx_v_k) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("declare", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("distributed.scheduler.declare", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__103 = PyTuple_Pack(2, __pyx_n_s_a, __pyx_n_s_k); if (unlikely(!__pyx_tuple__103)) __PYX_ERR(0, 131, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__103);
__Pyx_GIVEREF(__pyx_tuple__103);
/* … */
__pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_11distributed_9scheduler_9declare, NULL, __pyx_n_s_distributed_scheduler); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 131, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_declare, __pyx_t_2) < 0) __PYX_ERR(0, 131, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__104 = (PyObject*)__Pyx_PyCode_New(0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__103, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_declare, 131, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__104)) __PYX_ERR(0, 131, __pyx_L1_error)
+0132: if len(a) == 2:
__pyx_t_1 = PyTuple_GET_SIZE(__pyx_v_a); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 132, __pyx_L1_error) __pyx_t_2 = ((__pyx_t_1 == 2) != 0); if (__pyx_t_2) { /* … */ }
+0133: return a[1]
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_a, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
0134: else:
+0135: pass
/*else*/ {
}
0136:
+0137: def exceptval(*a, **k):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11exceptval(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_11exceptval = {"exceptval", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_11exceptval, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_11exceptval(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
CYTHON_UNUSED PyObject *__pyx_v_a = 0;
CYTHON_UNUSED PyObject *__pyx_v_k = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("exceptval (wrapper)", 0);
if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "exceptval", 1))) return NULL;
__Pyx_INCREF(__pyx_args);
__pyx_v_a = __pyx_args;
__pyx_r = __pyx_pf_11distributed_9scheduler_10exceptval(__pyx_self, __pyx_v_a, __pyx_v_k);
/* function exit code */
__Pyx_XDECREF(__pyx_v_a);
__Pyx_XDECREF(__pyx_v_k);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
static PyObject *__pyx_pf_11distributed_9scheduler_10exceptval(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_a, CYTHON_UNUSED PyObject *__pyx_v_k) {
PyObject *__pyx_v_wrapper = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("exceptval", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.exceptval", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_wrapper);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__105 = PyTuple_Pack(4, __pyx_n_s_a, __pyx_n_s_k, __pyx_n_s_wrapper, __pyx_n_s_wrapper); if (unlikely(!__pyx_tuple__105)) __PYX_ERR(0, 137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__105);
__Pyx_GIVEREF(__pyx_tuple__105);
/* … */
__pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_11distributed_9scheduler_11exceptval, NULL, __pyx_n_s_distributed_scheduler); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_exceptval, __pyx_t_2) < 0) __PYX_ERR(0, 137, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__106 = (PyObject*)__Pyx_PyCode_New(0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__105, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_exceptval, 137, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__106)) __PYX_ERR(0, 137, __pyx_L1_error)
+0138: def wrapper(func):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9exceptval_1wrapper(PyObject *__pyx_self, PyObject *__pyx_v_func); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9exceptval_1wrapper = {"wrapper", (PyCFunction)__pyx_pw_11distributed_9scheduler_9exceptval_1wrapper, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9exceptval_1wrapper(PyObject *__pyx_self, PyObject *__pyx_v_func) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("wrapper (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9exceptval_wrapper(__pyx_self, ((PyObject *)__pyx_v_func));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9exceptval_wrapper(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("wrapper", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple_ = PyTuple_Pack(1, __pyx_n_s_func); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 138, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple_);
__Pyx_GIVEREF(__pyx_tuple_);
/* … */
__pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9exceptval_1wrapper, 0, __pyx_n_s_exceptval_locals_wrapper, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 138, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_wrapper = __pyx_t_1;
__pyx_t_1 = 0;
__pyx_codeobj__2 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple_, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_wrapper, 138, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__2)) __PYX_ERR(0, 138, __pyx_L1_error)
+0139: return func
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_func); __pyx_r = __pyx_v_func; goto __pyx_L0;
0140:
+0141: return wrapper
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_wrapper); __pyx_r = __pyx_v_wrapper; goto __pyx_L0;
0142:
+0143: def final(cls):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_13final(PyObject *__pyx_self, PyObject *__pyx_v_cls); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_13final = {"final", (PyCFunction)__pyx_pw_11distributed_9scheduler_13final, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_13final(PyObject *__pyx_self, PyObject *__pyx_v_cls) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("final (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_12final(__pyx_self, ((PyObject *)__pyx_v_cls));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_12final(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("final", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__107 = PyTuple_Pack(1, __pyx_n_s_cls); if (unlikely(!__pyx_tuple__107)) __PYX_ERR(0, 143, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__107);
__Pyx_GIVEREF(__pyx_tuple__107);
/* … */
__pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_11distributed_9scheduler_13final, NULL, __pyx_n_s_distributed_scheduler); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_final, __pyx_t_2) < 0) __PYX_ERR(0, 143, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__108 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__107, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_final, 143, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__108)) __PYX_ERR(0, 143, __pyx_L1_error)
+0144: return cls
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_cls); __pyx_r = __pyx_v_cls; goto __pyx_L0;
0145:
+0146: def inline(func):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_15inline(PyObject *__pyx_self, PyObject *__pyx_v_func); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_15inline = {"inline", (PyCFunction)__pyx_pw_11distributed_9scheduler_15inline, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_15inline(PyObject *__pyx_self, PyObject *__pyx_v_func) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("inline (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14inline(__pyx_self, ((PyObject *)__pyx_v_func));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14inline(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("inline", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__109 = PyTuple_Pack(1, __pyx_n_s_func); if (unlikely(!__pyx_tuple__109)) __PYX_ERR(0, 146, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__109);
__Pyx_GIVEREF(__pyx_tuple__109);
/* … */
__pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_11distributed_9scheduler_15inline, NULL, __pyx_n_s_distributed_scheduler); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 146, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_inline, __pyx_t_2) < 0) __PYX_ERR(0, 146, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__110 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__109, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_inline, 146, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__110)) __PYX_ERR(0, 146, __pyx_L1_error)
+0147: return func
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_func); __pyx_r = __pyx_v_func; goto __pyx_L0;
0148:
+0149: def nogil(func):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_17nogil(PyObject *__pyx_self, PyObject *__pyx_v_func); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_17nogil = {"nogil", (PyCFunction)__pyx_pw_11distributed_9scheduler_17nogil, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_17nogil(PyObject *__pyx_self, PyObject *__pyx_v_func) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("nogil (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_16nogil(__pyx_self, ((PyObject *)__pyx_v_func));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_16nogil(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("nogil", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__111 = PyTuple_Pack(1, __pyx_n_s_func); if (unlikely(!__pyx_tuple__111)) __PYX_ERR(0, 149, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__111);
__Pyx_GIVEREF(__pyx_tuple__111);
/* … */
__pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_11distributed_9scheduler_17nogil, NULL, __pyx_n_s_distributed_scheduler); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 149, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_nogil, __pyx_t_2) < 0) __PYX_ERR(0, 149, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
__pyx_L8:;
__pyx_codeobj__112 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__111, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_nogil, 149, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__112)) __PYX_ERR(0, 149, __pyx_L1_error)
+0150: return func
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_func); __pyx_r = __pyx_v_func; goto __pyx_L0;
0151:
0152:
+0153: if sys.version_info < (3, 8):
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_version_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_tuple__113, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 153, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 153, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_6) { /* … */ goto __pyx_L9; } /* … */ __pyx_tuple__113 = PyTuple_Pack(2, __pyx_int_3, __pyx_int_8); if (unlikely(!__pyx_tuple__113)) __PYX_ERR(0, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__113); __Pyx_GIVEREF(__pyx_tuple__113);
+0154: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
goto __pyx_L15_try_end;
__pyx_L10_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_4, __pyx_t_3);
goto __pyx_L1_error;
__pyx_L11_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_4, __pyx_t_3);
__pyx_L15_try_end:;
}
+0155: import pickle5 as pickle
__pyx_t_2 = __Pyx_Import(__pyx_n_s_pickle5, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 155, __pyx_L10_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pickle, __pyx_t_2) < 0) __PYX_ERR(0, 155, __pyx_L10_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0156: except ImportError:
__pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError); if (__pyx_t_7) { __Pyx_AddTraceback("distributed.scheduler", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_8) < 0) __PYX_ERR(0, 156, __pyx_L12_except_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_8);
+0157: import pickle
__pyx_t_9 = __Pyx_Import(__pyx_n_s_pickle, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 157, __pyx_L12_except_error) __Pyx_GOTREF(__pyx_t_9); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pickle, __pyx_t_9) < 0) __PYX_ERR(0, 157, __pyx_L12_except_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L11_exception_handled; } goto __pyx_L12_except_error; __pyx_L12_except_error:;
0158: else:
+0159: import pickle
/*else*/ {
__pyx_t_8 = __Pyx_Import(__pyx_n_s_pickle, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 159, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_pickle, __pyx_t_8) < 0) __PYX_ERR(0, 159, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
__pyx_L9:;
0160:
0161:
+0162: logger = logging.getLogger(__name__)
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_logging); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_getLogger); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_name_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_logger, __pyx_t_2) < 0) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0163:
0164:
+0165: LOG_PDB = dask.config.get("distributed.admin.pdb-on-err")
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_dask); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_config); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__114, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_LOG_PDB, __pyx_t_8) < 0) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* … */ __pyx_tuple__114 = PyTuple_Pack(1, __pyx_kp_u_distributed_admin_pdb_on_err); if (unlikely(!__pyx_tuple__114)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__114); __Pyx_GIVEREF(__pyx_tuple__114);
0166: DEFAULT_DATA_SIZE = declare(
+0167: Py_ssize_t, parse_bytes(dask.config.get("distributed.scheduler.default-data-size"))
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_parse_bytes); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_dask); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_config); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__115, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_11distributed_9scheduler_DEFAULT_DATA_SIZE = __pyx_t_10; /* … */ __pyx_tuple__115 = PyTuple_Pack(1, __pyx_kp_u_distributed_scheduler_default_da); if (unlikely(!__pyx_tuple__115)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__115); __Pyx_GIVEREF(__pyx_tuple__115);
0168: )
0169: UNKNOWN_TASK_DURATION = declare(
0170: double,
+0171: parse_timedelta(dask.config.get("distributed.scheduler.unknown-task-duration")),
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_parse_timedelta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_dask); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_config); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__116, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 171, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_11distributed_9scheduler_UNKNOWN_TASK_DURATION = __pyx_t_11; /* … */ __pyx_tuple__116 = PyTuple_Pack(1, __pyx_kp_u_distributed_scheduler_unknown_ta); if (unlikely(!__pyx_tuple__116)) __PYX_ERR(0, 171, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__116); __Pyx_GIVEREF(__pyx_tuple__116);
0172: )
0173:
+0174: DEFAULT_EXTENSIONS = [
__pyx_t_16 = PyList_New(8); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_GIVEREF(__pyx_t_1); PyList_SET_ITEM(__pyx_t_16, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_8); PyList_SET_ITEM(__pyx_t_16, 1, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_16, 2, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_9); PyList_SET_ITEM(__pyx_t_16, 3, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_12); PyList_SET_ITEM(__pyx_t_16, 4, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_13); PyList_SET_ITEM(__pyx_t_16, 5, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_14); PyList_SET_ITEM(__pyx_t_16, 6, __pyx_t_14); __Pyx_GIVEREF(__pyx_t_15); PyList_SET_ITEM(__pyx_t_16, 7, __pyx_t_15); __pyx_t_1 = 0; __pyx_t_8 = 0; __pyx_t_2 = 0; __pyx_t_9 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_DEFAULT_EXTENSIONS, __pyx_t_16) < 0) __PYX_ERR(0, 174, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+0175: LockExtension,
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_LockExtension); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
+0176: PublishExtension,
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_PublishExtension); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8);
+0177: ReplayExceptionScheduler,
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ReplayExceptionScheduler); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+0178: QueueExtension,
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_QueueExtension); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9);
+0179: VariableExtension,
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_VariableExtension); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12);
+0180: PubSubSchedulerExtension,
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_PubSubSchedulerExtension); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13);
+0181: SemaphoreExtension,
__Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_SemaphoreExtension); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14);
+0182: EventExtension,
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_EventExtension); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15);
0183: ]
0184:
+0185: ALL_TASK_STATES = declare(
__pyx_t_16 = PySet_New(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (PySet_Add(__pyx_t_16, __pyx_n_u_released) < 0) __PYX_ERR(0, 186, __pyx_L1_error) if (PySet_Add(__pyx_t_16, __pyx_n_u_waiting) < 0) __PYX_ERR(0, 186, __pyx_L1_error) if (PySet_Add(__pyx_t_16, __pyx_kp_u_no_worker) < 0) __PYX_ERR(0, 186, __pyx_L1_error) if (PySet_Add(__pyx_t_16, __pyx_n_u_processing_2) < 0) __PYX_ERR(0, 186, __pyx_L1_error) if (PySet_Add(__pyx_t_16, __pyx_n_u_erred) < 0) __PYX_ERR(0, 186, __pyx_L1_error) if (PySet_Add(__pyx_t_16, __pyx_n_u_memory_2) < 0) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_XGOTREF(__pyx_v_11distributed_9scheduler_ALL_TASK_STATES); __Pyx_DECREF_SET(__pyx_v_11distributed_9scheduler_ALL_TASK_STATES, ((PyObject*)__pyx_t_16)); __Pyx_GIVEREF(__pyx_t_16); __pyx_t_16 = 0;
0186: set, {"released", "waiting", "no-worker", "processing", "erred", "memory"}
0187: )
+0188: globals()["ALL_TASK_STATES"] = ALL_TASK_STATES
__pyx_t_16 = __Pyx_Globals(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (unlikely(PyObject_SetItem(__pyx_t_16, __pyx_n_u_ALL_TASK_STATES, __pyx_v_11distributed_9scheduler_ALL_TASK_STATES) < 0)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
0189:
0190:
0191: @final
0192: @cclass
+0193: class ClientState:
struct __pyx_obj_11distributed_9scheduler_ClientState {
PyObject_HEAD
PyObject *_client_key;
Py_hash_t _hash;
PyObject *_wants_what;
double _last_seen;
PyObject *_versions;
};
0194: """
0195: A simple object holding information about a client.
0196:
0197: .. attribute:: client_key: str
0198:
0199: A unique identifier for this client. This is generally an opaque
0200: string generated by the client itself.
0201:
0202: .. attribute:: wants_what: {TaskState}
0203:
0204: A set of tasks this client wants kept in memory, so that it can
0205: download its result when desired. This is the reverse mapping of
0206: :class:`TaskState.who_wants`.
0207:
0208: Tasks are typically removed from this set when the corresponding
0209: object in the client's space (for example a ``Future`` or a Dask
0210: collection) gets garbage-collected.
0211:
0212: """
0213:
0214: _client_key: str
0215: _hash: Py_hash_t
0216: _wants_what: set
0217: _last_seen: double
0218: _versions: dict
0219:
+0220: __slots__ = ("_client_key", "_hash", "_wants_what", "_last_seen", "_versions")
if (PyDict_SetItem((PyObject *)__pyx_ptype_11distributed_9scheduler_ClientState->tp_dict, __pyx_n_s_slots, __pyx_tuple__117) < 0) __PYX_ERR(0, 220, __pyx_L1_error) PyType_Modified(__pyx_ptype_11distributed_9scheduler_ClientState); /* … */ __pyx_tuple__117 = PyTuple_Pack(5, __pyx_n_u_client_key, __pyx_n_u_hash, __pyx_n_u_wants_what_2, __pyx_n_u_last_seen_3, __pyx_n_u_versions_2); if (unlikely(!__pyx_tuple__117)) __PYX_ERR(0, 220, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__117); __Pyx_GIVEREF(__pyx_tuple__117);
0221:
+0222: def __init__(self, client: str, versions: dict = None):
/* Python wrapper */
static int __pyx_pw_11distributed_9scheduler_11ClientState_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_11distributed_9scheduler_11ClientState_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_client = 0;
PyObject *__pyx_v_versions = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_client,&__pyx_n_s_versions,0};
PyObject* values[2] = {0,0};
values[1] = ((PyObject*)Py_None);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_client)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_versions);
if (value) { values[1] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 222, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_client = ((PyObject*)values[0]);
__pyx_v_versions = ((PyObject*)values[1]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 222, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.ClientState.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return -1;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_client), (&PyUnicode_Type), 1, "client", 1))) __PYX_ERR(0, 222, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_versions), (&PyDict_Type), 1, "versions", 1))) __PYX_ERR(0, 222, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_11ClientState___init__(((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_v_self), __pyx_v_client, __pyx_v_versions);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = -1;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static int __pyx_pf_11distributed_9scheduler_11ClientState___init__(struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_self, PyObject *__pyx_v_client, PyObject *__pyx_v_versions) {
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__", 0);
/* … */
/* function exit code */
__pyx_r = 0;
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler.ClientState.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = -1;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0223: self._client_key = client
__Pyx_INCREF(__pyx_v_client); __Pyx_GIVEREF(__pyx_v_client); __Pyx_GOTREF(__pyx_v_self->_client_key); __Pyx_DECREF(__pyx_v_self->_client_key); __pyx_v_self->_client_key = __pyx_v_client;
+0224: self._hash = hash(client)
__pyx_t_1 = PyObject_Hash(__pyx_v_client); if (unlikely(__pyx_t_1 == ((Py_hash_t)-1))) __PYX_ERR(0, 224, __pyx_L1_error) __pyx_v_self->_hash = __pyx_t_1;
+0225: self._wants_what = set()
__pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->_wants_what); __Pyx_DECREF(__pyx_v_self->_wants_what); __pyx_v_self->_wants_what = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+0226: self._last_seen = time()
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_time); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 226, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->_last_seen = __pyx_t_5;
+0227: self._versions = versions or {}
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_versions); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 227, __pyx_L1_error) if (!__pyx_t_6) { } else { __Pyx_INCREF(__pyx_v_versions); __pyx_t_2 = __pyx_v_versions; goto __pyx_L3_bool_binop_done; } __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_3); __pyx_t_2 = __pyx_t_3; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_L3_bool_binop_done:; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->_versions); __Pyx_DECREF(__pyx_v_self->_versions); __pyx_v_self->_versions = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
0228:
+0229: def __hash__(self):
/* Python wrapper */
static Py_hash_t __pyx_pw_11distributed_9scheduler_11ClientState_3__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_11distributed_9scheduler_11ClientState_3__hash__(PyObject *__pyx_v_self) {
Py_hash_t __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11ClientState_2__hash__(((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static Py_hash_t __pyx_pf_11distributed_9scheduler_11ClientState_2__hash__(struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_self) {
Py_hash_t __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__hash__", 0);
/* … */
/* function exit code */
__pyx_L0:;
if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0230: return self._hash
__pyx_r = __pyx_v_self->_hash; goto __pyx_L0;
0231:
+0232: def __eq__(self, other):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11ClientState_5__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11ClientState_5__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11ClientState_4__eq__(((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_v_self), ((PyObject *)__pyx_v_other));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11ClientState_4__eq__(struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_self, PyObject *__pyx_v_other) {
PyTypeObject *__pyx_v_typ_self = 0;
PyTypeObject *__pyx_v_typ_other = 0;
struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_other_cs = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__eq__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.ClientState.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_typ_self);
__Pyx_XDECREF(__pyx_v_typ_other);
__Pyx_XDECREF((PyObject *)__pyx_v_other_cs);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0233: typ_self: type = type(self)
__Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
__pyx_v_typ_self = ((PyTypeObject*)((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
+0234: typ_other: type = type(other)
__Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_other)));
__pyx_v_typ_other = ((PyTypeObject*)((PyObject *)Py_TYPE(__pyx_v_other)));
+0235: if typ_self == typ_other:
__pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_typ_self), ((PyObject *)__pyx_v_typ_other), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 235, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+0236: other_cs: ClientState = other
if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 236, __pyx_L1_error) __pyx_t_1 = __pyx_v_other; __Pyx_INCREF(__pyx_t_1); __pyx_v_other_cs = ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_1); __pyx_t_1 = 0;
+0237: return self._client_key == other_cs._client_key
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_self->_client_key, __pyx_v_other_cs->_client_key, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 237, __pyx_L1_error) __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0238: else:
+0239: return False
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(Py_False);
__pyx_r = Py_False;
goto __pyx_L0;
}
0240:
+0241: def __repr__(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11ClientState_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11ClientState_7__repr__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11ClientState_6__repr__(((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11ClientState_6__repr__(struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__repr__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.ClientState.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0242: return "<Client '%s'>" % self._client_key
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyUnicode_Format(__pyx_kp_u_Client_s, __pyx_v_self->_client_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0243:
+0244: def __str__(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11ClientState_9__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11ClientState_9__str__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11ClientState_8__str__(((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11ClientState_8__str__(struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__str__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0245: return self._client_key
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_client_key); __pyx_r = __pyx_v_self->_client_key; goto __pyx_L0;
0246:
0247: @property
+0248: def client_key(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11ClientState_10client_key_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11ClientState_10client_key_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11ClientState_10client_key___get__(((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11ClientState_10client_key___get__(struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0249: return self._client_key
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_client_key); __pyx_r = __pyx_v_self->_client_key; goto __pyx_L0;
0250:
0251: @property
+0252: def wants_what(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11ClientState_10wants_what_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11ClientState_10wants_what_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11ClientState_10wants_what___get__(((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11ClientState_10wants_what___get__(struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0253: return self._wants_what
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_wants_what); __pyx_r = __pyx_v_self->_wants_what; goto __pyx_L0;
0254:
0255: @property
+0256: def last_seen(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11ClientState_9last_seen_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11ClientState_9last_seen_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11ClientState_9last_seen___get__(((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11ClientState_9last_seen___get__(struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.ClientState.last_seen.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0257: return self._last_seen
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->_last_seen); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0258:
0259: @property
+0260: def versions(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11ClientState_8versions_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11ClientState_8versions_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11ClientState_8versions___get__(((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11ClientState_8versions___get__(struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0261: return self._versions
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_versions); __pyx_r = __pyx_v_self->_versions; goto __pyx_L0;
0262:
0263:
0264: @final
0265: @cclass
+0266: class WorkerState:
struct __pyx_obj_11distributed_9scheduler_WorkerState {
PyObject_HEAD
struct __pyx_vtabstruct_11distributed_9scheduler_WorkerState *__pyx_vtab;
PyObject *_actors;
PyObject *_address;
double _bandwidth;
PyObject *_executing;
PyObject *_extra;
PyObject *_has_what;
Py_hash_t _hash;
double _last_seen;
PyObject *_local_directory;
Py_ssize_t _memory_limit;
PyObject *_metrics;
PyObject *_name;
PyObject *_nanny;
Py_ssize_t _nbytes;
Py_ssize_t _nthreads;
double _occupancy;
Py_ssize_t _pid;
PyObject *_processing;
PyObject *_resources;
PyObject *_services;
PyObject *_status;
double _time_delay;
PyObject *_used_resources;
PyObject *_versions;
};
/* … */
struct __pyx_vtabstruct_11distributed_9scheduler_WorkerState {
PyObject *(*clean)(struct __pyx_obj_11distributed_9scheduler_WorkerState *, int __pyx_skip_dispatch);
PyObject *(*identity)(struct __pyx_obj_11distributed_9scheduler_WorkerState *, int __pyx_skip_dispatch);
};
static struct __pyx_vtabstruct_11distributed_9scheduler_WorkerState *__pyx_vtabptr_11distributed_9scheduler_WorkerState;
static PyObject *__pyx_f_11distributed_9scheduler_11WorkerState_clean(struct __pyx_obj_11distributed_9scheduler_WorkerState *, int __pyx_skip_dispatch);
static PyObject *__pyx_f_11distributed_9scheduler_11WorkerState_identity(struct __pyx_obj_11distributed_9scheduler_WorkerState *, int __pyx_skip_dispatch);
0267: """
0268: A simple object holding information about a worker.
0269:
0270: .. attribute:: address: str
0271:
0272: This worker's unique key. This can be its connected address
0273: (such as ``'tcp://127.0.0.1:8891'``) or an alias (such as ``'alice'``).
0274:
0275: .. attribute:: processing: {TaskState: cost}
0276:
0277: A dictionary of tasks that have been submitted to this worker.
0278: Each task state is asssociated with the expected cost in seconds
0279: of running that task, summing both the task's expected computation
0280: time and the expected communication time of its result.
0281:
0282: Multiple tasks may be submitted to a worker in advance and the worker
0283: will run them eventually, depending on its execution resources
0284: (but see :doc:`work-stealing`).
0285:
0286: All the tasks here are in the "processing" state.
0287:
0288: This attribute is kept in sync with :attr:`TaskState.processing_on`.
0289:
0290: .. attribute:: executing: {TaskState: duration}
0291:
0292: A dictionary of tasks that are currently being run on this worker.
0293: Each task state is asssociated with the duration in seconds which
0294: the task has been running.
0295:
0296: .. attribute:: has_what: {TaskState}
0297:
0298: The set of tasks which currently reside on this worker.
0299: All the tasks here are in the "memory" state.
0300:
0301: This is the reverse mapping of :class:`TaskState.who_has`.
0302:
0303: .. attribute:: nbytes: int
0304:
0305: The total memory size, in bytes, used by the tasks this worker
0306: holds in memory (i.e. the tasks in this worker's :attr:`has_what`).
0307:
0308: .. attribute:: nthreads: int
0309:
0310: The number of CPU threads made available on this worker.
0311:
0312: .. attribute:: resources: {str: Number}
0313:
0314: The available resources on this worker like ``{'gpu': 2}``.
0315: These are abstract quantities that constrain certain tasks from
0316: running at the same time on this worker.
0317:
0318: .. attribute:: used_resources: {str: Number}
0319:
0320: The sum of each resource used by all tasks allocated to this worker.
0321: The numbers in this dictionary can only be less or equal than
0322: those in this worker's :attr:`resources`.
0323:
0324: .. attribute:: occupancy: double
0325:
0326: The total expected runtime, in seconds, of all tasks currently
0327: processing on this worker. This is the sum of all the costs in
0328: this worker's :attr:`processing` dictionary.
0329:
0330: .. attribute:: status: str
0331:
0332: The current status of the worker, either ``'running'`` or ``'closed'``
0333:
0334: .. attribute:: nanny: str
0335:
0336: Address of the associated Nanny, if present
0337:
0338: .. attribute:: last_seen: Py_ssize_t
0339:
0340: The last time we received a heartbeat from this worker, in local
0341: scheduler time.
0342:
0343: .. attribute:: actors: {TaskState}
0344:
0345: A set of all TaskStates on this worker that are actors. This only
0346: includes those actors whose state actually lives on this worker, not
0347: actors to which this worker has a reference.
0348:
0349: """
0350:
0351: # XXX need a state field to signal active/removed?
0352:
0353: _actors: set
0354: _address: str
0355: _bandwidth: double
0356: _executing: dict
0357: _extra: dict
0358: _has_what: set
0359: _hash: Py_hash_t
0360: _last_seen: double
0361: _local_directory: str
0362: _memory_limit: Py_ssize_t
0363: _metrics: dict
0364: _name: object
0365: _nanny: str
0366: _nbytes: Py_ssize_t
0367: _nthreads: Py_ssize_t
0368: _occupancy: double
0369: _pid: Py_ssize_t
0370: _processing: dict
0371: _resources: dict
0372: _services: dict
0373: _status: Status
0374: _time_delay: double
0375: _used_resources: dict
0376: _versions: dict
0377:
0378: __slots__ = (
+0379: "_actors",
if (PyDict_SetItem((PyObject *)__pyx_ptype_11distributed_9scheduler_WorkerState->tp_dict, __pyx_n_s_slots, __pyx_tuple__118) < 0) __PYX_ERR(0, 378, __pyx_L1_error) PyType_Modified(__pyx_ptype_11distributed_9scheduler_WorkerState); /* … */ __pyx_tuple__118 = PyTuple_Pack(24, __pyx_n_u_actors_2, __pyx_n_u_address_2, __pyx_n_u_bandwidth_2, __pyx_n_u_extra_2, __pyx_n_u_executing_2, __pyx_n_u_has_what_2, __pyx_n_u_hash, __pyx_n_u_last_seen_3, __pyx_n_u_local_directory_2, __pyx_n_u_memory_limit_2, __pyx_n_u_metrics_2, __pyx_n_u_name_4, __pyx_n_u_nanny_2, __pyx_n_u_nbytes_2, __pyx_n_u_nthreads_2, __pyx_n_u_occupancy_2, __pyx_n_u_pid_2, __pyx_n_u_processing_3, __pyx_n_u_resources_2, __pyx_n_u_services_2, __pyx_n_u_status_2, __pyx_n_u_time_delay, __pyx_n_u_used_resources_2, __pyx_n_u_versions_2); if (unlikely(!__pyx_tuple__118)) __PYX_ERR(0, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__118); __Pyx_GIVEREF(__pyx_tuple__118);
0380: "_address",
0381: "_bandwidth",
0382: "_extra",
0383: "_executing",
0384: "_has_what",
0385: "_hash",
0386: "_last_seen",
0387: "_local_directory",
0388: "_memory_limit",
0389: "_metrics",
0390: "_name",
0391: "_nanny",
0392: "_nbytes",
0393: "_nthreads",
0394: "_occupancy",
0395: "_pid",
0396: "_processing",
0397: "_resources",
0398: "_services",
0399: "_status",
0400: "_time_delay",
0401: "_used_resources",
0402: "_versions",
0403: )
0404:
+0405: def __init__(
/* Python wrapper */
static int __pyx_pw_11distributed_9scheduler_11WorkerState_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_11distributed_9scheduler_11WorkerState_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_address = 0;
Py_ssize_t __pyx_v_pid;
PyObject *__pyx_v_name = 0;
Py_ssize_t __pyx_v_nthreads;
Py_ssize_t __pyx_v_memory_limit;
PyObject *__pyx_v_local_directory = 0;
PyObject *__pyx_v_services = 0;
PyObject *__pyx_v_versions = 0;
PyObject *__pyx_v_nanny = 0;
PyObject *__pyx_v_extra = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_address,&__pyx_n_s_pid,&__pyx_n_s_name,&__pyx_n_s_nthreads,&__pyx_n_s_memory_limit,&__pyx_n_s_local_directory,&__pyx_n_s_services,&__pyx_n_s_versions,&__pyx_n_s_nanny,&__pyx_n_s_extra,0};
PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = -1;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static int __pyx_pf_11distributed_9scheduler_11WorkerState___init__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self, PyObject *__pyx_v_address, Py_ssize_t __pyx_v_pid, PyObject *__pyx_v_name, Py_ssize_t __pyx_v_nthreads, Py_ssize_t __pyx_v_memory_limit, PyObject *__pyx_v_local_directory, PyObject *__pyx_v_services, PyObject *__pyx_v_versions, PyObject *__pyx_v_nanny, PyObject *__pyx_v_extra) {
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__", 0);
/* … */
/* function exit code */
__pyx_r = 0;
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_AddTraceback("distributed.scheduler.WorkerState.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = -1;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0406: self,
+0407: address: str = None,
values[0] = ((PyObject*)Py_None);
0408: pid: Py_ssize_t = 0,
+0409: name: object = None,
values[2] = ((PyObject *)Py_None);
0410: nthreads: Py_ssize_t = 0,
0411: memory_limit: Py_ssize_t = 0,
+0412: local_directory: str = None,
values[5] = ((PyObject*)Py_None);
+0413: services: dict = None,
values[6] = ((PyObject*)Py_None);
+0414: versions: dict = None,
values[7] = ((PyObject*)Py_None);
+0415: nanny: str = None,
values[8] = ((PyObject*)Py_None);
+0416: extra: dict = None,
values[9] = ((PyObject*)Py_None);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_address);
if (value) { values[0] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pid);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nthreads);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_memory_limit);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_local_directory);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_services);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_versions);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nanny);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_extra);
if (value) { values[9] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 405, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_address = ((PyObject*)values[0]);
if (values[1]) {
__pyx_v_pid = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_pid == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 408, __pyx_L3_error)
} else {
__pyx_v_pid = ((Py_ssize_t)0);
}
__pyx_v_name = values[2];
if (values[3]) {
__pyx_v_nthreads = __Pyx_PyIndex_AsSsize_t(values[3]); if (unlikely((__pyx_v_nthreads == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 410, __pyx_L3_error)
} else {
__pyx_v_nthreads = ((Py_ssize_t)0);
}
if (values[4]) {
__pyx_v_memory_limit = __Pyx_PyIndex_AsSsize_t(values[4]); if (unlikely((__pyx_v_memory_limit == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 411, __pyx_L3_error)
} else {
__pyx_v_memory_limit = ((Py_ssize_t)0);
}
__pyx_v_local_directory = ((PyObject*)values[5]);
__pyx_v_services = ((PyObject*)values[6]);
__pyx_v_versions = ((PyObject*)values[7]);
__pyx_v_nanny = ((PyObject*)values[8]);
__pyx_v_extra = ((PyObject*)values[9]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 405, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.WorkerState.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return -1;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_address), (&PyUnicode_Type), 1, "address", 1))) __PYX_ERR(0, 407, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_local_directory), (&PyUnicode_Type), 1, "local_directory", 1))) __PYX_ERR(0, 412, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_services), (&PyDict_Type), 1, "services", 1))) __PYX_ERR(0, 413, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_versions), (&PyDict_Type), 1, "versions", 1))) __PYX_ERR(0, 414, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nanny), (&PyUnicode_Type), 1, "nanny", 1))) __PYX_ERR(0, 415, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_extra), (&PyDict_Type), 1, "extra", 1))) __PYX_ERR(0, 416, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState___init__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self), __pyx_v_address, __pyx_v_pid, __pyx_v_name, __pyx_v_nthreads, __pyx_v_memory_limit, __pyx_v_local_directory, __pyx_v_services, __pyx_v_versions, __pyx_v_nanny, __pyx_v_extra);
0417: ):
+0418: self._address = address
__Pyx_INCREF(__pyx_v_address); __Pyx_GIVEREF(__pyx_v_address); __Pyx_GOTREF(__pyx_v_self->_address); __Pyx_DECREF(__pyx_v_self->_address); __pyx_v_self->_address = __pyx_v_address;
+0419: self._pid = pid
__pyx_v_self->_pid = __pyx_v_pid;
+0420: self._name = name
__Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); __Pyx_GOTREF(__pyx_v_self->_name); __Pyx_DECREF(__pyx_v_self->_name); __pyx_v_self->_name = __pyx_v_name;
+0421: self._nthreads = nthreads
__pyx_v_self->_nthreads = __pyx_v_nthreads;
+0422: self._memory_limit = memory_limit
__pyx_v_self->_memory_limit = __pyx_v_memory_limit;
+0423: self._local_directory = local_directory
__Pyx_INCREF(__pyx_v_local_directory); __Pyx_GIVEREF(__pyx_v_local_directory); __Pyx_GOTREF(__pyx_v_self->_local_directory); __Pyx_DECREF(__pyx_v_self->_local_directory); __pyx_v_self->_local_directory = __pyx_v_local_directory;
+0424: self._services = services or {}
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_services); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 424, __pyx_L1_error) if (!__pyx_t_2) { } else { __Pyx_INCREF(__pyx_v_services); __pyx_t_1 = __pyx_v_services; goto __pyx_L3_bool_binop_done; } __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = __pyx_t_3; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_L3_bool_binop_done:; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->_services); __Pyx_DECREF(__pyx_v_self->_services); __pyx_v_self->_services = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0425: self._versions = versions or {}
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_versions); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 425, __pyx_L1_error) if (!__pyx_t_2) { } else { __Pyx_INCREF(__pyx_v_versions); __pyx_t_1 = __pyx_v_versions; goto __pyx_L5_bool_binop_done; } __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = __pyx_t_3; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_L5_bool_binop_done:; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->_versions); __Pyx_DECREF(__pyx_v_self->_versions); __pyx_v_self->_versions = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0426: self._nanny = nanny
__Pyx_INCREF(__pyx_v_nanny); __Pyx_GIVEREF(__pyx_v_nanny); __Pyx_GOTREF(__pyx_v_self->_nanny); __Pyx_DECREF(__pyx_v_self->_nanny); __pyx_v_self->_nanny = __pyx_v_nanny;
0427:
+0428: self._hash = hash(address)
__pyx_t_4 = PyObject_Hash(__pyx_v_address); if (unlikely(__pyx_t_4 == ((Py_hash_t)-1))) __PYX_ERR(0, 428, __pyx_L1_error) __pyx_v_self->_hash = __pyx_t_4;
+0429: self._status = Status.running
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_running); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->_status); __Pyx_DECREF(__pyx_v_self->_status); __pyx_v_self->_status = __pyx_t_3; __pyx_t_3 = 0;
+0430: self._nbytes = 0
__pyx_v_self->_nbytes = 0;
+0431: self._occupancy = 0
__pyx_v_self->_occupancy = 0.0;
+0432: self._metrics = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 432, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->_metrics); __Pyx_DECREF(__pyx_v_self->_metrics); __pyx_v_self->_metrics = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+0433: self._last_seen = 0
__pyx_v_self->_last_seen = 0.0;
+0434: self._time_delay = 0
__pyx_v_self->_time_delay = 0.0;
+0435: self._bandwidth = float(
__pyx_t_8 = __Pyx_PyObject_AsDouble(__pyx_t_3); if (unlikely(__pyx_t_8 == ((double)((double)-1)) && PyErr_Occurred())) __PYX_ERR(0, 435, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_self->_bandwidth = __pyx_t_8;
+0436: parse_bytes(dask.config.get("distributed.scheduler.bandwidth"))
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_parse_bytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_dask); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_config); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_get); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_kp_u_distributed_scheduler_bandwidth) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_kp_u_distributed_scheduler_bandwidth); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0437: )
0438:
+0439: self._actors = set()
__pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->_actors); __Pyx_DECREF(__pyx_v_self->_actors); __pyx_v_self->_actors = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+0440: self._has_what = set()
__pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->_has_what); __Pyx_DECREF(__pyx_v_self->_has_what); __pyx_v_self->_has_what = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+0441: self._processing = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->_processing); __Pyx_DECREF(__pyx_v_self->_processing); __pyx_v_self->_processing = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+0442: self._executing = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->_executing); __Pyx_DECREF(__pyx_v_self->_executing); __pyx_v_self->_executing = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+0443: self._resources = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->_resources); __Pyx_DECREF(__pyx_v_self->_resources); __pyx_v_self->_resources = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+0444: self._used_resources = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->_used_resources); __Pyx_DECREF(__pyx_v_self->_used_resources); __pyx_v_self->_used_resources = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
0445:
+0446: self._extra = extra or {}
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_extra); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 446, __pyx_L1_error) if (!__pyx_t_2) { } else { __Pyx_INCREF(__pyx_v_extra); __pyx_t_3 = __pyx_v_extra; goto __pyx_L7_bool_binop_done; } __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_L7_bool_binop_done:; __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->_extra); __Pyx_DECREF(__pyx_v_self->_extra); __pyx_v_self->_extra = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
0447:
+0448: def __hash__(self):
/* Python wrapper */
static Py_hash_t __pyx_pw_11distributed_9scheduler_11WorkerState_3__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_11distributed_9scheduler_11WorkerState_3__hash__(PyObject *__pyx_v_self) {
Py_hash_t __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_2__hash__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static Py_hash_t __pyx_pf_11distributed_9scheduler_11WorkerState_2__hash__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
Py_hash_t __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__hash__", 0);
/* … */
/* function exit code */
__pyx_L0:;
if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0449: return self._hash
__pyx_r = __pyx_v_self->_hash; goto __pyx_L0;
0450:
+0451: def __eq__(self, other):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_5__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_5__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_4__eq__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self), ((PyObject *)__pyx_v_other));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_4__eq__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self, PyObject *__pyx_v_other) {
PyTypeObject *__pyx_v_typ_self = 0;
PyTypeObject *__pyx_v_typ_other = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_other_ws = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__eq__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.WorkerState.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_typ_self);
__Pyx_XDECREF(__pyx_v_typ_other);
__Pyx_XDECREF((PyObject *)__pyx_v_other_ws);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0452: typ_self: type = type(self)
__Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
__pyx_v_typ_self = ((PyTypeObject*)((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
+0453: typ_other: type = type(other)
__Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_other)));
__pyx_v_typ_other = ((PyTypeObject*)((PyObject *)Py_TYPE(__pyx_v_other)));
+0454: if typ_self == typ_other:
__pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_typ_self), ((PyObject *)__pyx_v_typ_other), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 454, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 454, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+0455: other_ws: WorkerState = other
if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 455, __pyx_L1_error) __pyx_t_1 = __pyx_v_other; __Pyx_INCREF(__pyx_t_1); __pyx_v_other_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1); __pyx_t_1 = 0;
+0456: return self._address == other_ws._address
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_self->_address, __pyx_v_other_ws->_address, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 456, __pyx_L1_error) __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0457: else:
+0458: return False
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(Py_False);
__pyx_r = Py_False;
goto __pyx_L0;
}
0459:
0460: @property
+0461: def actors(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_6actors_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_6actors_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_6actors___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_6actors___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0462: return self._actors
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_actors); __pyx_r = __pyx_v_self->_actors; goto __pyx_L0;
0463:
0464: @property
+0465: def address(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_7address_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_7address_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_7address___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_7address___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0466: return self._address
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_address); __pyx_r = __pyx_v_self->_address; goto __pyx_L0;
0467:
0468: @property
+0469: def bandwidth(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_9bandwidth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_9bandwidth_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_9bandwidth___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_9bandwidth___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.WorkerState.bandwidth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0470: return self._bandwidth
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->_bandwidth); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0471:
0472: @property
+0473: def executing(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_9executing_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_9executing_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_9executing___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_9executing___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0474: return self._executing
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_executing); __pyx_r = __pyx_v_self->_executing; goto __pyx_L0;
0475:
0476: @property
+0477: def extra(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_5extra_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_5extra_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_5extra___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_5extra___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0478: return self._extra
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_extra); __pyx_r = __pyx_v_self->_extra; goto __pyx_L0;
0479:
0480: @property
+0481: def has_what(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_8has_what_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_8has_what_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_8has_what___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_8has_what___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0482: return self._has_what
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_has_what); __pyx_r = __pyx_v_self->_has_what; goto __pyx_L0;
0483:
0484: @property
+0485: def host(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_4host_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_4host_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_4host___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_4host___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler.WorkerState.host.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0486: return get_address_host(self.address)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_get_address_host); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_address); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0487:
0488: @property
+0489: def last_seen(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_9last_seen_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_9last_seen_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_9last_seen___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_9last_seen___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.WorkerState.last_seen.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0490: return self._last_seen
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->_last_seen); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0491:
0492: @property
+0493: def local_directory(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_15local_directory_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_15local_directory_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_15local_directory___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_15local_directory___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0494: return self._local_directory
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_local_directory); __pyx_r = __pyx_v_self->_local_directory; goto __pyx_L0;
0495:
0496: @property
+0497: def memory_limit(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_12memory_limit_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_12memory_limit_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_12memory_limit___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_12memory_limit___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.WorkerState.memory_limit.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0498: return self._memory_limit
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->_memory_limit); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0499:
0500: @property
+0501: def metrics(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_7metrics_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_7metrics_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_7metrics___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_7metrics___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0502: return self._metrics
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_metrics); __pyx_r = __pyx_v_self->_metrics; goto __pyx_L0;
0503:
0504: @property
+0505: def name(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_4name_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_4name___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_4name___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0506: return self._name
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_name); __pyx_r = __pyx_v_self->_name; goto __pyx_L0;
0507:
0508: @property
+0509: def nanny(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_5nanny_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_5nanny_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_5nanny___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_5nanny___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0510: return self._nanny
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_nanny); __pyx_r = __pyx_v_self->_nanny; goto __pyx_L0;
0511:
0512: @property
+0513: def nbytes(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_6nbytes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_6nbytes_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_6nbytes___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_6nbytes___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.WorkerState.nbytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0514: return self._nbytes
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->_nbytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0515:
0516: @nbytes.setter
+0517: def nbytes(self, v: Py_ssize_t):
/* Python wrapper */
static int __pyx_pw_11distributed_9scheduler_11WorkerState_6nbytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_v); /*proto*/
static int __pyx_pw_11distributed_9scheduler_11WorkerState_6nbytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_v) {
Py_ssize_t __pyx_v_v;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
assert(__pyx_arg_v); {
__pyx_v_v = __Pyx_PyIndex_AsSsize_t(__pyx_arg_v); if (unlikely((__pyx_v_v == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 517, __pyx_L3_error)
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.WorkerState.nbytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return -1;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_6nbytes_2__set__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self), ((Py_ssize_t)__pyx_v_v));
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static int __pyx_pf_11distributed_9scheduler_11WorkerState_6nbytes_2__set__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self, Py_ssize_t __pyx_v_v) {
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__set__", 0);
/* … */
/* function exit code */
__pyx_r = 0;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0518: self._nbytes = v
__pyx_v_self->_nbytes = __pyx_v_v;
0519:
0520: @property
+0521: def nthreads(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_8nthreads_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_8nthreads_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_8nthreads___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_8nthreads___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.WorkerState.nthreads.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0522: return self._nthreads
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->_nthreads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0523:
0524: @property
+0525: def occupancy(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_9occupancy_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_9occupancy_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_9occupancy___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_9occupancy___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.WorkerState.occupancy.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0526: return self._occupancy
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->_occupancy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0527:
0528: @occupancy.setter
+0529: def occupancy(self, v: double):
/* Python wrapper */
static int __pyx_pw_11distributed_9scheduler_11WorkerState_9occupancy_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_v); /*proto*/
static int __pyx_pw_11distributed_9scheduler_11WorkerState_9occupancy_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_v) {
double __pyx_v_v;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
assert(__pyx_arg_v); {
__pyx_v_v = __pyx_PyFloat_AsDouble(__pyx_arg_v); if (unlikely((__pyx_v_v == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 529, __pyx_L3_error)
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.WorkerState.occupancy.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return -1;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_9occupancy_2__set__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self), ((double)__pyx_v_v));
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static int __pyx_pf_11distributed_9scheduler_11WorkerState_9occupancy_2__set__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self, double __pyx_v_v) {
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__set__", 0);
/* … */
/* function exit code */
__pyx_r = 0;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0530: self._occupancy = v
__pyx_v_self->_occupancy = __pyx_v_v;
0531:
0532: @property
+0533: def pid(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_3pid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_3pid_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_3pid___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_3pid___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.WorkerState.pid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0534: return self._pid
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->_pid); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0535:
0536: @property
+0537: def processing(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_10processing_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_10processing_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_10processing___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_10processing___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0538: return self._processing
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_processing); __pyx_r = __pyx_v_self->_processing; goto __pyx_L0;
0539:
0540: @property
+0541: def resources(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_9resources_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_9resources_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_9resources___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_9resources___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0542: return self._resources
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_resources); __pyx_r = __pyx_v_self->_resources; goto __pyx_L0;
0543:
0544: @property
+0545: def services(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_8services_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_8services_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_8services___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_8services___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0546: return self._services
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_services); __pyx_r = __pyx_v_self->_services; goto __pyx_L0;
0547:
0548: @property
+0549: def status(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_6status_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_6status_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_6status___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_6status___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0550: return self._status
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_status); __pyx_r = __pyx_v_self->_status; goto __pyx_L0;
0551:
0552: @status.setter
+0553: def status(self, new_status):
/* Python wrapper */
static int __pyx_pw_11distributed_9scheduler_11WorkerState_6status_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_new_status); /*proto*/
static int __pyx_pw_11distributed_9scheduler_11WorkerState_6status_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_new_status) {
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_6status_2__set__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self), ((PyObject *)__pyx_v_new_status));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static int __pyx_pf_11distributed_9scheduler_11WorkerState_6status_2__set__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self, PyObject *__pyx_v_new_status) {
PyObject *__pyx_v_corresponding_enum_variants = NULL;
PyObject *__pyx_7genexpr__pyx_v_s = NULL;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__set__", 0);
/* … */
/* function exit code */
__pyx_r = 0;
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_AddTraceback("distributed.scheduler.WorkerState.status.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = -1;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_corresponding_enum_variants);
__Pyx_XDECREF(__pyx_7genexpr__pyx_v_s);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0554: if isinstance(new_status, Status):
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_new_status, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 554, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* … */ goto __pyx_L3; }
+0555: self._status = new_status
__Pyx_INCREF(__pyx_v_new_status); __Pyx_GIVEREF(__pyx_v_new_status); __Pyx_GOTREF(__pyx_v_self->_status); __Pyx_DECREF(__pyx_v_self->_status); __pyx_v_self->_status = __pyx_v_new_status;
+0556: elif isinstance(new_status, str) or new_status is None:
__pyx_t_2 = PyUnicode_Check(__pyx_v_new_status);
__pyx_t_4 = (__pyx_t_2 != 0);
if (!__pyx_t_4) {
} else {
__pyx_t_3 = __pyx_t_4;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_4 = (__pyx_v_new_status == Py_None);
__pyx_t_2 = (__pyx_t_4 != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (likely(__pyx_t_3)) {
/* … */
goto __pyx_L3;
}
+0557: corresponding_enum_variants = [s for s in Status if s.value == new_status]
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 557, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_Status); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 557, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_5);
if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
__pyx_t_6 = __pyx_t_5; __Pyx_INCREF(__pyx_t_6); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
} else {
__pyx_t_7 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 557, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_8 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 557, __pyx_L8_error)
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
for (;;) {
if (likely(!__pyx_t_8)) {
if (likely(PyList_CheckExact(__pyx_t_6))) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 557, __pyx_L8_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 557, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 557, __pyx_L8_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 557, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
}
} else {
__pyx_t_5 = __pyx_t_8(__pyx_t_6);
if (unlikely(!__pyx_t_5)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 557, __pyx_L8_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_5);
}
__Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_s, __pyx_t_5);
__pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_7genexpr__pyx_v_s, __pyx_n_s_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 557, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_9 = PyObject_RichCompare(__pyx_t_5, __pyx_v_new_status, Py_EQ); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 557, __pyx_L8_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 557, __pyx_L8_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (__pyx_t_3) {
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_7genexpr__pyx_v_s))) __PYX_ERR(0, 557, __pyx_L8_error)
}
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_7genexpr__pyx_v_s); __pyx_7genexpr__pyx_v_s = 0;
goto __pyx_L12_exit_scope;
__pyx_L8_error:;
__Pyx_XDECREF(__pyx_7genexpr__pyx_v_s); __pyx_7genexpr__pyx_v_s = 0;
goto __pyx_L1_error;
__pyx_L12_exit_scope:;
} /* exit inner scope */
__pyx_v_corresponding_enum_variants = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+0558: assert len(corresponding_enum_variants) == 1
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_7 = PyList_GET_SIZE(__pyx_v_corresponding_enum_variants); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 558, __pyx_L1_error)
if (unlikely(!((__pyx_t_7 == 1) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 558, __pyx_L1_error)
}
}
#endif
+0559: self._status = corresponding_enum_variants[0]
__pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_corresponding_enum_variants, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 559, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->_status); __Pyx_DECREF(__pyx_v_self->_status); __pyx_v_self->_status = __pyx_t_1; __pyx_t_1 = 0;
0560: else:
+0561: raise TypeError(f"expected Status or str, got {new_status}")
/*else*/ {
__pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_new_status, __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 561, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_expected_Status_or_str_got, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 561, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 561, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 561, __pyx_L1_error)
}
__pyx_L3:;
0562:
0563: @property
+0564: def time_delay(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_10time_delay_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_10time_delay_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_10time_delay___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_10time_delay___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.WorkerState.time_delay.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0565: return self._time_delay
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->_time_delay); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0566:
0567: @property
+0568: def used_resources(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_14used_resources_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_14used_resources_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_14used_resources___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_14used_resources___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0569: return self._used_resources
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_used_resources); __pyx_r = __pyx_v_self->_used_resources; goto __pyx_L0;
0570:
0571: @property
+0572: def versions(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_8versions_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_8versions_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_8versions___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_8versions___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0573: return self._versions
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_versions); __pyx_r = __pyx_v_self->_versions; goto __pyx_L0;
0574:
0575: @ccall
+0576: def clean(self):
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_7clean(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_11distributed_9scheduler_11WorkerState_clean(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self, CYTHON_UNUSED int __pyx_skip_dispatch) {
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_8genexpr1__pyx_v_ts = NULL;
PyObject *__pyx_8genexpr1__pyx_v_cost = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_8genexpr2__pyx_v_ts = NULL;
PyObject *__pyx_8genexpr2__pyx_v_duration = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("clean", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_AddTraceback("distributed.scheduler.WorkerState.clean", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF((PyObject *)__pyx_8genexpr1__pyx_v_ts);
__Pyx_XDECREF(__pyx_8genexpr1__pyx_v_cost);
__Pyx_XDECREF((PyObject *)__pyx_8genexpr2__pyx_v_ts);
__Pyx_XDECREF(__pyx_8genexpr2__pyx_v_duration);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_7clean(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_11distributed_9scheduler_11WorkerState_6clean[] = " Return a version of this object that is appropriate for serialization ";
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_7clean(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("clean (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_6clean(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_6clean(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("clean", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __pyx_f_11distributed_9scheduler_11WorkerState_clean(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 576, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.WorkerState.clean", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0577: """ Return a version of this object that is appropriate for serialization """
+0578: ws: WorkerState = WorkerState(
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11distributed_9scheduler_WorkerState), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_2); __pyx_t_2 = 0;
+0579: address=self._address,
__pyx_t_1 = __Pyx_PyDict_NewPresized(9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_address, __pyx_v_self->_address) < 0) __PYX_ERR(0, 579, __pyx_L1_error)
+0580: pid=self._pid,
__pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->_pid); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_pid, __pyx_t_2) < 0) __PYX_ERR(0, 579, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0581: name=self._name,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_name, __pyx_v_self->_name) < 0) __PYX_ERR(0, 579, __pyx_L1_error)
+0582: nthreads=self._nthreads,
__pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->_nthreads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_nthreads, __pyx_t_2) < 0) __PYX_ERR(0, 579, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0583: memory_limit=self._memory_limit,
__pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->_memory_limit); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_memory_limit, __pyx_t_2) < 0) __PYX_ERR(0, 579, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0584: local_directory=self._local_directory,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_local_directory, __pyx_v_self->_local_directory) < 0) __PYX_ERR(0, 579, __pyx_L1_error)
+0585: services=self._services,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_services, __pyx_v_self->_services) < 0) __PYX_ERR(0, 579, __pyx_L1_error)
+0586: nanny=self._nanny,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_nanny, __pyx_v_self->_nanny) < 0) __PYX_ERR(0, 579, __pyx_L1_error)
+0587: extra=self._extra,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_extra, __pyx_v_self->_extra) < 0) __PYX_ERR(0, 579, __pyx_L1_error)
0588: )
0589: ts: TaskState
+0590: ws._processing = {ts._key: cost for ts, cost in self._processing.items()}
{ /* enter inner scope */
__pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 590, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = 0;
if (unlikely(__pyx_v_self->_processing == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 590, __pyx_L5_error)
}
__pyx_t_6 = __Pyx_dict_iterator(__pyx_v_self->_processing, 1, __pyx_n_s_items, (&__pyx_t_4), (&__pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 590, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_8 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_4, &__pyx_t_3, &__pyx_t_6, &__pyx_t_7, NULL, __pyx_t_5);
if (unlikely(__pyx_t_8 == 0)) break;
if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 590, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GOTREF(__pyx_t_7);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 590, __pyx_L5_error)
__Pyx_XDECREF_SET(__pyx_8genexpr1__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6));
__pyx_t_6 = 0;
__Pyx_XDECREF_SET(__pyx_8genexpr1__pyx_v_cost, __pyx_t_7);
__pyx_t_7 = 0;
if (unlikely(PyDict_SetItem(__pyx_t_2, (PyObject*)__pyx_8genexpr1__pyx_v_ts->_key, (PyObject*)__pyx_8genexpr1__pyx_v_cost))) __PYX_ERR(0, 590, __pyx_L5_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_8genexpr1__pyx_v_cost); __pyx_8genexpr1__pyx_v_cost = 0;
__Pyx_XDECREF((PyObject *)__pyx_8genexpr1__pyx_v_ts); __pyx_8genexpr1__pyx_v_ts = 0;
goto __pyx_L8_exit_scope;
__pyx_L5_error:;
__Pyx_XDECREF(__pyx_8genexpr1__pyx_v_cost); __pyx_8genexpr1__pyx_v_cost = 0;
__Pyx_XDECREF((PyObject *)__pyx_8genexpr1__pyx_v_ts); __pyx_8genexpr1__pyx_v_ts = 0;
goto __pyx_L1_error;
__pyx_L8_exit_scope:;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_ws->_processing);
__Pyx_DECREF(__pyx_v_ws->_processing);
__pyx_v_ws->_processing = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
+0591: ws._executing = {ts._key: duration for ts, duration in self._executing.items()}
{ /* enter inner scope */
__pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 591, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = 0;
if (unlikely(__pyx_v_self->_executing == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 591, __pyx_L11_error)
}
__pyx_t_7 = __Pyx_dict_iterator(__pyx_v_self->_executing, 1, __pyx_n_s_items, (&__pyx_t_3), (&__pyx_t_5)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 591, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_7;
__pyx_t_7 = 0;
while (1) {
__pyx_t_8 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_4, &__pyx_t_7, &__pyx_t_6, NULL, __pyx_t_5);
if (unlikely(__pyx_t_8 == 0)) break;
if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 591, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 591, __pyx_L11_error)
__Pyx_XDECREF_SET(__pyx_8genexpr2__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_7));
__pyx_t_7 = 0;
__Pyx_XDECREF_SET(__pyx_8genexpr2__pyx_v_duration, __pyx_t_6);
__pyx_t_6 = 0;
if (unlikely(PyDict_SetItem(__pyx_t_2, (PyObject*)__pyx_8genexpr2__pyx_v_ts->_key, (PyObject*)__pyx_8genexpr2__pyx_v_duration))) __PYX_ERR(0, 591, __pyx_L11_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_8genexpr2__pyx_v_duration); __pyx_8genexpr2__pyx_v_duration = 0;
__Pyx_XDECREF((PyObject *)__pyx_8genexpr2__pyx_v_ts); __pyx_8genexpr2__pyx_v_ts = 0;
goto __pyx_L14_exit_scope;
__pyx_L11_error:;
__Pyx_XDECREF(__pyx_8genexpr2__pyx_v_duration); __pyx_8genexpr2__pyx_v_duration = 0;
__Pyx_XDECREF((PyObject *)__pyx_8genexpr2__pyx_v_ts); __pyx_8genexpr2__pyx_v_ts = 0;
goto __pyx_L1_error;
__pyx_L14_exit_scope:;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_ws->_executing);
__Pyx_DECREF(__pyx_v_ws->_executing);
__pyx_v_ws->_executing = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
+0592: return ws
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_ws)); __pyx_r = ((PyObject *)__pyx_v_ws); goto __pyx_L0;
0593:
+0594: def __repr__(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_9__repr__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_8__repr__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_8__repr__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__repr__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler.WorkerState.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0595: return "<Worker %r, name: %s, memory: %d, processing: %d>" % (
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; __Pyx_INCREF(__pyx_kp_u_Worker); __pyx_t_2 += 8; __Pyx_GIVEREF(__pyx_kp_u_Worker); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_Worker); /* … */ __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 9, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
+0596: self._address,
__pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_self->_address), __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 596, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_kp_u_name_2); __pyx_t_2 += 8; __Pyx_GIVEREF(__pyx_kp_u_name_2); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u_name_2);
+0597: self._name,
__pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_v_self->_name), __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_kp_u_memory); __pyx_t_2 += 10; __Pyx_GIVEREF(__pyx_kp_u_memory); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_kp_u_memory);
+0598: len(self._has_what),
__pyx_t_4 = __pyx_v_self->_has_what; __Pyx_INCREF(__pyx_t_4); if (unlikely(__pyx_t_4 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 598, __pyx_L1_error) } __pyx_t_5 = PySet_GET_SIZE(__pyx_t_4); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 598, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_5, 0, ' ', 'd'); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_kp_u_processing); __pyx_t_2 += 14; __Pyx_GIVEREF(__pyx_kp_u_processing); PyTuple_SET_ITEM(__pyx_t_1, 6, __pyx_kp_u_processing);
+0599: len(self._processing),
__pyx_t_4 = __pyx_v_self->_processing; __Pyx_INCREF(__pyx_t_4); if (unlikely(__pyx_t_4 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 599, __pyx_L1_error) } __pyx_t_5 = PyDict_Size(__pyx_t_4); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 599, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_5, 0, ' ', 'd'); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 7, __pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_kp_u__3); __pyx_t_2 += 1; __Pyx_GIVEREF(__pyx_kp_u__3); PyTuple_SET_ITEM(__pyx_t_1, 8, __pyx_kp_u__3);
0600: )
0601:
0602: @ccall
0603: @exceptval(check=False)
+0604: def identity(self) -> dict:
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_11identity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_11distributed_9scheduler_11WorkerState_identity(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self, CYTHON_UNUSED int __pyx_skip_dispatch) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("identity", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("distributed.scheduler.WorkerState.identity", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_11identity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_11identity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("identity (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_10identity(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_10identity(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("identity", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __pyx_f_11distributed_9scheduler_11WorkerState_identity(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 604, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.WorkerState.identity", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0605: return {
__Pyx_XDECREF(__pyx_r);
+0606: "type": "Worker",
__pyx_t_2 = __Pyx_PyDict_NewPresized(12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_type, __pyx_n_u_Worker_2) < 0) __PYX_ERR(0, 606, __pyx_L1_error)
+0607: "id": self._name,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_id, __pyx_v_self->_name) < 0) __PYX_ERR(0, 606, __pyx_L1_error)
+0608: "host": self.host,
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_host); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_host, __pyx_t_3) < 0) __PYX_ERR(0, 606, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0609: "resources": self._resources,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_resources, __pyx_v_self->_resources) < 0) __PYX_ERR(0, 606, __pyx_L1_error)
+0610: "local_directory": self._local_directory,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_local_directory, __pyx_v_self->_local_directory) < 0) __PYX_ERR(0, 606, __pyx_L1_error)
+0611: "name": self._name,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_name, __pyx_v_self->_name) < 0) __PYX_ERR(0, 606, __pyx_L1_error)
+0612: "nthreads": self._nthreads,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_self->_nthreads); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_nthreads, __pyx_t_3) < 0) __PYX_ERR(0, 606, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0613: "memory_limit": self._memory_limit,
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_self->_memory_limit); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_memory_limit, __pyx_t_3) < 0) __PYX_ERR(0, 606, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0614: "last_seen": self._last_seen,
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->_last_seen); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 614, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_last_seen, __pyx_t_3) < 0) __PYX_ERR(0, 606, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0615: "services": self._services,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_services, __pyx_v_self->_services) < 0) __PYX_ERR(0, 606, __pyx_L1_error)
+0616: "metrics": self._metrics,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_metrics, __pyx_v_self->_metrics) < 0) __PYX_ERR(0, 606, __pyx_L1_error)
+0617: "nanny": self._nanny,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_nanny, __pyx_v_self->_nanny) < 0) __PYX_ERR(0, 606, __pyx_L1_error) __pyx_t_1 = __pyx_t_2; __pyx_t_2 = 0;
+0618: **self._extra,
if (unlikely(__pyx_v_self->_extra == Py_None)) {
PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType");
__PYX_ERR(0, 618, __pyx_L1_error)
}
if (unlikely(PyDict_Update(__pyx_t_1, __pyx_v_self->_extra) < 0)) {
if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseMappingExpectedError(__pyx_v_self->_extra);
__PYX_ERR(0, 618, __pyx_L1_error)
}
__pyx_r = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L0;
0619: }
0620:
0621: @property
+0622: def ncores(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_6ncores_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_11WorkerState_6ncores_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_11WorkerState_6ncores___get__(((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_11WorkerState_6ncores___get__(struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("distributed.scheduler.WorkerState.ncores.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0623: warnings.warn("WorkerState.ncores has moved to WorkerState.nthreads")
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_warnings); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_warn); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_kp_u_WorkerState_ncores_has_moved_to) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_u_WorkerState_ncores_has_moved_to); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0624: return self._nthreads
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->_nthreads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 624, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0625:
0626:
0627: @final
0628: @cclass
+0629: class TaskPrefix:
struct __pyx_obj_11distributed_9scheduler_TaskPrefix {
PyObject_HEAD
PyObject *_name;
PyObject *_all_durations;
double _duration_average;
Py_ssize_t _suspicious;
PyObject *_groups;
};
0630: """Collection tracking all tasks within a group
0631:
0632: Keys often have a structure like ``("x-123", 0)``
0633: A group takes the first section, like ``"x"``
0634:
0635: .. attribute:: name: str
0636:
0637: The name of a group of tasks.
0638: For a task like ``("x-123", 0)`` this is the text ``"x"``
0639:
0640: .. attribute:: states: Dict[str, int]
0641:
0642: The number of tasks in each state,
0643: like ``{"memory": 10, "processing": 3, "released": 4, ...}``
0644:
0645: .. attribute:: duration_average: float
0646:
0647: An exponentially weighted moving average duration of all tasks with this prefix
0648:
0649: .. attribute:: suspicious: int
0650:
0651: Numbers of times a task was marked as suspicious with this prefix
0652:
0653:
0654: See Also
0655: --------
0656: TaskGroup
0657: """
0658:
0659: _name: str
0660: _all_durations: object
0661: _duration_average: double
0662: _suspicious: Py_ssize_t
0663: _groups: list
0664:
+0665: def __init__(self, name: str):
/* Python wrapper */
static int __pyx_pw_11distributed_9scheduler_10TaskPrefix_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_11distributed_9scheduler_10TaskPrefix_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_name = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
PyObject* values[1] = {0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 665, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
}
__pyx_v_name = ((PyObject*)values[0]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 665, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.TaskPrefix.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return -1;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_name), (&PyUnicode_Type), 1, "name", 1))) __PYX_ERR(0, 665, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_10TaskPrefix___init__(((struct __pyx_obj_11distributed_9scheduler_TaskPrefix *)__pyx_v_self), __pyx_v_name);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = -1;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static int __pyx_pf_11distributed_9scheduler_10TaskPrefix___init__(struct __pyx_obj_11distributed_9scheduler_TaskPrefix *__pyx_v_self, PyObject *__pyx_v_name) {
PyObject *__pyx_v_task_durations = NULL;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__", 0);
/* … */
/* function exit code */
__pyx_r = 0;
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("distributed.scheduler.TaskPrefix.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = -1;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_task_durations);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0666: self._name = name
__Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); __Pyx_GOTREF(__pyx_v_self->_name); __Pyx_DECREF(__pyx_v_self->_name); __pyx_v_self->_name = __pyx_v_name;
+0667: self._groups = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->_groups); __Pyx_DECREF(__pyx_v_self->_groups); __pyx_v_self->_groups = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
0668:
0669: # store timings for each prefix-action
+0670: self._all_durations = defaultdict(float)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_defaultdict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)(&PyFloat_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)(&PyFloat_Type))); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->_all_durations); __Pyx_DECREF(__pyx_v_self->_all_durations); __pyx_v_self->_all_durations = __pyx_t_1; __pyx_t_1 = 0;
0671:
+0672: task_durations = dask.config.get("distributed.scheduler.default-task-durations")
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_dask); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_config); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_u_distributed_scheduler_default_ta) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_u_distributed_scheduler_default_ta); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_task_durations = __pyx_t_1; __pyx_t_1 = 0;
+0673: if self._name in task_durations:
__pyx_t_4 = (__Pyx_PySequence_ContainsTF(__pyx_v_self->_name, __pyx_v_task_durations, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 673, __pyx_L1_error) __pyx_t_5 = (__pyx_t_4 != 0); if (__pyx_t_5) { /* … */ goto __pyx_L3; }
+0674: self._duration_average = parse_timedelta(task_durations[self._name])
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_parse_timedelta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_v_task_durations, __pyx_v_self->_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_6, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 674, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_self->_duration_average = __pyx_t_7;
0675: else:
+0676: self._duration_average = -1
/*else*/ {
__pyx_v_self->_duration_average = -1.0;
}
__pyx_L3:;
+0677: self._suspicious = 0
__pyx_v_self->_suspicious = 0;
0678:
0679: @property
+0680: def name(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_4name_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_10TaskPrefix_4name___get__(((struct __pyx_obj_11distributed_9scheduler_TaskPrefix *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_10TaskPrefix_4name___get__(struct __pyx_obj_11distributed_9scheduler_TaskPrefix *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0681: return self._name
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_name); __pyx_r = __pyx_v_self->_name; goto __pyx_L0;
0682:
0683: @property
+0684: def all_durations(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_13all_durations_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_13all_durations_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_10TaskPrefix_13all_durations___get__(((struct __pyx_obj_11distributed_9scheduler_TaskPrefix *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_10TaskPrefix_13all_durations___get__(struct __pyx_obj_11distributed_9scheduler_TaskPrefix *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0685: return self._all_durations
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_all_durations); __pyx_r = __pyx_v_self->_all_durations; goto __pyx_L0;
0686:
0687: @property
+0688: def duration_average(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_16duration_average_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_16duration_average_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_10TaskPrefix_16duration_average___get__(((struct __pyx_obj_11distributed_9scheduler_TaskPrefix *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_10TaskPrefix_16duration_average___get__(struct __pyx_obj_11distributed_9scheduler_TaskPrefix *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.TaskPrefix.duration_average.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0689: return self._duration_average
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->_duration_average); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0690:
0691: @property
+0692: def suspicious(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_10suspicious_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_10suspicious_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_10TaskPrefix_10suspicious___get__(((struct __pyx_obj_11distributed_9scheduler_TaskPrefix *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_10TaskPrefix_10suspicious___get__(struct __pyx_obj_11distributed_9scheduler_TaskPrefix *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.TaskPrefix.suspicious.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0693: return self._suspicious
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->_suspicious); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0694:
0695: @property
+0696: def groups(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_6groups_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_6groups_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_10TaskPrefix_6groups___get__(((struct __pyx_obj_11distributed_9scheduler_TaskPrefix *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_10TaskPrefix_6groups___get__(struct __pyx_obj_11distributed_9scheduler_TaskPrefix *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0697: return self._groups
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_groups); __pyx_r = __pyx_v_self->_groups; goto __pyx_L0;
0698:
0699: @property
+0700: def states(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_6states_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_6states_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_10TaskPrefix_6states___get__(((struct __pyx_obj_11distributed_9scheduler_TaskPrefix *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_10TaskPrefix_6states___get__(struct __pyx_obj_11distributed_9scheduler_TaskPrefix *__pyx_v_self) {
struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_8genexpr3__pyx_v_tg = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("distributed.scheduler.TaskPrefix.states.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_8genexpr3__pyx_v_tg);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0701: tg: TaskGroup
+0702: return merge_with(sum, [tg._states for tg in self._groups])
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_merge_with); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { /* enter inner scope */ __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 702, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_self->_groups == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 702, __pyx_L5_error) } __pyx_t_4 = __pyx_v_self->_groups; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; for (;;) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 702, __pyx_L5_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_6); #endif if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskGroup))))) __PYX_ERR(0, 702, __pyx_L5_error) __Pyx_XDECREF_SET(__pyx_8genexpr3__pyx_v_tg, ((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)__pyx_t_6)); __pyx_t_6 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_8genexpr3__pyx_v_tg->_states))) __PYX_ERR(0, 702, __pyx_L5_error) } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF((PyObject *)__pyx_8genexpr3__pyx_v_tg); __pyx_8genexpr3__pyx_v_tg = 0; goto __pyx_L8_exit_scope; __pyx_L5_error:; __Pyx_XDECREF((PyObject *)__pyx_8genexpr3__pyx_v_tg); __pyx_8genexpr3__pyx_v_tg = 0; goto __pyx_L1_error; __pyx_L8_exit_scope:; } /* exit inner scope */ __pyx_t_4 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_builtin_sum, __pyx_t_3}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 702, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_builtin_sum, __pyx_t_3}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 702, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_6 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_builtin_sum); __Pyx_GIVEREF(__pyx_builtin_sum); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_7, __pyx_builtin_sum); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_7, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0703:
0704: @property
+0705: def active(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_6active_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_6active_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_10TaskPrefix_6active___get__(((struct __pyx_obj_11distributed_9scheduler_TaskPrefix *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_10TaskPrefix_6active___get__(struct __pyx_obj_11distributed_9scheduler_TaskPrefix *__pyx_v_self) {
struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_8genexpr4__pyx_v_tg = NULL;
PyObject *__pyx_8genexpr5__pyx_v_k = NULL;
PyObject *__pyx_8genexpr5__pyx_v_v = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_AddTraceback("distributed.scheduler.TaskPrefix.active.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_8genexpr4__pyx_v_tg);
__Pyx_XDECREF(__pyx_8genexpr5__pyx_v_k);
__Pyx_XDECREF(__pyx_8genexpr5__pyx_v_v);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0706: tg: TaskGroup
+0707: return [
__Pyx_XDECREF(__pyx_r); { /* enter inner scope */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 707, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1);
+0708: tg
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_8genexpr4__pyx_v_tg))) __PYX_ERR(0, 707, __pyx_L5_error)
+0709: for tg in self._groups
if (unlikely(__pyx_v_self->_groups == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 709, __pyx_L5_error)
}
__pyx_t_2 = __pyx_v_self->_groups; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 709, __pyx_L5_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 709, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskGroup))))) __PYX_ERR(0, 709, __pyx_L5_error)
__Pyx_XDECREF_SET(__pyx_8genexpr4__pyx_v_tg, ((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)__pyx_t_4));
__pyx_t_4 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF((PyObject *)__pyx_8genexpr4__pyx_v_tg); __pyx_8genexpr4__pyx_v_tg = 0;
goto __pyx_L16_exit_scope;
__pyx_L5_error:;
__Pyx_XDECREF((PyObject *)__pyx_8genexpr4__pyx_v_tg); __pyx_8genexpr4__pyx_v_tg = 0;
goto __pyx_L1_error;
__pyx_L16_exit_scope:;
} /* exit inner scope */
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
+0710: if any([v != 0 for k, v in tg._states.items() if k != "forgotten"])
{ /* enter inner scope */
__pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 710, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_6 = 0;
if (unlikely(__pyx_8genexpr4__pyx_v_tg->_states == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 710, __pyx_L11_error)
}
__pyx_t_9 = __Pyx_dict_iterator(__pyx_8genexpr4__pyx_v_tg->_states, 1, __pyx_n_s_items, (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 710, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_5);
__pyx_t_5 = __pyx_t_9;
__pyx_t_9 = 0;
while (1) {
__pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_7, &__pyx_t_6, &__pyx_t_9, &__pyx_t_10, NULL, __pyx_t_8);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 710, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_GOTREF(__pyx_t_10);
__Pyx_XDECREF_SET(__pyx_8genexpr5__pyx_v_k, __pyx_t_9);
__pyx_t_9 = 0;
__Pyx_XDECREF_SET(__pyx_8genexpr5__pyx_v_v, __pyx_t_10);
__pyx_t_10 = 0;
__pyx_t_12 = (__Pyx_PyUnicode_Equals(__pyx_8genexpr5__pyx_v_k, __pyx_n_u_forgotten, Py_NE)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 710, __pyx_L11_error)
if (__pyx_t_12) {
__pyx_t_10 = __Pyx_PyInt_NeObjC(__pyx_8genexpr5__pyx_v_v, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 710, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_10);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_10))) __PYX_ERR(0, 710, __pyx_L11_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
}
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_8genexpr5__pyx_v_k); __pyx_8genexpr5__pyx_v_k = 0;
__Pyx_XDECREF(__pyx_8genexpr5__pyx_v_v); __pyx_8genexpr5__pyx_v_v = 0;
goto __pyx_L15_exit_scope;
__pyx_L11_error:;
__Pyx_XDECREF(__pyx_8genexpr5__pyx_v_k); __pyx_8genexpr5__pyx_v_k = 0;
__Pyx_XDECREF(__pyx_8genexpr5__pyx_v_v); __pyx_8genexpr5__pyx_v_v = 0;
goto __pyx_L5_error;
__pyx_L15_exit_scope:;
} /* exit inner scope */
__pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_any, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 710, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 710, __pyx_L5_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (__pyx_t_12) {
/* … */
}
0711: ]
0712:
0713: @property
+0714: def active_states(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_13active_states_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_13active_states_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_10TaskPrefix_13active_states___get__(((struct __pyx_obj_11distributed_9scheduler_TaskPrefix *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_10TaskPrefix_13active_states___get__(struct __pyx_obj_11distributed_9scheduler_TaskPrefix *__pyx_v_self) {
struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_8genexpr6__pyx_v_tg = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler.TaskPrefix.active_states.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_8genexpr6__pyx_v_tg);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0715: tg: TaskGroup
+0716: return merge_with(sum, [tg._states for tg in self.active])
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_merge_with); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { /* enter inner scope */ __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 716, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_active); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 716, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_4); if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { __pyx_t_5 = __pyx_t_4; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 716, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 716, __pyx_L5_error) } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; for (;;) { if (likely(!__pyx_t_7)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 716, __pyx_L5_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 716, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 716, __pyx_L5_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 716, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_4); #endif } } else { __pyx_t_4 = __pyx_t_7(__pyx_t_5); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 716, __pyx_L5_error) } break; } __Pyx_GOTREF(__pyx_t_4); } if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskGroup))))) __PYX_ERR(0, 716, __pyx_L5_error) __Pyx_XDECREF_SET(__pyx_8genexpr6__pyx_v_tg, ((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)__pyx_t_4)); __pyx_t_4 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_8genexpr6__pyx_v_tg->_states))) __PYX_ERR(0, 716, __pyx_L5_error) } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF((PyObject *)__pyx_8genexpr6__pyx_v_tg); __pyx_8genexpr6__pyx_v_tg = 0; goto __pyx_L8_exit_scope; __pyx_L5_error:; __Pyx_XDECREF((PyObject *)__pyx_8genexpr6__pyx_v_tg); __pyx_8genexpr6__pyx_v_tg = 0; goto __pyx_L1_error; __pyx_L8_exit_scope:; } /* exit inner scope */ __pyx_t_5 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_builtin_sum, __pyx_t_3}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 716, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_builtin_sum, __pyx_t_3}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 716, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_4 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_builtin_sum); __Pyx_GIVEREF(__pyx_builtin_sum); PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_8, __pyx_builtin_sum); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_8, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0717:
+0718: def __repr__(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_3__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_3__repr__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_10TaskPrefix_2__repr__(((struct __pyx_obj_11distributed_9scheduler_TaskPrefix *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_10TaskPrefix_8__repr___2generator25(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
static PyObject *__pyx_pf_11distributed_9scheduler_10TaskPrefix_2__repr__(struct __pyx_obj_11distributed_9scheduler_TaskPrefix *__pyx_v_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct____repr__ *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__repr__", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct____repr__ *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct____repr__(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct____repr__, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct____repr__ *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 718, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("distributed.scheduler.TaskPrefix.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct____repr__ {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler_TaskPrefix *__pyx_v_self;
};
+0719: return (
__Pyx_XDECREF(__pyx_r);
0720: "<"
+0721: + self._name
__pyx_t_1 = __Pyx_PyUnicode_ConcatSafe(__pyx_kp_u__5, __pyx_cur_scope->__pyx_v_self->_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
+0722: + ": "
__pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_t_1, __pyx_kp_u__4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0723: + ", ".join(
__pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyUnicode_Join(__pyx_kp_u__6, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0724: "%s: %d" % (k, v) for (k, v) in sorted(self.states.items()) if v
static PyObject *__pyx_pf_11distributed_9scheduler_10TaskPrefix_8__repr___genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_1_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_1_genexpr *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_1_genexpr(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_1_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_1_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 724, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct____repr__ *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_10TaskPrefix_8__repr___2generator25, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_repr___locals_genexpr, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 724, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.TaskPrefix.__repr__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_10TaskPrefix_8__repr___2generator25(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 724, __pyx_L1_error)
__pyx_r = PyList_New(0); if (unlikely(!__pyx_r)) __PYX_ERR(0, 724, __pyx_L1_error)
__Pyx_GOTREF(__pyx_r);
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 724, __pyx_L1_error) }
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self), __pyx_n_s_states); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 724, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_items); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 724, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_4, function);
}
}
__pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 724, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PySequence_List(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 724, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_1 = ((PyObject*)__pyx_t_4);
__pyx_t_4 = 0;
__pyx_t_5 = PyList_Sort(__pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 724, __pyx_L1_error)
if (unlikely(__pyx_t_1 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 724, __pyx_L1_error)
}
__pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
for (;;) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 724, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 724, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
PyObject* sequence = __pyx_t_1;
Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
__PYX_ERR(0, 724, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__pyx_t_2 = PyTuple_GET_ITEM(sequence, 0);
__pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);
} else {
__pyx_t_2 = PyList_GET_ITEM(sequence, 0);
__pyx_t_3 = PyList_GET_ITEM(sequence, 1);
}
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(__pyx_t_3);
#else
__pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 724, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 724, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
} else {
Py_ssize_t index = -1;
__pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 724, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed;
__Pyx_GOTREF(__pyx_t_2);
index = 1; __pyx_t_3 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed;
__Pyx_GOTREF(__pyx_t_3);
if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 724, __pyx_L1_error)
__pyx_t_8 = NULL;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
goto __pyx_L7_unpacking_done;
__pyx_L6_unpacking_failed:;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
__PYX_ERR(0, 724, __pyx_L1_error)
__pyx_L7_unpacking_done:;
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_k);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_k, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_v);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_v, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_v); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 724, __pyx_L1_error)
if (__pyx_t_9) {
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 724, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_10 = 0;
__pyx_t_11 = 127;
__pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_cur_scope->__pyx_v_k), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 724, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_11 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_11) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_11;
__pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
__pyx_t_3 = 0;
__Pyx_INCREF(__pyx_kp_u__4);
__pyx_t_10 += 2;
__Pyx_GIVEREF(__pyx_kp_u__4);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u__4);
__pyx_t_3 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_cur_scope->__pyx_v_v), __pyx_n_u_d); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 724, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_11 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_11) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_11;
__pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_3);
__pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_1, 3, __pyx_t_10, __pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 724, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_r, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 724, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_1 = __pyx_pf_11distributed_9scheduler_10TaskPrefix_8__repr___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 724, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_1_genexpr {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct____repr__ *__pyx_outer_scope;
PyObject *__pyx_v_k;
PyObject *__pyx_v_v;
};
0725: )
+0726: + ">"
__pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_t_3, __pyx_kp_u__3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0727: )
0728:
0729: @property
+0730: def nbytes_in_memory(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_16nbytes_in_memory_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_16nbytes_in_memory_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_10TaskPrefix_16nbytes_in_memory___get__(((struct __pyx_obj_11distributed_9scheduler_TaskPrefix *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_10TaskPrefix_16nbytes_in_memory___get__(struct __pyx_obj_11distributed_9scheduler_TaskPrefix *__pyx_v_self) {
struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_8genexpr8__pyx_v_tg = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler.TaskPrefix.nbytes_in_memory.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_8genexpr8__pyx_v_tg);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0731: tg: TaskGroup
+0732: return sum([tg._nbytes_in_memory for tg in self._groups])
__Pyx_XDECREF(__pyx_r); { /* enter inner scope */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_self->_groups == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 732, __pyx_L5_error) } __pyx_t_2 = __pyx_v_self->_groups; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; for (;;) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 732, __pyx_L5_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 732, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_4); #endif if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskGroup))))) __PYX_ERR(0, 732, __pyx_L5_error) __Pyx_XDECREF_SET(__pyx_8genexpr8__pyx_v_tg, ((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_t_4 = PyInt_FromSsize_t(__pyx_8genexpr8__pyx_v_tg->_nbytes_in_memory); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 732, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 732, __pyx_L5_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF((PyObject *)__pyx_8genexpr8__pyx_v_tg); __pyx_8genexpr8__pyx_v_tg = 0; goto __pyx_L8_exit_scope; __pyx_L5_error:; __Pyx_XDECREF((PyObject *)__pyx_8genexpr8__pyx_v_tg); __pyx_8genexpr8__pyx_v_tg = 0; goto __pyx_L1_error; __pyx_L8_exit_scope:; } /* exit inner scope */ __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
0733:
0734: @property
+0735: def nbytes_total(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_12nbytes_total_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_12nbytes_total_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_10TaskPrefix_12nbytes_total___get__(((struct __pyx_obj_11distributed_9scheduler_TaskPrefix *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_10TaskPrefix_12nbytes_total___get__(struct __pyx_obj_11distributed_9scheduler_TaskPrefix *__pyx_v_self) {
struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_8genexpr9__pyx_v_tg = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler.TaskPrefix.nbytes_total.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_8genexpr9__pyx_v_tg);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0736: tg: TaskGroup
+0737: return sum([tg._nbytes_total for tg in self._groups])
__Pyx_XDECREF(__pyx_r); { /* enter inner scope */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 737, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_self->_groups == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 737, __pyx_L5_error) } __pyx_t_2 = __pyx_v_self->_groups; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; for (;;) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 737, __pyx_L5_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 737, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_4); #endif if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskGroup))))) __PYX_ERR(0, 737, __pyx_L5_error) __Pyx_XDECREF_SET(__pyx_8genexpr9__pyx_v_tg, ((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_t_4 = PyInt_FromSsize_t(__pyx_8genexpr9__pyx_v_tg->_nbytes_total); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 737, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 737, __pyx_L5_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF((PyObject *)__pyx_8genexpr9__pyx_v_tg); __pyx_8genexpr9__pyx_v_tg = 0; goto __pyx_L8_exit_scope; __pyx_L5_error:; __Pyx_XDECREF((PyObject *)__pyx_8genexpr9__pyx_v_tg); __pyx_8genexpr9__pyx_v_tg = 0; goto __pyx_L1_error; __pyx_L8_exit_scope:; } /* exit inner scope */ __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
0738:
+0739: def __len__(self):
/* Python wrapper */
static Py_ssize_t __pyx_pw_11distributed_9scheduler_10TaskPrefix_5__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_11distributed_9scheduler_10TaskPrefix_5__len__(PyObject *__pyx_v_self) {
Py_ssize_t __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_10TaskPrefix_4__len__(((struct __pyx_obj_11distributed_9scheduler_TaskPrefix *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static Py_ssize_t __pyx_pf_11distributed_9scheduler_10TaskPrefix_4__len__(struct __pyx_obj_11distributed_9scheduler_TaskPrefix *__pyx_v_self) {
Py_ssize_t __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__len__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("distributed.scheduler.TaskPrefix.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = -1;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0740: return sum(map(len, self._groups))
__pyx_t_1 = __Pyx_GetBuiltinName(__pyx_n_s_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 740, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 740, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_INCREF(__pyx_v_self->_groups); __Pyx_GIVEREF(__pyx_v_self->_groups); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->_groups); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_map, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 740, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 740, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_3 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 740, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; goto __pyx_L0;
0741:
0742: @property
+0743: def duration(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_8duration_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_8duration_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_10TaskPrefix_8duration___get__(((struct __pyx_obj_11distributed_9scheduler_TaskPrefix *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_10TaskPrefix_8duration___get__(struct __pyx_obj_11distributed_9scheduler_TaskPrefix *__pyx_v_self) {
struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_9genexpr10__pyx_v_tg = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler.TaskPrefix.duration.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr10__pyx_v_tg);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0744: tg: TaskGroup
+0745: return sum([tg._duration for tg in self._groups])
__Pyx_XDECREF(__pyx_r); { /* enter inner scope */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 745, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_self->_groups == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 745, __pyx_L5_error) } __pyx_t_2 = __pyx_v_self->_groups; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; for (;;) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 745, __pyx_L5_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 745, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_4); #endif if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskGroup))))) __PYX_ERR(0, 745, __pyx_L5_error) __Pyx_XDECREF_SET(__pyx_9genexpr10__pyx_v_tg, ((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)__pyx_t_4)); __pyx_t_4 = 0; __pyx_t_4 = PyFloat_FromDouble(__pyx_9genexpr10__pyx_v_tg->_duration); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 745, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 745, __pyx_L5_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF((PyObject *)__pyx_9genexpr10__pyx_v_tg); __pyx_9genexpr10__pyx_v_tg = 0; goto __pyx_L8_exit_scope; __pyx_L5_error:; __Pyx_XDECREF((PyObject *)__pyx_9genexpr10__pyx_v_tg); __pyx_9genexpr10__pyx_v_tg = 0; goto __pyx_L1_error; __pyx_L8_exit_scope:; } /* exit inner scope */ __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
0746:
0747: @property
+0748: def types(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_5types_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_10TaskPrefix_5types_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_10TaskPrefix_5types___get__(((struct __pyx_obj_11distributed_9scheduler_TaskPrefix *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_10TaskPrefix_5types___get__(struct __pyx_obj_11distributed_9scheduler_TaskPrefix *__pyx_v_self) {
struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_9genexpr11__pyx_v_tg = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler.TaskPrefix.types.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr11__pyx_v_tg);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0749: tg: TaskGroup
+0750: return set().union(*[tg._types for tg in self._groups])
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_union); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; { /* enter inner scope */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 750, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_self->_groups == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 750, __pyx_L5_error) } __pyx_t_3 = __pyx_v_self->_groups; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; for (;;) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 750, __pyx_L5_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 750, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_5); #endif if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_TaskGroup))))) __PYX_ERR(0, 750, __pyx_L5_error) __Pyx_XDECREF_SET(__pyx_9genexpr11__pyx_v_tg, ((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)__pyx_t_5)); __pyx_t_5 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_9genexpr11__pyx_v_tg->_types))) __PYX_ERR(0, 750, __pyx_L5_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF((PyObject *)__pyx_9genexpr11__pyx_v_tg); __pyx_9genexpr11__pyx_v_tg = 0; goto __pyx_L8_exit_scope; __pyx_L5_error:; __Pyx_XDECREF((PyObject *)__pyx_9genexpr11__pyx_v_tg); __pyx_9genexpr11__pyx_v_tg = 0; goto __pyx_L1_error; __pyx_L8_exit_scope:; } /* exit inner scope */ __pyx_t_3 = PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0751:
0752:
0753: @final
0754: @cclass
+0755: class TaskGroup:
struct __pyx_obj_11distributed_9scheduler_TaskGroup {
PyObject_HEAD
struct __pyx_vtabstruct_11distributed_9scheduler_TaskGroup *__pyx_vtab;
PyObject *_name;
struct __pyx_obj_11distributed_9scheduler_TaskPrefix *_prefix;
PyObject *_states;
PyObject *_dependencies;
Py_ssize_t _nbytes_total;
Py_ssize_t _nbytes_in_memory;
double _duration;
PyObject *_types;
};
/* … */
struct __pyx_vtabstruct_11distributed_9scheduler_TaskGroup {
PyObject *(*add)(struct __pyx_obj_11distributed_9scheduler_TaskGroup *, PyObject *, int __pyx_skip_dispatch);
};
static struct __pyx_vtabstruct_11distributed_9scheduler_TaskGroup *__pyx_vtabptr_11distributed_9scheduler_TaskGroup;
static PyObject *__pyx_f_11distributed_9scheduler_9TaskGroup_add(struct __pyx_obj_11distributed_9scheduler_TaskGroup *, PyObject *, int __pyx_skip_dispatch);
0756: """Collection tracking all tasks within a group
0757:
0758: Keys often have a structure like ``("x-123", 0)``
0759: A group takes the first section, like ``"x-123"``
0760:
0761: .. attribute:: name: str
0762:
0763: The name of a group of tasks.
0764: For a task like ``("x-123", 0)`` this is the text ``"x-123"``
0765:
0766: .. attribute:: states: Dict[str, int]
0767:
0768: The number of tasks in each state,
0769: like ``{"memory": 10, "processing": 3, "released": 4, ...}``
0770:
0771: .. attribute:: dependencies: Set[TaskGroup]
0772:
0773: The other TaskGroups on which this one depends
0774:
0775: .. attribute:: nbytes_total: int
0776:
0777: The total number of bytes that this task group has produced
0778:
0779: .. attribute:: nbytes_in_memory: int
0780:
0781: The number of bytes currently stored by this TaskGroup
0782:
0783: .. attribute:: duration: float
0784:
0785: The total amount of time spent on all tasks in this TaskGroup
0786:
0787: .. attribute:: types: Set[str]
0788:
0789: The result types of this TaskGroup
0790:
0791: See also
0792: --------
0793: TaskPrefix
0794: """
0795:
0796: _name: str
0797: _prefix: TaskPrefix
0798: _states: dict
0799: _dependencies: set
0800: _nbytes_total: Py_ssize_t
0801: _nbytes_in_memory: Py_ssize_t
0802: _duration: double
0803: _types: set
0804:
+0805: def __init__(self, name: str):
/* Python wrapper */
static int __pyx_pw_11distributed_9scheduler_9TaskGroup_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_11distributed_9scheduler_9TaskGroup_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_name = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
PyObject* values[1] = {0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 805, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
}
__pyx_v_name = ((PyObject*)values[0]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 805, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.TaskGroup.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return -1;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_name), (&PyUnicode_Type), 1, "name", 1))) __PYX_ERR(0, 805, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskGroup___init__(((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)__pyx_v_self), __pyx_v_name);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = -1;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static int __pyx_pf_11distributed_9scheduler_9TaskGroup___init__(struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_v_self, PyObject *__pyx_v_name) {
PyObject *__pyx_9genexpr12__pyx_v_state = NULL;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__", 0);
/* … */
/* function exit code */
__pyx_r = 0;
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("distributed.scheduler.TaskGroup.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = -1;
__pyx_L0:;
__Pyx_XDECREF(__pyx_9genexpr12__pyx_v_state);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0806: self._name = name
__Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); __Pyx_GOTREF(__pyx_v_self->_name); __Pyx_DECREF(__pyx_v_self->_name); __pyx_v_self->_name = __pyx_v_name;
+0807: self._prefix = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_self->_prefix); __Pyx_DECREF(((PyObject *)__pyx_v_self->_prefix)); __pyx_v_self->_prefix = ((struct __pyx_obj_11distributed_9scheduler_TaskPrefix *)Py_None);
+0808: self._states = {state: 0 for state in ALL_TASK_STATES}
{ /* enter inner scope */
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 808, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = 0;
__pyx_t_6 = __Pyx_set_iterator(__pyx_v_11distributed_9scheduler_ALL_TASK_STATES, 1, (&__pyx_t_4), (&__pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 808, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_2);
__pyx_t_2 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_7 = __Pyx_set_iter_next(__pyx_t_2, __pyx_t_4, &__pyx_t_3, &__pyx_t_6, __pyx_t_5);
if (unlikely(__pyx_t_7 == 0)) break;
if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 808, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_9genexpr12__pyx_v_state, __pyx_t_6);
__pyx_t_6 = 0;
if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_9genexpr12__pyx_v_state, (PyObject*)__pyx_int_0))) __PYX_ERR(0, 808, __pyx_L5_error)
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_9genexpr12__pyx_v_state); __pyx_9genexpr12__pyx_v_state = 0;
goto __pyx_L8_exit_scope;
__pyx_L5_error:;
__Pyx_XDECREF(__pyx_9genexpr12__pyx_v_state); __pyx_9genexpr12__pyx_v_state = 0;
goto __pyx_L1_error;
__pyx_L8_exit_scope:;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_v_self->_states);
__Pyx_DECREF(__pyx_v_self->_states);
__pyx_v_self->_states = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+0809: self._states["forgotten"] = 0
if (unlikely(__pyx_v_self->_states == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 809, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_self->_states, __pyx_n_u_forgotten, __pyx_int_0) < 0)) __PYX_ERR(0, 809, __pyx_L1_error)
+0810: self._dependencies = set()
__pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->_dependencies); __Pyx_DECREF(__pyx_v_self->_dependencies); __pyx_v_self->_dependencies = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0811: self._nbytes_total = 0
__pyx_v_self->_nbytes_total = 0;
+0812: self._nbytes_in_memory = 0
__pyx_v_self->_nbytes_in_memory = 0;
+0813: self._duration = 0
__pyx_v_self->_duration = 0.0;
+0814: self._types = set()
__pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->_types); __Pyx_DECREF(__pyx_v_self->_types); __pyx_v_self->_types = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
0815:
0816: @property
+0817: def name(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskGroup_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskGroup_4name_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskGroup_4name___get__(((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskGroup_4name___get__(struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0818: return self._name
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_name); __pyx_r = __pyx_v_self->_name; goto __pyx_L0;
0819:
0820: @property
+0821: def prefix(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskGroup_6prefix_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskGroup_6prefix_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskGroup_6prefix___get__(((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskGroup_6prefix___get__(struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0822: return self._prefix
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self->_prefix)); __pyx_r = ((PyObject *)__pyx_v_self->_prefix); goto __pyx_L0;
0823:
0824: @property
+0825: def states(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskGroup_6states_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskGroup_6states_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskGroup_6states___get__(((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskGroup_6states___get__(struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0826: return self._states
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_states); __pyx_r = __pyx_v_self->_states; goto __pyx_L0;
0827:
0828: @property
+0829: def dependencies(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskGroup_12dependencies_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskGroup_12dependencies_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskGroup_12dependencies___get__(((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskGroup_12dependencies___get__(struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0830: return self._dependencies
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_dependencies); __pyx_r = __pyx_v_self->_dependencies; goto __pyx_L0;
0831:
0832: @property
+0833: def nbytes_total(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskGroup_12nbytes_total_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskGroup_12nbytes_total_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskGroup_12nbytes_total___get__(((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskGroup_12nbytes_total___get__(struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.TaskGroup.nbytes_total.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0834: return self._nbytes_total
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->_nbytes_total); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0835:
0836: @property
+0837: def nbytes_in_memory(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskGroup_16nbytes_in_memory_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskGroup_16nbytes_in_memory_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskGroup_16nbytes_in_memory___get__(((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskGroup_16nbytes_in_memory___get__(struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.TaskGroup.nbytes_in_memory.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0838: return self._nbytes_in_memory
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->_nbytes_in_memory); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 838, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0839:
0840: @property
+0841: def duration(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskGroup_8duration_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskGroup_8duration_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskGroup_8duration___get__(((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskGroup_8duration___get__(struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.TaskGroup.duration.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0842: return self._duration
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->_duration); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0843:
0844: @property
+0845: def types(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskGroup_5types_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskGroup_5types_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskGroup_5types___get__(((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskGroup_5types___get__(struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0846: return self._types
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_types); __pyx_r = __pyx_v_self->_types; goto __pyx_L0;
0847:
0848: @ccall
+0849: def add(self, o):
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskGroup_3add(PyObject *__pyx_v_self, PyObject *__pyx_v_o); /*proto*/
static PyObject *__pyx_f_11distributed_9scheduler_9TaskGroup_add(struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_v_self, PyObject *__pyx_v_o, CYTHON_UNUSED int __pyx_skip_dispatch) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("add", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler.TaskGroup.add", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskGroup_3add(PyObject *__pyx_v_self, PyObject *__pyx_v_o); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskGroup_3add(PyObject *__pyx_v_self, PyObject *__pyx_v_o) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("add (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskGroup_2add(((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)__pyx_v_self), ((PyObject *)__pyx_v_o));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskGroup_2add(struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_v_self, PyObject *__pyx_v_o) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("add", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __pyx_f_11distributed_9scheduler_9TaskGroup_add(__pyx_v_self, __pyx_v_o, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 849, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.TaskGroup.add", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0850: ts: TaskState = o
if (!(likely(((__pyx_v_o) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_o, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 850, __pyx_L1_error) __pyx_t_1 = __pyx_v_o; __Pyx_INCREF(__pyx_t_1); __pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1); __pyx_t_1 = 0;
+0851: self._states[ts._state] += 1
if (unlikely(__pyx_v_self->_states == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 851, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_self->_states);
__pyx_t_2 = __pyx_v_self->_states;
__Pyx_INCREF(__pyx_v_ts->_state);
__pyx_t_3 = __pyx_v_ts->_state;
if (unlikely(__pyx_t_2 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 851, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 851, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 851, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(__pyx_t_2 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 851, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_t_4) < 0)) __PYX_ERR(0, 851, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0852: ts._group = self
__Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_ts->_group); __Pyx_DECREF(((PyObject *)__pyx_v_ts->_group)); __pyx_v_ts->_group = __pyx_v_self;
0853:
+0854: def __repr__(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskGroup_5__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskGroup_5__repr__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskGroup_4__repr__(((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9TaskGroup_8__repr___2generator26(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskGroup_4__repr__(struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_v_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_2___repr__ *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__repr__", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_2___repr__ *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_2___repr__(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_2___repr__, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_2___repr__ *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 854, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler.TaskGroup.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_2___repr__ {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_v_self;
};
+0855: return (
__Pyx_XDECREF(__pyx_r);
0856: "<"
+0857: + (self._name or "no-group")
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_self->_name); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 857, __pyx_L1_error) if (!__pyx_t_2) { } else { __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self->_name); __pyx_t_1 = __pyx_cur_scope->__pyx_v_self->_name; goto __pyx_L3_bool_binop_done; } __Pyx_INCREF(__pyx_kp_u_no_group); __pyx_t_1 = __pyx_kp_u_no_group; __pyx_L3_bool_binop_done:; __pyx_t_3 = PyNumber_Add(__pyx_kp_u__5, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0858: + ": "
__pyx_t_1 = PyNumber_Add(__pyx_t_3, __pyx_kp_u__4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0859: + ", ".join(
__pyx_t_4 = __Pyx_Generator_Next(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyUnicode_Join(__pyx_kp_u__6, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Add(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0860: "%s: %d" % (k, v) for (k, v) in sorted(self._states.items()) if v
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskGroup_8__repr___genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_3_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_3_genexpr *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_3_genexpr(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_3_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_3_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 860, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_2___repr__ *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9TaskGroup_8__repr___2generator26, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_repr___locals_genexpr, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 860, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.TaskGroup.__repr__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9TaskGroup_8__repr___2generator26(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 860, __pyx_L1_error)
__pyx_r = PyList_New(0); if (unlikely(!__pyx_r)) __PYX_ERR(0, 860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_r);
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 860, __pyx_L1_error) }
if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self->_states == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 860, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_Items(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self->_states); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PySequence_List(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_1 = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
__pyx_t_4 = PyList_Sort(__pyx_t_1); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 860, __pyx_L1_error)
if (unlikely(__pyx_t_1 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 860, __pyx_L1_error)
}
__pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
for (;;) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 860, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
PyObject* sequence = __pyx_t_1;
Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
__PYX_ERR(0, 860, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__pyx_t_2 = PyTuple_GET_ITEM(sequence, 0);
__pyx_t_6 = PyTuple_GET_ITEM(sequence, 1);
} else {
__pyx_t_2 = PyList_GET_ITEM(sequence, 0);
__pyx_t_6 = PyList_GET_ITEM(sequence, 1);
}
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(__pyx_t_6);
#else
__pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
} else {
Py_ssize_t index = -1;
__pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed;
__Pyx_GOTREF(__pyx_t_2);
index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed;
__Pyx_GOTREF(__pyx_t_6);
if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 860, __pyx_L1_error)
__pyx_t_8 = NULL;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
goto __pyx_L7_unpacking_done;
__pyx_L6_unpacking_failed:;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
__PYX_ERR(0, 860, __pyx_L1_error)
__pyx_L7_unpacking_done:;
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_k);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_k, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_v);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_v, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_v); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 860, __pyx_L1_error)
if (__pyx_t_9) {
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_10 = 0;
__pyx_t_11 = 127;
__pyx_t_6 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_cur_scope->__pyx_v_k), __pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_11 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) > __pyx_t_11) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) : __pyx_t_11;
__pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
__pyx_t_6 = 0;
__Pyx_INCREF(__pyx_kp_u__4);
__pyx_t_10 += 2;
__Pyx_GIVEREF(__pyx_kp_u__4);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u__4);
__pyx_t_6 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_cur_scope->__pyx_v_v), __pyx_n_u_d); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_11 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) > __pyx_t_11) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) : __pyx_t_11;
__pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_1, 3, __pyx_t_10, __pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_r, (PyObject*)__pyx_t_6))) __PYX_ERR(0, 860, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_3 = __pyx_pf_11distributed_9scheduler_9TaskGroup_8__repr___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_3_genexpr {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_2___repr__ *__pyx_outer_scope;
PyObject *__pyx_v_k;
PyObject *__pyx_v_v;
};
0861: )
+0862: + ">"
__pyx_t_3 = PyNumber_Add(__pyx_t_4, __pyx_kp_u__3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
0863: )
0864:
+0865: def __len__(self):
/* Python wrapper */
static Py_ssize_t __pyx_pw_11distributed_9scheduler_9TaskGroup_7__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_11distributed_9scheduler_9TaskGroup_7__len__(PyObject *__pyx_v_self) {
Py_ssize_t __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskGroup_6__len__(((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static Py_ssize_t __pyx_pf_11distributed_9scheduler_9TaskGroup_6__len__(struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_v_self) {
Py_ssize_t __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__len__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("distributed.scheduler.TaskGroup.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = -1;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0866: return sum(self._states.values())
if (unlikely(__pyx_v_self->_states == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
__PYX_ERR(0, 866, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_self->_states); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 866, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 866, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_3 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 866, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = __pyx_t_3;
goto __pyx_L0;
0867:
0868:
0869: @final
0870: @cclass
+0871: class TaskState:
struct __pyx_obj_11distributed_9scheduler_TaskState {
PyObject_HEAD
struct __pyx_vtabstruct_11distributed_9scheduler_TaskState *__pyx_vtab;
PyObject *_key;
Py_hash_t _hash;
struct __pyx_obj_11distributed_9scheduler_TaskPrefix *_prefix;
PyObject *_run_spec;
PyObject *_priority;
PyObject *_state;
PyObject *_dependencies;
PyObject *_dependents;
int _has_lost_dependencies;
PyObject *_waiting_on;
PyObject *_waiters;
PyObject *_who_wants;
PyObject *_who_has;
struct __pyx_obj_11distributed_9scheduler_WorkerState *_processing_on;
Py_ssize_t _retries;
Py_ssize_t _nbytes;
PyObject *_type;
PyObject *_exception;
PyObject *_traceback;
PyObject *_exception_blame;
Py_ssize_t _suspicious;
PyObject *_host_restrictions;
PyObject *_worker_restrictions;
PyObject *_resource_restrictions;
int _loose_restrictions;
PyObject *_metadata;
PyObject *_annotations;
int _actor;
struct __pyx_obj_11distributed_9scheduler_TaskGroup *_group;
PyObject *_group_key;
};
/* … */
struct __pyx_vtabstruct_11distributed_9scheduler_TaskState {
PyObject *(*add_dependency)(struct __pyx_obj_11distributed_9scheduler_TaskState *, struct __pyx_obj_11distributed_9scheduler_TaskState *, int __pyx_skip_dispatch);
Py_ssize_t (*get_nbytes)(struct __pyx_obj_11distributed_9scheduler_TaskState *, int __pyx_skip_dispatch);
PyObject *(*set_nbytes)(struct __pyx_obj_11distributed_9scheduler_TaskState *, Py_ssize_t, int __pyx_skip_dispatch);
PyObject *(*validate)(struct __pyx_obj_11distributed_9scheduler_TaskState *, int __pyx_skip_dispatch);
};
static struct __pyx_vtabstruct_11distributed_9scheduler_TaskState *__pyx_vtabptr_11distributed_9scheduler_TaskState;
static PyObject *__pyx_f_11distributed_9scheduler_9TaskState_add_dependency(struct __pyx_obj_11distributed_9scheduler_TaskState *, struct __pyx_obj_11distributed_9scheduler_TaskState *, int __pyx_skip_dispatch);
static CYTHON_INLINE Py_ssize_t __pyx_f_11distributed_9scheduler_9TaskState_get_nbytes(struct __pyx_obj_11distributed_9scheduler_TaskState *, int __pyx_skip_dispatch);
static PyObject *__pyx_f_11distributed_9scheduler_9TaskState_set_nbytes(struct __pyx_obj_11distributed_9scheduler_TaskState *, Py_ssize_t, int __pyx_skip_dispatch);
static PyObject *__pyx_f_11distributed_9scheduler_9TaskState_validate(struct __pyx_obj_11distributed_9scheduler_TaskState *, int __pyx_skip_dispatch);
0872: """
0873: A simple object holding information about a task.
0874:
0875: .. attribute:: key: str
0876:
0877: The key is the unique identifier of a task, generally formed
0878: from the name of the function, followed by a hash of the function
0879: and arguments, like ``'inc-ab31c010444977004d656610d2d421ec'``.
0880:
0881: .. attribute:: prefix: TaskPrefix
0882:
0883: The broad class of tasks to which this task belongs like "inc" or
0884: "read_csv"
0885:
0886: .. attribute:: run_spec: object
0887:
0888: A specification of how to run the task. The type and meaning of this
0889: value is opaque to the scheduler, as it is only interpreted by the
0890: worker to which the task is sent for executing.
0891:
0892: As a special case, this attribute may also be ``None``, in which case
0893: the task is "pure data" (such as, for example, a piece of data loaded
0894: in the scheduler using :meth:`Client.scatter`). A "pure data" task
0895: cannot be computed again if its value is lost.
0896:
0897: .. attribute:: priority: tuple
0898:
0899: The priority provides each task with a relative ranking which is used
0900: to break ties when many tasks are being considered for execution.
0901:
0902: This ranking is generally a 2-item tuple. The first (and dominant)
0903: item corresponds to when it was submitted. Generally, earlier tasks
0904: take precedence. The second item is determined by the client, and is
0905: a way to prioritize tasks within a large graph that may be important,
0906: such as if they are on the critical path, or good to run in order to
0907: release many dependencies. This is explained further in
0908: :doc:`Scheduling Policy <scheduling-policies>`.
0909:
0910: .. attribute:: state: str
0911:
0912: This task's current state. Valid states include ``released``,
0913: ``waiting``, ``no-worker``, ``processing``, ``memory``, ``erred``
0914: and ``forgotten``. If it is ``forgotten``, the task isn't stored
0915: in the ``tasks`` dictionary anymore and will probably disappear
0916: soon from memory.
0917:
0918: .. attribute:: dependencies: {TaskState}
0919:
0920: The set of tasks this task depends on for proper execution. Only
0921: tasks still alive are listed in this set. If, for whatever reason,
0922: this task also depends on a forgotten task, the
0923: :attr:`has_lost_dependencies` flag is set.
0924:
0925: A task can only be executed once all its dependencies have already
0926: been successfully executed and have their result stored on at least
0927: one worker. This is tracked by progressively draining the
0928: :attr:`waiting_on` set.
0929:
0930: .. attribute:: dependents: {TaskState}
0931:
0932: The set of tasks which depend on this task. Only tasks still alive
0933: are listed in this set.
0934:
0935: This is the reverse mapping of :attr:`dependencies`.
0936:
0937: .. attribute:: has_lost_dependencies: bool
0938:
0939: Whether any of the dependencies of this task has been forgotten.
0940: For memory consumption reasons, forgotten tasks are not kept in
0941: memory even though they may have dependent tasks. When a task is
0942: forgotten, therefore, each of its dependents has their
0943: :attr:`has_lost_dependencies` attribute set to ``True``.
0944:
0945: If :attr:`has_lost_dependencies` is true, this task cannot go
0946: into the "processing" state anymore.
0947:
0948: .. attribute:: waiting_on: {TaskState}
0949:
0950: The set of tasks this task is waiting on *before* it can be executed.
0951: This is always a subset of :attr:`dependencies`. Each time one of the
0952: dependencies has finished processing, it is removed from the
0953: :attr:`waiting_on` set.
0954:
0955: Once :attr:`waiting_on` becomes empty, this task can move from the
0956: "waiting" state to the "processing" state (unless one of the
0957: dependencies errored out, in which case this task is instead
0958: marked "erred").
0959:
0960: .. attribute:: waiters: {TaskState}
0961:
0962: The set of tasks which need this task to remain alive. This is always
0963: a subset of :attr:`dependents`. Each time one of the dependents
0964: has finished processing, it is removed from the :attr:`waiters`
0965: set.
0966:
0967: Once both :attr:`waiters` and :attr:`who_wants` become empty, this
0968: task can be released (if it has a non-empty :attr:`run_spec`) or
0969: forgotten (otherwise) by the scheduler, and by any workers
0970: in :attr:`who_has`.
0971:
0972: .. note:: Counter-intuitively, :attr:`waiting_on` and
0973: :attr:`waiters` are not reverse mappings of each other.
0974:
0975: .. attribute:: who_wants: {ClientState}
0976:
0977: The set of clients who want this task's result to remain alive.
0978: This is the reverse mapping of :attr:`ClientState.wants_what`.
0979:
0980: When a client submits a graph to the scheduler it also specifies
0981: which output tasks it desires, such that their results are not released
0982: from memory.
0983:
0984: Once a task has finished executing (i.e. moves into the "memory"
0985: or "erred" state), the clients in :attr:`who_wants` are notified.
0986:
0987: Once both :attr:`waiters` and :attr:`who_wants` become empty, this
0988: task can be released (if it has a non-empty :attr:`run_spec`) or
0989: forgotten (otherwise) by the scheduler, and by any workers
0990: in :attr:`who_has`.
0991:
0992: .. attribute:: who_has: {WorkerState}
0993:
0994: The set of workers who have this task's result in memory.
0995: It is non-empty iff the task is in the "memory" state. There can be
0996: more than one worker in this set if, for example, :meth:`Client.scatter`
0997: or :meth:`Client.replicate` was used.
0998:
0999: This is the reverse mapping of :attr:`WorkerState.has_what`.
1000:
1001: .. attribute:: processing_on: WorkerState (or None)
1002:
1003: If this task is in the "processing" state, which worker is currently
1004: processing it. Otherwise this is ``None``.
1005:
1006: This attribute is kept in sync with :attr:`WorkerState.processing`.
1007:
1008: .. attribute:: retries: int
1009:
1010: The number of times this task can automatically be retried in case
1011: of failure. If a task fails executing (the worker returns with
1012: an error), its :attr:`retries` attribute is checked. If it is
1013: equal to 0, the task is marked "erred". If it is greater than 0,
1014: the :attr:`retries` attribute is decremented and execution is
1015: attempted again.
1016:
1017: .. attribute:: nbytes: int (or None)
1018:
1019: The number of bytes, as determined by ``sizeof``, of the result
1020: of a finished task. This number is used for diagnostics and to
1021: help prioritize work.
1022:
1023: .. attribute:: type: str
1024:
1025: The type of the object as a string. Only present for tasks that have
1026: been computed.
1027:
1028: .. attribute:: exception: object
1029:
1030: If this task failed executing, the exception object is stored here.
1031: Otherwise this is ``None``.
1032:
1033: .. attribute:: traceback: object
1034:
1035: If this task failed executing, the traceback object is stored here.
1036: Otherwise this is ``None``.
1037:
1038: .. attribute:: exception_blame: TaskState (or None)
1039:
1040: If this task or one of its dependencies failed executing, the
1041: failed task is stored here (possibly itself). Otherwise this
1042: is ``None``.
1043:
1044: .. attribute:: suspicious: int
1045:
1046: The number of times this task has been involved in a worker death.
1047:
1048: Some tasks may cause workers to die (such as calling ``os._exit(0)``).
1049: When a worker dies, all of the tasks on that worker are reassigned
1050: to others. This combination of behaviors can cause a bad task to
1051: catastrophically destroy all workers on the cluster, one after
1052: another. Whenever a worker dies, we mark each task currently
1053: processing on that worker (as recorded by
1054: :attr:`WorkerState.processing`) as suspicious.
1055:
1056: If a task is involved in three deaths (or some other fixed constant)
1057: then we mark the task as ``erred``.
1058:
1059: .. attribute:: host_restrictions: {hostnames}
1060:
1061: A set of hostnames where this task can be run (or ``None`` if empty).
1062: Usually this is empty unless the task has been specifically restricted
1063: to only run on certain hosts. A hostname may correspond to one or
1064: several connected workers.
1065:
1066: .. attribute:: worker_restrictions: {worker addresses}
1067:
1068: A set of complete worker addresses where this can be run (or ``None``
1069: if empty). Usually this is empty unless the task has been specifically
1070: restricted to only run on certain workers.
1071:
1072: Note this is tracking worker addresses, not worker states, since
1073: the specific workers may not be connected at this time.
1074:
1075: .. attribute:: resource_restrictions: {resource: quantity}
1076:
1077: Resources required by this task, such as ``{'gpu': 1}`` or
1078: ``{'memory': 1e9}`` (or ``None`` if empty). These are user-defined
1079: names and are matched against the contents of each
1080: :attr:`WorkerState.resources` dictionary.
1081:
1082: .. attribute:: loose_restrictions: bool
1083:
1084: If ``False``, each of :attr:`host_restrictions`,
1085: :attr:`worker_restrictions` and :attr:`resource_restrictions` is
1086: a hard constraint: if no worker is available satisfying those
1087: restrictions, the task cannot go into the "processing" state and
1088: will instead go into the "no-worker" state.
1089:
1090: If ``True``, the above restrictions are mere preferences: if no worker
1091: is available satisfying those restrictions, the task can still go
1092: into the "processing" state and be sent for execution to another
1093: connected worker.
1094:
1095: .. attribute:: metadata: dict
1096:
1097: Metadata related to task.
1098:
1099: .. attribute:: actor: bool
1100:
1101: Whether or not this task is an Actor.
1102:
1103: .. attribute:: group: TaskGroup
1104:
1105: The group of tasks to which this one belongs.
1106:
1107: .. attribute:: annotations: dict
1108:
1109: Task annotations
1110: """
1111:
1112: _key: str
1113: _hash: Py_hash_t
1114: _prefix: TaskPrefix
1115: _run_spec: object
1116: _priority: tuple
1117: _state: str
1118: _dependencies: set
1119: _dependents: set
1120: _has_lost_dependencies: bint
1121: _waiting_on: set
1122: _waiters: set
1123: _who_wants: set
1124: _who_has: set
1125: _processing_on: WorkerState
1126: _retries: Py_ssize_t
1127: _nbytes: Py_ssize_t
1128: _type: str
1129: _exception: object
1130: _traceback: object
1131: _exception_blame: object
1132: _suspicious: Py_ssize_t
1133: _host_restrictions: set
1134: _worker_restrictions: set
1135: _resource_restrictions: dict
1136: _loose_restrictions: bint
1137: _metadata: dict
1138: _annotations: dict
1139: _actor: bint
1140: _group: TaskGroup
1141: _group_key: str
1142:
1143: __slots__ = (
1144: # === General description ===
+1145: "_actor",
if (PyDict_SetItem((PyObject *)__pyx_ptype_11distributed_9scheduler_TaskState->tp_dict, __pyx_n_s_slots, __pyx_tuple__119) < 0) __PYX_ERR(0, 1143, __pyx_L1_error) PyType_Modified(__pyx_ptype_11distributed_9scheduler_TaskState); /* … */ __pyx_tuple__119 = PyTuple_Pack(30, __pyx_n_u_actor_2, __pyx_n_u_key_2, __pyx_n_u_hash, __pyx_n_u_prefix_2, __pyx_n_u_run_spec_2, __pyx_n_u_dependencies_2, __pyx_n_u_dependents_2, __pyx_n_u_priority_2, __pyx_n_u_host_restrictions_2, __pyx_n_u_worker_restrictions_2, __pyx_n_u_resource_restrictions_2, __pyx_n_u_loose_restrictions_2, __pyx_n_u_state_2, __pyx_n_u_has_lost_dependencies, __pyx_n_u_waiting_on_2, __pyx_n_u_waiters_2, __pyx_n_u_processing_on_2, __pyx_n_u_who_has_2, __pyx_n_u_who_wants_2, __pyx_n_u_exception_2, __pyx_n_u_traceback_2, __pyx_n_u_exception_blame_2, __pyx_n_u_suspicious_2, __pyx_n_u_retries_2, __pyx_n_u_nbytes_2, __pyx_n_u_type_2, __pyx_n_u_group_key, __pyx_n_u_group_2, __pyx_n_u_metadata_2, __pyx_n_u_annotations_2); if (unlikely(!__pyx_tuple__119)) __PYX_ERR(0, 1145, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__119); __Pyx_GIVEREF(__pyx_tuple__119);
1146: # Key name
1147: "_key",
1148: # Hash of the key name
1149: "_hash",
1150: # Key prefix (see key_split())
1151: "_prefix",
1152: # How to run the task (None if pure data)
1153: "_run_spec",
1154: # Alive dependents and dependencies
1155: "_dependencies",
1156: "_dependents",
1157: # Compute priority
1158: "_priority",
1159: # Restrictions
1160: "_host_restrictions",
1161: "_worker_restrictions", # not WorkerStates but addresses
1162: "_resource_restrictions",
1163: "_loose_restrictions",
1164: # === Task state ===
1165: "_state",
1166: # Whether some dependencies were forgotten
1167: "_has_lost_dependencies",
1168: # If in 'waiting' state, which tasks need to complete
1169: # before we can run
1170: "_waiting_on",
1171: # If in 'waiting' or 'processing' state, which tasks needs us
1172: # to complete before they can run
1173: "_waiters",
1174: # In in 'processing' state, which worker we are processing on
1175: "_processing_on",
1176: # If in 'memory' state, Which workers have us
1177: "_who_has",
1178: # Which clients want us
1179: "_who_wants",
1180: "_exception",
1181: "_traceback",
1182: "_exception_blame",
1183: "_suspicious",
1184: "_retries",
1185: "_nbytes",
1186: "_type",
1187: "_group_key",
1188: "_group",
1189: "_metadata",
1190: "_annotations",
1191: )
1192:
+1193: def __init__(self, key: str, run_spec: object):
/* Python wrapper */
static int __pyx_pw_11distributed_9scheduler_9TaskState_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_11distributed_9scheduler_9TaskState_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_run_spec = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_run_spec,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_run_spec)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(0, 1193, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1193, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_key = ((PyObject*)values[0]);
__pyx_v_run_spec = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1193, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.TaskState.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return -1;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_key), (&PyUnicode_Type), 1, "key", 1))) __PYX_ERR(0, 1193, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState___init__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self), __pyx_v_key, __pyx_v_run_spec);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = -1;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static int __pyx_pf_11distributed_9scheduler_9TaskState___init__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_run_spec) {
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__", 0);
/* … */
/* function exit code */
__pyx_r = 0;
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler.TaskState.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = -1;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1194: self._key = key
__Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); __Pyx_GOTREF(__pyx_v_self->_key); __Pyx_DECREF(__pyx_v_self->_key); __pyx_v_self->_key = __pyx_v_key;
+1195: self._hash = hash(key)
__pyx_t_1 = PyObject_Hash(__pyx_v_key); if (unlikely(__pyx_t_1 == ((Py_hash_t)-1))) __PYX_ERR(0, 1195, __pyx_L1_error) __pyx_v_self->_hash = __pyx_t_1;
+1196: self._run_spec = run_spec
__Pyx_INCREF(__pyx_v_run_spec); __Pyx_GIVEREF(__pyx_v_run_spec); __Pyx_GOTREF(__pyx_v_self->_run_spec); __Pyx_DECREF(__pyx_v_self->_run_spec); __pyx_v_self->_run_spec = __pyx_v_run_spec;
+1197: self._state = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_self->_state); __Pyx_DECREF(__pyx_v_self->_state); __pyx_v_self->_state = ((PyObject*)Py_None);
+1198: self._exception = self._traceback = self._exception_blame = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_self->_exception); __Pyx_DECREF(__pyx_v_self->_exception); __pyx_v_self->_exception = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_self->_traceback); __Pyx_DECREF(__pyx_v_self->_traceback); __pyx_v_self->_traceback = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_self->_exception_blame); __Pyx_DECREF(__pyx_v_self->_exception_blame); __pyx_v_self->_exception_blame = Py_None;
+1199: self._suspicious = self._retries = 0
__pyx_v_self->_suspicious = 0; __pyx_v_self->_retries = 0;
+1200: self._nbytes = -1
__pyx_v_self->_nbytes = -1L;
+1201: self._priority = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_self->_priority); __Pyx_DECREF(__pyx_v_self->_priority); __pyx_v_self->_priority = ((PyObject*)Py_None);
+1202: self._who_wants = set()
__pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->_who_wants); __Pyx_DECREF(__pyx_v_self->_who_wants); __pyx_v_self->_who_wants = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+1203: self._dependencies = set()
__pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->_dependencies); __Pyx_DECREF(__pyx_v_self->_dependencies); __pyx_v_self->_dependencies = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+1204: self._dependents = set()
__pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->_dependents); __Pyx_DECREF(__pyx_v_self->_dependents); __pyx_v_self->_dependents = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+1205: self._waiting_on = set()
__pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->_waiting_on); __Pyx_DECREF(__pyx_v_self->_waiting_on); __pyx_v_self->_waiting_on = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+1206: self._waiters = set()
__pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->_waiters); __Pyx_DECREF(__pyx_v_self->_waiters); __pyx_v_self->_waiters = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+1207: self._who_has = set()
__pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->_who_has); __Pyx_DECREF(__pyx_v_self->_who_has); __pyx_v_self->_who_has = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+1208: self._processing_on = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_self->_processing_on); __Pyx_DECREF(((PyObject *)__pyx_v_self->_processing_on)); __pyx_v_self->_processing_on = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)Py_None);
+1209: self._has_lost_dependencies = False
__pyx_v_self->_has_lost_dependencies = 0;
+1210: self._host_restrictions = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_self->_host_restrictions); __Pyx_DECREF(__pyx_v_self->_host_restrictions); __pyx_v_self->_host_restrictions = ((PyObject*)Py_None);
+1211: self._worker_restrictions = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_self->_worker_restrictions); __Pyx_DECREF(__pyx_v_self->_worker_restrictions); __pyx_v_self->_worker_restrictions = ((PyObject*)Py_None);
+1212: self._resource_restrictions = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_self->_resource_restrictions); __Pyx_DECREF(__pyx_v_self->_resource_restrictions); __pyx_v_self->_resource_restrictions = ((PyObject*)Py_None);
+1213: self._loose_restrictions = False
__pyx_v_self->_loose_restrictions = 0;
+1214: self._actor = False
__pyx_v_self->_actor = 0;
+1215: self._type = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_self->_type); __Pyx_DECREF(__pyx_v_self->_type); __pyx_v_self->_type = ((PyObject*)Py_None);
+1216: self._group_key = key_split_group(key)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_key_split_group); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_key) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_key); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(0, 1216, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->_group_key); __Pyx_DECREF(__pyx_v_self->_group_key); __pyx_v_self->_group_key = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+1217: self._group = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_self->_group); __Pyx_DECREF(((PyObject *)__pyx_v_self->_group)); __pyx_v_self->_group = ((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)Py_None);
+1218: self._metadata = {}
__pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->_metadata); __Pyx_DECREF(__pyx_v_self->_metadata); __pyx_v_self->_metadata = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+1219: self._annotations = {}
__pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->_annotations); __Pyx_DECREF(__pyx_v_self->_annotations); __pyx_v_self->_annotations = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
1220:
+1221: def __hash__(self):
/* Python wrapper */
static Py_hash_t __pyx_pw_11distributed_9scheduler_9TaskState_3__hash__(PyObject *__pyx_v_self); /*proto*/
static Py_hash_t __pyx_pw_11distributed_9scheduler_9TaskState_3__hash__(PyObject *__pyx_v_self) {
Py_hash_t __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__hash__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_2__hash__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static Py_hash_t __pyx_pf_11distributed_9scheduler_9TaskState_2__hash__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
Py_hash_t __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__hash__", 0);
/* … */
/* function exit code */
__pyx_L0:;
if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1222: return self._hash
__pyx_r = __pyx_v_self->_hash; goto __pyx_L0;
1223:
+1224: def __eq__(self, other):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_5__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_5__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_4__eq__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self), ((PyObject *)__pyx_v_other));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_4__eq__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self, PyObject *__pyx_v_other) {
PyTypeObject *__pyx_v_typ_self = 0;
PyTypeObject *__pyx_v_typ_other = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_other_ts = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__eq__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.TaskState.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_typ_self);
__Pyx_XDECREF(__pyx_v_typ_other);
__Pyx_XDECREF((PyObject *)__pyx_v_other_ts);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1225: typ_self: type = type(self)
__Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
__pyx_v_typ_self = ((PyTypeObject*)((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
+1226: typ_other: type = type(other)
__Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_other)));
__pyx_v_typ_other = ((PyTypeObject*)((PyObject *)Py_TYPE(__pyx_v_other)));
+1227: if typ_self == typ_other:
__pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_typ_self), ((PyObject *)__pyx_v_typ_other), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1227, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1227, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+1228: other_ts: TaskState = other
if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 1228, __pyx_L1_error) __pyx_t_1 = __pyx_v_other; __Pyx_INCREF(__pyx_t_1); __pyx_v_other_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1); __pyx_t_1 = 0;
+1229: return self._key == other_ts._key
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_self->_key, __pyx_v_other_ts->_key, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1229, __pyx_L1_error) __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1230: else:
+1231: return False
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(Py_False);
__pyx_r = Py_False;
goto __pyx_L0;
}
1232:
1233: @property
+1234: def key(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_3key_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_3key_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_3key___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_3key___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1235: return self._key
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_key); __pyx_r = __pyx_v_self->_key; goto __pyx_L0;
1236:
1237: @property
+1238: def prefix(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_6prefix_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_6prefix_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_6prefix___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_6prefix___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1239: return self._prefix
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self->_prefix)); __pyx_r = ((PyObject *)__pyx_v_self->_prefix); goto __pyx_L0;
1240:
1241: @property
+1242: def run_spec(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_8run_spec_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_8run_spec_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_8run_spec___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_8run_spec___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1243: return self._run_spec
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_run_spec); __pyx_r = __pyx_v_self->_run_spec; goto __pyx_L0;
1244:
1245: @property
+1246: def priority(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_8priority_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_8priority_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_8priority___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_8priority___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1247: return self._priority
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_priority); __pyx_r = __pyx_v_self->_priority; goto __pyx_L0;
1248:
1249: @property
+1250: def state(self) -> str:
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_5state_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_5state_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_5state___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_5state___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1251: return self._state
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_state); __pyx_r = __pyx_v_self->_state; goto __pyx_L0;
1252:
1253: @state.setter
+1254: def state(self, value: str):
/* Python wrapper */
static int __pyx_pw_11distributed_9scheduler_9TaskState_5state_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_11distributed_9scheduler_9TaskState_5state_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_value), (&PyUnicode_Type), 1, "value", 1))) __PYX_ERR(0, 1254, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_5state_2__set__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self), ((PyObject*)__pyx_v_value));
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = -1;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static int __pyx_pf_11distributed_9scheduler_9TaskState_5state_2__set__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self, PyObject *__pyx_v_value) {
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__set__", 0);
/* … */
/* function exit code */
__pyx_r = 0;
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler.TaskState.state.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = -1;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1255: self._group._states[self._state] -= 1
if (unlikely(__pyx_v_self->_group->_states == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1255, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_self->_group->_states);
__pyx_t_1 = __pyx_v_self->_group->_states;
__Pyx_INCREF(__pyx_v_self->_state);
__pyx_t_2 = __pyx_v_self->_state;
if (unlikely(__pyx_t_1 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1255, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1255, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = __Pyx_PyInt_SubtractObjC(__pyx_t_3, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1255, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(__pyx_t_1 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1255, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_t_4) < 0)) __PYX_ERR(0, 1255, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1256: self._group._states[value] += 1
if (unlikely(__pyx_v_self->_group->_states == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1256, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_self->_group->_states);
__pyx_t_1 = __pyx_v_self->_group->_states;
__Pyx_INCREF(__pyx_v_value);
__pyx_t_2 = __pyx_v_value;
if (unlikely(__pyx_t_1 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1256, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1256, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1256, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(__pyx_t_1 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1256, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_t_3) < 0)) __PYX_ERR(0, 1256, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1257: self._state = value
__Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(__pyx_v_self->_state); __Pyx_DECREF(__pyx_v_self->_state); __pyx_v_self->_state = __pyx_v_value;
1258:
1259: @property
+1260: def dependencies(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_12dependencies_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_12dependencies_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_12dependencies___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_12dependencies___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1261: return self._dependencies
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_dependencies); __pyx_r = __pyx_v_self->_dependencies; goto __pyx_L0;
1262:
1263: @property
+1264: def dependents(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_10dependents_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_10dependents_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_10dependents___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_10dependents___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1265: return self._dependents
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_dependents); __pyx_r = __pyx_v_self->_dependents; goto __pyx_L0;
1266:
1267: @property
+1268: def has_lost_dependencies(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_21has_lost_dependencies_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_21has_lost_dependencies_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_21has_lost_dependencies___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_21has_lost_dependencies___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.TaskState.has_lost_dependencies.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1269: return self._has_lost_dependencies
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->_has_lost_dependencies); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1270:
1271: @property
+1272: def waiting_on(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_10waiting_on_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_10waiting_on_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_10waiting_on___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_10waiting_on___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1273: return self._waiting_on
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_waiting_on); __pyx_r = __pyx_v_self->_waiting_on; goto __pyx_L0;
1274:
1275: @property
+1276: def waiters(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_7waiters_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_7waiters_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_7waiters___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_7waiters___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1277: return self._waiters
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_waiters); __pyx_r = __pyx_v_self->_waiters; goto __pyx_L0;
1278:
1279: @property
+1280: def who_wants(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_9who_wants_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_9who_wants_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_9who_wants___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_9who_wants___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1281: return self._who_wants
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_who_wants); __pyx_r = __pyx_v_self->_who_wants; goto __pyx_L0;
1282:
1283: @property
+1284: def who_has(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_7who_has_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_7who_has_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_7who_has___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_7who_has___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1285: return self._who_has
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_who_has); __pyx_r = __pyx_v_self->_who_has; goto __pyx_L0;
1286:
1287: @property
+1288: def processing_on(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_13processing_on_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_13processing_on_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_13processing_on___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_13processing_on___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1289: return self._processing_on
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self->_processing_on)); __pyx_r = ((PyObject *)__pyx_v_self->_processing_on); goto __pyx_L0;
1290:
1291: @processing_on.setter
+1292: def processing_on(self, v: WorkerState):
/* Python wrapper */
static int __pyx_pw_11distributed_9scheduler_9TaskState_13processing_on_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_v); /*proto*/
static int __pyx_pw_11distributed_9scheduler_9TaskState_13processing_on_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_v) {
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_11distributed_9scheduler_WorkerState, 1, "v", 0))) __PYX_ERR(0, 1292, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_13processing_on_2__set__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self), ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_v));
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = -1;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static int __pyx_pf_11distributed_9scheduler_9TaskState_13processing_on_2__set__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self, struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_v) {
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__set__", 0);
/* … */
/* function exit code */
__pyx_r = 0;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1293: self._processing_on = v
__Pyx_INCREF(((PyObject *)__pyx_v_v)); __Pyx_GIVEREF(((PyObject *)__pyx_v_v)); __Pyx_GOTREF(__pyx_v_self->_processing_on); __Pyx_DECREF(((PyObject *)__pyx_v_self->_processing_on)); __pyx_v_self->_processing_on = __pyx_v_v;
1294:
1295: @property
+1296: def retries(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_7retries_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_7retries_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_7retries___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_7retries___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.TaskState.retries.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1297: return self._retries
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->_retries); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1298:
1299: @property
+1300: def nbytes(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_6nbytes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_6nbytes_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_6nbytes___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_6nbytes___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.TaskState.nbytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1301: return self._nbytes
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->_nbytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1302:
1303: @nbytes.setter
+1304: def nbytes(self, v: Py_ssize_t):
/* Python wrapper */
static int __pyx_pw_11distributed_9scheduler_9TaskState_6nbytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_v); /*proto*/
static int __pyx_pw_11distributed_9scheduler_9TaskState_6nbytes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_v) {
Py_ssize_t __pyx_v_v;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
assert(__pyx_arg_v); {
__pyx_v_v = __Pyx_PyIndex_AsSsize_t(__pyx_arg_v); if (unlikely((__pyx_v_v == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1304, __pyx_L3_error)
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.TaskState.nbytes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return -1;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_6nbytes_2__set__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self), ((Py_ssize_t)__pyx_v_v));
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static int __pyx_pf_11distributed_9scheduler_9TaskState_6nbytes_2__set__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self, Py_ssize_t __pyx_v_v) {
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__set__", 0);
/* … */
/* function exit code */
__pyx_r = 0;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1305: self._nbytes = v
__pyx_v_self->_nbytes = __pyx_v_v;
1306:
1307: @property
+1308: def type(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_4type_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_4type_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_4type___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_4type___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1309: return self._type
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_type); __pyx_r = __pyx_v_self->_type; goto __pyx_L0;
1310:
1311: @property
+1312: def exception(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_9exception_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_9exception_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_9exception___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_9exception___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1313: return self._exception
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_exception); __pyx_r = __pyx_v_self->_exception; goto __pyx_L0;
1314:
1315: @property
+1316: def traceback(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_9traceback_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_9traceback_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_9traceback___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_9traceback___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1317: return self._traceback
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_traceback); __pyx_r = __pyx_v_self->_traceback; goto __pyx_L0;
1318:
1319: @property
+1320: def exception_blame(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_15exception_blame_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_15exception_blame_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_15exception_blame___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_15exception_blame___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1321: return self._exception_blame
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_exception_blame); __pyx_r = __pyx_v_self->_exception_blame; goto __pyx_L0;
1322:
1323: @property
+1324: def suspicious(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_10suspicious_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_10suspicious_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_10suspicious___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_10suspicious___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.TaskState.suspicious.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1325: return self._suspicious
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->_suspicious); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1326:
1327: @property
+1328: def host_restrictions(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_17host_restrictions_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_17host_restrictions_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_17host_restrictions___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_17host_restrictions___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1329: return self._host_restrictions
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_host_restrictions); __pyx_r = __pyx_v_self->_host_restrictions; goto __pyx_L0;
1330:
1331: @property
+1332: def worker_restrictions(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_19worker_restrictions_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_19worker_restrictions_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_19worker_restrictions___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_19worker_restrictions___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1333: return self._worker_restrictions
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_worker_restrictions); __pyx_r = __pyx_v_self->_worker_restrictions; goto __pyx_L0;
1334:
1335: @property
+1336: def resource_restrictions(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_21resource_restrictions_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_21resource_restrictions_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_21resource_restrictions___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_21resource_restrictions___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1337: return self._resource_restrictions
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_resource_restrictions); __pyx_r = __pyx_v_self->_resource_restrictions; goto __pyx_L0;
1338:
1339: @property
+1340: def loose_restrictions(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_18loose_restrictions_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_18loose_restrictions_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_18loose_restrictions___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_18loose_restrictions___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.TaskState.loose_restrictions.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1341: return self._loose_restrictions
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->_loose_restrictions); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1342:
1343: @property
+1344: def metadata(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_8metadata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_8metadata_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_8metadata___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_8metadata___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1345: return self._metadata
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_metadata); __pyx_r = __pyx_v_self->_metadata; goto __pyx_L0;
1346:
1347: @property
+1348: def annotations(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_11annotations_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_11annotations_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_11annotations___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_11annotations___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1349: return self._annotations
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_annotations); __pyx_r = __pyx_v_self->_annotations; goto __pyx_L0;
1350:
1351: @property
+1352: def actor(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_5actor_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_5actor_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_5actor___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_5actor___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.TaskState.actor.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1353: return self._actor
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->_actor); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1354:
1355: @property
+1356: def group(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_5group_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_5group_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_5group___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_5group___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1357: return self._group
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self->_group)); __pyx_r = ((PyObject *)__pyx_v_self->_group); goto __pyx_L0;
1358:
1359: @property
+1360: def group_key(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_9group_key_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_9group_key_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_9group_key___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_9group_key___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1361: return self._group_key
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_group_key); __pyx_r = __pyx_v_self->_group_key; goto __pyx_L0;
1362:
1363: @property
+1364: def prefix_key(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_10prefix_key_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_10prefix_key_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_10prefix_key___get__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_10prefix_key___get__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1365: return self._prefix._name
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_prefix->_name); __pyx_r = __pyx_v_self->_prefix->_name; goto __pyx_L0;
1366:
1367: @ccall
+1368: def add_dependency(self, other: "TaskState"):
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_7add_dependency(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_f_11distributed_9scheduler_9TaskState_add_dependency(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_other, CYTHON_UNUSED int __pyx_skip_dispatch) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("add_dependency", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("distributed.scheduler.TaskState.add_dependency", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_7add_dependency(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9TaskState_6add_dependency[] = " Add another task as a dependency of this task ";
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_7add_dependency(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("add_dependency (wrapper)", 0);
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_other), __pyx_ptype_11distributed_9scheduler_TaskState, 1, "other", 0))) __PYX_ERR(0, 1368, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_6add_dependency(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self), ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_other));
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_6add_dependency(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_other) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("add_dependency", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __pyx_f_11distributed_9scheduler_9TaskState_add_dependency(__pyx_v_self, __pyx_v_other, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1368, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.TaskState.add_dependency", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
1369: """ Add another task as a dependency of this task """
+1370: self._dependencies.add(other)
if (unlikely(__pyx_v_self->_dependencies == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 1370, __pyx_L1_error)
}
__pyx_t_1 = PySet_Add(__pyx_v_self->_dependencies, ((PyObject *)__pyx_v_other)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1370, __pyx_L1_error)
+1371: self._group._dependencies.add(other._group)
if (unlikely(__pyx_v_self->_group->_dependencies == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 1371, __pyx_L1_error)
}
__pyx_t_2 = ((PyObject *)__pyx_v_other->_group);
__Pyx_INCREF(__pyx_t_2);
__pyx_t_1 = PySet_Add(__pyx_v_self->_group->_dependencies, __pyx_t_2); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1371, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1372: other._dependents.add(self)
if (unlikely(__pyx_v_other->_dependents == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 1372, __pyx_L1_error)
}
__pyx_t_1 = PySet_Add(__pyx_v_other->_dependents, ((PyObject *)__pyx_v_self)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1372, __pyx_L1_error)
1373:
1374: @ccall
1375: @inline
1376: @nogil
+1377: def get_nbytes(self) -> Py_ssize_t:
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_9get_nbytes(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static CYTHON_INLINE Py_ssize_t __pyx_f_11distributed_9scheduler_9TaskState_get_nbytes(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self, CYTHON_UNUSED int __pyx_skip_dispatch) {
Py_ssize_t __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_9get_nbytes(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_9get_nbytes(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_nbytes (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_8get_nbytes(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_8get_nbytes(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_nbytes", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __pyx_f_11distributed_9scheduler_9TaskState_get_nbytes(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1377, __pyx_L1_error)
__pyx_t_2 = PyInt_FromSsize_t(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1377, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("distributed.scheduler.TaskState.get_nbytes", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1378: return self._nbytes if self._nbytes >= 0 else DEFAULT_DATA_SIZE
if (((__pyx_v_self->_nbytes >= 0) != 0)) {
__pyx_t_1 = __pyx_v_self->_nbytes;
} else {
__pyx_t_1 = __pyx_v_11distributed_9scheduler_DEFAULT_DATA_SIZE;
}
__pyx_r = __pyx_t_1;
goto __pyx_L0;
1379:
1380: @ccall
+1381: def set_nbytes(self, nbytes: Py_ssize_t):
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_11set_nbytes(PyObject *__pyx_v_self, PyObject *__pyx_arg_nbytes); /*proto*/
static PyObject *__pyx_f_11distributed_9scheduler_9TaskState_set_nbytes(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self, Py_ssize_t __pyx_v_nbytes, CYTHON_UNUSED int __pyx_skip_dispatch) {
Py_ssize_t __pyx_v_diff;
Py_ssize_t __pyx_v_old_nbytes;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_nbytes", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(((PyObject *)__pyx_t_3));
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_AddTraceback("distributed.scheduler.TaskState.set_nbytes", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_11set_nbytes(PyObject *__pyx_v_self, PyObject *__pyx_arg_nbytes); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_11set_nbytes(PyObject *__pyx_v_self, PyObject *__pyx_arg_nbytes) {
Py_ssize_t __pyx_v_nbytes;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_nbytes (wrapper)", 0);
assert(__pyx_arg_nbytes); {
__pyx_v_nbytes = __Pyx_PyIndex_AsSsize_t(__pyx_arg_nbytes); if (unlikely((__pyx_v_nbytes == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1381, __pyx_L3_error)
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.TaskState.set_nbytes", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_10set_nbytes(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self), ((Py_ssize_t)__pyx_v_nbytes));
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_10set_nbytes(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self, Py_ssize_t __pyx_v_nbytes) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_nbytes", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __pyx_f_11distributed_9scheduler_9TaskState_set_nbytes(__pyx_v_self, __pyx_v_nbytes, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1381, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.TaskState.set_nbytes", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1382: diff: Py_ssize_t = nbytes
__pyx_v_diff = __pyx_v_nbytes;
+1383: old_nbytes: Py_ssize_t = self._nbytes
__pyx_t_1 = __pyx_v_self->_nbytes; __pyx_v_old_nbytes = __pyx_t_1;
+1384: if old_nbytes >= 0:
__pyx_t_2 = ((__pyx_v_old_nbytes >= 0) != 0);
if (__pyx_t_2) {
/* … */
}
+1385: diff -= old_nbytes
__pyx_v_diff = (__pyx_v_diff - __pyx_v_old_nbytes);
+1386: self._group._nbytes_total += diff
__Pyx_INCREF(((PyObject *)__pyx_v_self->_group)); __pyx_t_3 = __pyx_v_self->_group; __pyx_t_3->_nbytes_total = (__pyx_t_3->_nbytes_total + __pyx_v_diff); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+1387: self._group._nbytes_in_memory += diff
__Pyx_INCREF(((PyObject *)__pyx_v_self->_group)); __pyx_t_3 = __pyx_v_self->_group; __pyx_t_3->_nbytes_in_memory = (__pyx_t_3->_nbytes_in_memory + __pyx_v_diff); __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
1388: ws: WorkerState
+1389: for ws in self._who_has:
__pyx_t_1 = 0; __pyx_t_7 = __Pyx_set_iterator(__pyx_v_self->_who_has, 1, (&__pyx_t_5), (&__pyx_t_6)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = __pyx_t_7; __pyx_t_7 = 0; while (1) { __pyx_t_8 = __Pyx_set_iter_next(__pyx_t_4, __pyx_t_5, &__pyx_t_1, &__pyx_t_7, __pyx_t_6); if (unlikely(__pyx_t_8 == 0)) break; if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 1389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 1389, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_7)); __pyx_t_7 = 0;
+1390: ws._nbytes += diff
__pyx_v_ws->_nbytes = (__pyx_v_ws->_nbytes + __pyx_v_diff);
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1391: self._nbytes = nbytes
__pyx_v_self->_nbytes = __pyx_v_nbytes;
1392:
+1393: def __repr__(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_13__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_13__repr__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_12__repr__(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_12__repr__(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__repr__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler.TaskState.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1394: return "<Task %r %s>" % (self._key, self._state)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; __Pyx_INCREF(__pyx_kp_u_Task); __pyx_t_2 += 6; __Pyx_GIVEREF(__pyx_kp_u_Task); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_Task); __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_self->_key), __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_kp_u__7); __pyx_t_2 += 1; __Pyx_GIVEREF(__pyx_kp_u__7); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u__7); __pyx_t_4 = __Pyx_PyUnicode_Unicode(__pyx_v_self->_state); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_kp_u__3); __pyx_t_2 += 1; __Pyx_GIVEREF(__pyx_kp_u__3); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_kp_u__3); __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 5, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
1395:
1396: @ccall
+1397: def validate(self):
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_15validate(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_11distributed_9scheduler_9TaskState_validate(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self, CYTHON_UNUSED int __pyx_skip_dispatch) {
PyObject *__pyx_v_cs = NULL;
PyObject *__pyx_v_ws = NULL;
PyObject *__pyx_v_ts = NULL;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_pdb = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("distributed.scheduler.TaskState.validate", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_cs);
__Pyx_XDECREF(__pyx_v_ws);
__Pyx_XDECREF(__pyx_v_ts);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_pdb);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_15validate(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_15validate(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_14validate(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_14validate(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __pyx_f_11distributed_9scheduler_9TaskState_validate(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1397, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.TaskState.validate", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1398: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
goto __pyx_L8_try_end;
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L1_error;
__pyx_L4_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
__pyx_L8_try_end:;
}
+1399: for cs in self._who_wants:
__pyx_t_5 = 0;
__pyx_t_8 = __Pyx_set_iterator(__pyx_v_self->_who_wants, 1, (&__pyx_t_6), (&__pyx_t_7)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1399, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_8;
__pyx_t_8 = 0;
while (1) {
__pyx_t_9 = __Pyx_set_iter_next(__pyx_t_4, __pyx_t_6, &__pyx_t_5, &__pyx_t_8, __pyx_t_7);
if (unlikely(__pyx_t_9 == 0)) break;
if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 1399, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF_SET(__pyx_v_cs, __pyx_t_8);
__pyx_t_8 = 0;
+1400: assert isinstance(cs, ClientState), (repr(cs), self._who_wants)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_10 = __Pyx_TypeCheck(__pyx_v_cs, __pyx_ptype_11distributed_9scheduler_ClientState);
if (unlikely(!(__pyx_t_10 != 0))) {
__pyx_t_8 = PyObject_Repr(__pyx_v_cs); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1400, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1400, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_GIVEREF(__pyx_t_8);
PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_8);
__Pyx_INCREF(__pyx_v_self->_who_wants);
__Pyx_GIVEREF(__pyx_v_self->_who_wants);
PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_v_self->_who_wants);
__pyx_t_8 = 0;
__pyx_t_8 = PyTuple_Pack(1, __pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1400, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
PyErr_SetObject(PyExc_AssertionError, __pyx_t_8);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__PYX_ERR(0, 1400, __pyx_L3_error)
}
}
#endif
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1401: for ws in self._who_has:
__pyx_t_6 = 0;
__pyx_t_8 = __Pyx_set_iterator(__pyx_v_self->_who_has, 1, (&__pyx_t_5), (&__pyx_t_7)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1401, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_8;
__pyx_t_8 = 0;
while (1) {
__pyx_t_9 = __Pyx_set_iter_next(__pyx_t_4, __pyx_t_5, &__pyx_t_6, &__pyx_t_8, __pyx_t_7);
if (unlikely(__pyx_t_9 == 0)) break;
if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 1401, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF_SET(__pyx_v_ws, __pyx_t_8);
__pyx_t_8 = 0;
+1402: assert isinstance(ws, WorkerState), (repr(ws), self._who_has)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_10 = __Pyx_TypeCheck(__pyx_v_ws, __pyx_ptype_11distributed_9scheduler_WorkerState);
if (unlikely(!(__pyx_t_10 != 0))) {
__pyx_t_8 = PyObject_Repr(__pyx_v_ws); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1402, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1402, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_GIVEREF(__pyx_t_8);
PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_8);
__Pyx_INCREF(__pyx_v_self->_who_has);
__Pyx_GIVEREF(__pyx_v_self->_who_has);
PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_v_self->_who_has);
__pyx_t_8 = 0;
__pyx_t_8 = PyTuple_Pack(1, __pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1402, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
PyErr_SetObject(PyExc_AssertionError, __pyx_t_8);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__PYX_ERR(0, 1402, __pyx_L3_error)
}
}
#endif
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1403: for ts in self._dependencies:
__pyx_t_5 = 0;
__pyx_t_8 = __Pyx_set_iterator(__pyx_v_self->_dependencies, 1, (&__pyx_t_6), (&__pyx_t_7)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1403, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_8;
__pyx_t_8 = 0;
while (1) {
__pyx_t_9 = __Pyx_set_iter_next(__pyx_t_4, __pyx_t_6, &__pyx_t_5, &__pyx_t_8, __pyx_t_7);
if (unlikely(__pyx_t_9 == 0)) break;
if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 1403, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF_SET(__pyx_v_ts, __pyx_t_8);
__pyx_t_8 = 0;
+1404: assert isinstance(ts, TaskState), (repr(ts), self._dependencies)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_10 = __Pyx_TypeCheck(__pyx_v_ts, __pyx_ptype_11distributed_9scheduler_TaskState);
if (unlikely(!(__pyx_t_10 != 0))) {
__pyx_t_8 = PyObject_Repr(__pyx_v_ts); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1404, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1404, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_GIVEREF(__pyx_t_8);
PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_8);
__Pyx_INCREF(__pyx_v_self->_dependencies);
__Pyx_GIVEREF(__pyx_v_self->_dependencies);
PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_v_self->_dependencies);
__pyx_t_8 = 0;
__pyx_t_8 = PyTuple_Pack(1, __pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1404, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
PyErr_SetObject(PyExc_AssertionError, __pyx_t_8);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__PYX_ERR(0, 1404, __pyx_L3_error)
}
}
#endif
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1405: for ts in self._dependents:
__pyx_t_6 = 0;
__pyx_t_8 = __Pyx_set_iterator(__pyx_v_self->_dependents, 1, (&__pyx_t_5), (&__pyx_t_7)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1405, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_8;
__pyx_t_8 = 0;
while (1) {
__pyx_t_9 = __Pyx_set_iter_next(__pyx_t_4, __pyx_t_5, &__pyx_t_6, &__pyx_t_8, __pyx_t_7);
if (unlikely(__pyx_t_9 == 0)) break;
if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 1405, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF_SET(__pyx_v_ts, __pyx_t_8);
__pyx_t_8 = 0;
+1406: assert isinstance(ts, TaskState), (repr(ts), self._dependents)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_10 = __Pyx_TypeCheck(__pyx_v_ts, __pyx_ptype_11distributed_9scheduler_TaskState);
if (unlikely(!(__pyx_t_10 != 0))) {
__pyx_t_8 = PyObject_Repr(__pyx_v_ts); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1406, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1406, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_GIVEREF(__pyx_t_8);
PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_8);
__Pyx_INCREF(__pyx_v_self->_dependents);
__Pyx_GIVEREF(__pyx_v_self->_dependents);
PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_v_self->_dependents);
__pyx_t_8 = 0;
__pyx_t_8 = PyTuple_Pack(1, __pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1406, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
PyErr_SetObject(PyExc_AssertionError, __pyx_t_8);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__PYX_ERR(0, 1406, __pyx_L3_error)
}
}
#endif
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1407: validate_task_state(self)
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_validate_task_state); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1407, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_4 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_11, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_8, ((PyObject *)__pyx_v_self)); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1407, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1408: except Exception as e:
__pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_7) { __Pyx_AddTraceback("distributed.scheduler.TaskState.validate", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_8, &__pyx_t_11) < 0) __PYX_ERR(0, 1408, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_t_8); __pyx_v_e = __pyx_t_8; /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; goto __pyx_L23; } __pyx_L22_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18) < 0)) __Pyx_ErrFetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __pyx_t_7 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_15 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_ExceptionReset(__pyx_t_19, __pyx_t_20, __pyx_t_21); } __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ErrRestore(__pyx_t_16, __pyx_t_17, __pyx_t_18); __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_lineno = __pyx_t_7; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_15; goto __pyx_L5_except_error; } __pyx_L23:; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L4_exception_handled; } goto __pyx_L5_except_error; __pyx_L5_except_error:;
+1409: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_logger); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1409, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_exception); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1409, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } __pyx_t_12 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_13, __pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_v_e); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1409, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+1410: if LOG_PDB:
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_LOG_PDB); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1410, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 1410, __pyx_L22_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (__pyx_t_10) { /* … */ } }
+1411: import pdb
__pyx_t_12 = __Pyx_Import(__pyx_n_s_pdb, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1411, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __pyx_v_pdb = __pyx_t_12; __pyx_t_12 = 0;
1412:
+1413: pdb.set_trace()
__pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_pdb, __pyx_n_s_set_trace); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1413, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } __pyx_t_12 = (__pyx_t_13) ? __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_13) : __Pyx_PyObject_CallNoArg(__pyx_t_14); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1413, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
1414:
+1415: def get_nbytes_deps(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_17get_nbytes_deps(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_9TaskState_17get_nbytes_deps(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_nbytes_deps (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9TaskState_16get_nbytes_deps(((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9TaskState_16get_nbytes_deps(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_self) {
Py_ssize_t __pyx_v_nbytes;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_nbytes_deps", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler.TaskState.get_nbytes_deps", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1416: nbytes: Py_ssize_t = 0
__pyx_v_nbytes = 0;
1417: ts: TaskState
+1418: for ts in self._dependencies:
__pyx_t_2 = 0; __pyx_t_5 = __Pyx_set_iterator(__pyx_v_self->_dependencies, 1, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_5; __pyx_t_5 = 0; while (1) { __pyx_t_6 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, __pyx_t_4); if (unlikely(__pyx_t_6 == 0)) break; if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 1418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 1418, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_5)); __pyx_t_5 = 0;
+1419: nbytes += ts.get_nbytes()
__pyx_t_7 = __pyx_f_11distributed_9scheduler_9TaskState_get_nbytes(__pyx_v_ts, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1419, __pyx_L1_error) __pyx_v_nbytes = (__pyx_v_nbytes + __pyx_t_7); } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1420: return nbytes
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_nbytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1421:
1422:
+1423: class _StateLegacyMapping(Mapping):
__Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_Mapping); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_CalculateMetaclass(NULL, __pyx_t_15); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_14 = __Pyx_Py3MetaclassPrepare(__pyx_t_16, __pyx_t_15, __pyx_n_s_StateLegacyMapping, __pyx_n_s_StateLegacyMapping, (PyObject *) NULL, __pyx_n_s_distributed_scheduler, __pyx_kp_s_A_mapping_interface_mimicking_t); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); /* … */ __pyx_t_13 = __Pyx_Py3ClassCreate(__pyx_t_16, __pyx_n_s_StateLegacyMapping, __pyx_t_15, __pyx_t_14, NULL, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (PyDict_SetItem(__pyx_d, __pyx_n_s_StateLegacyMapping, __pyx_t_13) < 0) __PYX_ERR(0, 1423, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
1424: """
1425: A mapping interface mimicking the former Scheduler state dictionaries.
1426: """
1427:
+1428: def __init__(self, states, accessor):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_19_StateLegacyMapping_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_19_StateLegacyMapping_1__init__ = {"__init__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_19_StateLegacyMapping_1__init__, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_19_StateLegacyMapping_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_states = 0;
PyObject *__pyx_v_accessor = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_states,&__pyx_n_s_accessor,0};
PyObject* values[3] = {0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_states)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); __PYX_ERR(0, 1428, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_accessor)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); __PYX_ERR(0, 1428, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1428, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
}
__pyx_v_self = values[0];
__pyx_v_states = values[1];
__pyx_v_accessor = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1428, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler._StateLegacyMapping.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_19_StateLegacyMapping___init__(__pyx_self, __pyx_v_self, __pyx_v_states, __pyx_v_accessor);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_19_StateLegacyMapping___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_states, PyObject *__pyx_v_accessor) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler._StateLegacyMapping.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__120 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_states, __pyx_n_s_accessor); if (unlikely(!__pyx_tuple__120)) __PYX_ERR(0, 1428, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__120);
__Pyx_GIVEREF(__pyx_tuple__120);
/* … */
__pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_19_StateLegacyMapping_1__init__, 0, __pyx_n_s_StateLegacyMapping___init, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__121)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1428, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_init, __pyx_t_13) < 0) __PYX_ERR(0, 1428, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_codeobj__121 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__120, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_init, 1428, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__121)) __PYX_ERR(0, 1428, __pyx_L1_error)
+1429: self._states = states
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_states_2, __pyx_v_states) < 0) __PYX_ERR(0, 1429, __pyx_L1_error)
+1430: self._accessor = accessor
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_accessor_2, __pyx_v_accessor) < 0) __PYX_ERR(0, 1430, __pyx_L1_error)
1431:
+1432: def __iter__(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_19_StateLegacyMapping_3__iter__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_19_StateLegacyMapping_3__iter__ = {"__iter__", (PyCFunction)__pyx_pw_11distributed_9scheduler_19_StateLegacyMapping_3__iter__, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_19_StateLegacyMapping_3__iter__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__iter__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_19_StateLegacyMapping_2__iter__(__pyx_self, ((PyObject *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_19_StateLegacyMapping_2__iter__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__iter__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("distributed.scheduler._StateLegacyMapping.__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__122 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__122)) __PYX_ERR(0, 1432, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__122);
__Pyx_GIVEREF(__pyx_tuple__122);
/* … */
__pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_19_StateLegacyMapping_3__iter__, 0, __pyx_n_s_StateLegacyMapping___iter, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__123)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1432, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_iter, __pyx_t_13) < 0) __PYX_ERR(0, 1432, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_codeobj__123 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__122, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_iter, 1432, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__123)) __PYX_ERR(0, 1432, __pyx_L1_error)
+1433: return iter(self._states)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_states_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
1434:
+1435: def __len__(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_19_StateLegacyMapping_5__len__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_19_StateLegacyMapping_5__len__ = {"__len__", (PyCFunction)__pyx_pw_11distributed_9scheduler_19_StateLegacyMapping_5__len__, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_19_StateLegacyMapping_5__len__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_19_StateLegacyMapping_4__len__(__pyx_self, ((PyObject *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_19_StateLegacyMapping_4__len__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__len__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler._StateLegacyMapping.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__124 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__124)) __PYX_ERR(0, 1435, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__124);
__Pyx_GIVEREF(__pyx_tuple__124);
/* … */
__pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_19_StateLegacyMapping_5__len__, 0, __pyx_n_s_StateLegacyMapping___len, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__125)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1435, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_len_2, __pyx_t_13) < 0) __PYX_ERR(0, 1435, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_codeobj__125 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__124, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_len_2, 1435, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__125)) __PYX_ERR(0, 1435, __pyx_L1_error)
+1436: return len(self._states)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_states_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1436, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1437:
+1438: def __getitem__(self, key):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_19_StateLegacyMapping_7__getitem__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_19_StateLegacyMapping_7__getitem__ = {"__getitem__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_19_StateLegacyMapping_7__getitem__, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_19_StateLegacyMapping_7__getitem__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, 1); __PYX_ERR(0, 1438, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__getitem__") < 0)) __PYX_ERR(0, 1438, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_self = values[0];
__pyx_v_key = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1438, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler._StateLegacyMapping.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_19_StateLegacyMapping_6__getitem__(__pyx_self, __pyx_v_self, __pyx_v_key);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_19_StateLegacyMapping_6__getitem__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__getitem__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler._StateLegacyMapping.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__126 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_key); if (unlikely(!__pyx_tuple__126)) __PYX_ERR(0, 1438, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__126);
__Pyx_GIVEREF(__pyx_tuple__126);
/* … */
__pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_19_StateLegacyMapping_7__getitem__, 0, __pyx_n_s_StateLegacyMapping___getitem, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__127)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1438, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_getitem, __pyx_t_13) < 0) __PYX_ERR(0, 1438, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_codeobj__127 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__126, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_getitem, 1438, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__127)) __PYX_ERR(0, 1438, __pyx_L1_error)
+1439: return self._accessor(self._states[key])
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_accessor_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_states_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1440:
+1441: def __repr__(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_19_StateLegacyMapping_9__repr__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_19_StateLegacyMapping_9__repr__ = {"__repr__", (PyCFunction)__pyx_pw_11distributed_9scheduler_19_StateLegacyMapping_9__repr__, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_19_StateLegacyMapping_9__repr__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_19_StateLegacyMapping_8__repr__(__pyx_self, ((PyObject *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_19_StateLegacyMapping_8__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__repr__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler._StateLegacyMapping.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_27_OptionalStateLegacyMapping_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__128 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__128)) __PYX_ERR(0, 1441, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__128);
__Pyx_GIVEREF(__pyx_tuple__128);
/* … */
__pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_19_StateLegacyMapping_9__repr__, 0, __pyx_n_s_StateLegacyMapping___repr, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__129)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1441, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_repr, __pyx_t_13) < 0) __PYX_ERR(0, 1441, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_codeobj__129 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__128, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_repr, 1441, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__129)) __PYX_ERR(0, 1441, __pyx_L1_error)
+1442: return "%s(%s)" % (self.__class__, dict(self))
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_4), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u__8); __pyx_t_2 += 1; __Pyx_GIVEREF(__pyx_kp_u__8); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u__8); __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_v_self); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_5), __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_kp_u__9); __pyx_t_2 += 1; __Pyx_GIVEREF(__pyx_kp_u__9); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u__9); __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 4, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
1443:
1444:
+1445: class _OptionalStateLegacyMapping(_StateLegacyMapping):
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_StateLegacyMapping); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_16 = PyTuple_New(1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = __Pyx_CalculateMetaclass(NULL, __pyx_t_16); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_14 = __Pyx_Py3MetaclassPrepare(__pyx_t_15, __pyx_t_16, __pyx_n_s_OptionalStateLegacyMapping, __pyx_n_s_OptionalStateLegacyMapping, (PyObject *) NULL, __pyx_n_s_distributed_scheduler, __pyx_kp_s_Similar_to__StateLegacyMapping); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); /* … */ __pyx_t_13 = __Pyx_Py3ClassCreate(__pyx_t_15, __pyx_n_s_OptionalStateLegacyMapping, __pyx_t_16, __pyx_t_14, NULL, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (PyDict_SetItem(__pyx_d, __pyx_n_s_OptionalStateLegacyMapping, __pyx_t_13) < 0) __PYX_ERR(0, 1445, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
1446: """
1447: Similar to _StateLegacyMapping, but a false-y value is interpreted
1448: as a missing key.
1449: """
1450:
1451: # For tasks etc.
1452:
+1453: def __iter__(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_27_OptionalStateLegacyMapping_1__iter__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_27_OptionalStateLegacyMapping_1__iter__ = {"__iter__", (PyCFunction)__pyx_pw_11distributed_9scheduler_27_OptionalStateLegacyMapping_1__iter__, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_27_OptionalStateLegacyMapping_1__iter__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__iter__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_27_OptionalStateLegacyMapping___iter__(__pyx_self, ((PyObject *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_27_OptionalStateLegacyMapping___iter__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_4___iter__ *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__iter__", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_4___iter__ *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_4___iter__(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_4___iter__, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_4___iter__ *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 1453, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_27_OptionalStateLegacyMapping_2generator, __pyx_codeobj__10, (PyObject *) __pyx_cur_scope, __pyx_n_s_iter, __pyx_n_s_OptionalStateLegacyMapping___it, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 1453, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler._OptionalStateLegacyMapping.__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_27_OptionalStateLegacyMapping_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__iter__", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 1453, __pyx_L1_error)
/* … */
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_AddTraceback("__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__130 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_accessor, __pyx_n_s_k, __pyx_n_s_v); if (unlikely(!__pyx_tuple__130)) __PYX_ERR(0, 1453, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__130);
__Pyx_GIVEREF(__pyx_tuple__130);
/* … */
__pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_27_OptionalStateLegacyMapping_1__iter__, 0, __pyx_n_s_OptionalStateLegacyMapping___it, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__10)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1453, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_iter, __pyx_t_13) < 0) __PYX_ERR(0, 1453, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_codeobj__10 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__130, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_iter, 1453, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__10)) __PYX_ERR(0, 1453, __pyx_L1_error)
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_4___iter__ {
PyObject_HEAD
PyObject *__pyx_v_accessor;
PyObject *__pyx_v_k;
PyObject *__pyx_v_self;
PyObject *__pyx_v_v;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
Py_ssize_t __pyx_t_2;
int __pyx_t_3;
};
+1454: accessor = self._accessor
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_accessor_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1454, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_accessor = __pyx_t_1; __pyx_t_1 = 0;
+1455: for k, v in self._states.items():
__pyx_t_2 = 0; __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_states_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_t_5 == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); __PYX_ERR(0, 1455, __pyx_L1_error) } __pyx_t_6 = __Pyx_dict_iterator(__pyx_t_5, 0, __pyx_n_s_items, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_6; __pyx_t_6 = 0; while (1) { __pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_6, &__pyx_t_5, NULL, __pyx_t_4); if (unlikely(__pyx_t_7 == 0)) break; if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 1455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_k); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_k, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_v); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_v, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0;
+1456: if accessor(v):
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_accessor); __pyx_t_6 = __pyx_cur_scope->__pyx_v_accessor; __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_5 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_8, __pyx_cur_scope->__pyx_v_v) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_cur_scope->__pyx_v_v); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1456, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_9) { /* … */ } } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
+1457: yield k
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_k); __pyx_r = __pyx_cur_scope->__pyx_v_k; __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __pyx_cur_scope->__pyx_t_3 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L7_resume_from_yield:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_t_4 = __pyx_cur_scope->__pyx_t_3; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 1457, __pyx_L1_error)
1458:
+1459: def __len__(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_27_OptionalStateLegacyMapping_4__len__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_27_OptionalStateLegacyMapping_4__len__ = {"__len__", (PyCFunction)__pyx_pw_11distributed_9scheduler_27_OptionalStateLegacyMapping_4__len__, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_27_OptionalStateLegacyMapping_4__len__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_27_OptionalStateLegacyMapping_3__len__(__pyx_self, ((PyObject *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_27_OptionalStateLegacyMapping_7__len___2generator27(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
static PyObject *__pyx_pf_11distributed_9scheduler_27_OptionalStateLegacyMapping_3__len__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_5___len__ *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__len__", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_5___len__ *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_5___len__(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_5___len__, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_5___len__ *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 1459, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("distributed.scheduler._OptionalStateLegacyMapping.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__131 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_accessor, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__131)) __PYX_ERR(0, 1459, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__131);
__Pyx_GIVEREF(__pyx_tuple__131);
/* … */
__pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_27_OptionalStateLegacyMapping_4__len__, 0, __pyx_n_s_OptionalStateLegacyMapping___le_2, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__132)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1459, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_len_2, __pyx_t_13) < 0) __PYX_ERR(0, 1459, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_codeobj__132 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__131, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_len_2, 1459, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__132)) __PYX_ERR(0, 1459, __pyx_L1_error)
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_5___len__ {
PyObject_HEAD
PyObject *__pyx_v_accessor;
PyObject *__pyx_v_self;
};
+1460: accessor = self._accessor
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_accessor_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_accessor = __pyx_t_1; __pyx_t_1 = 0;
+1461: return sum(bool(accessor(v)) for v in self._states.values())
static PyObject *__pyx_pf_11distributed_9scheduler_27_OptionalStateLegacyMapping_7__len___genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_6_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_6_genexpr *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_6_genexpr(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_6_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_6_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 1461, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_5___len__ *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_27_OptionalStateLegacyMapping_7__len___2generator27, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_OptionalStateLegacyMapping___le, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 1461, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler._OptionalStateLegacyMapping.__len__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_27_OptionalStateLegacyMapping_7__len___2generator27(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 1461, __pyx_L1_error)
__pyx_t_2 = 0;
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 1461, __pyx_L1_error) }
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self, __pyx_n_s_states_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1461, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__pyx_t_5 == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
__PYX_ERR(0, 1461, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_dict_iterator(__pyx_t_5, 0, __pyx_n_s_values, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1461, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, NULL, &__pyx_t_6, NULL, __pyx_t_4);
if (unlikely(__pyx_t_7 == 0)) break;
if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 1461, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_v);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_v, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_accessor)) { __Pyx_RaiseClosureNameError("accessor"); __PYX_ERR(0, 1461, __pyx_L1_error) }
__Pyx_INCREF(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_accessor);
__pyx_t_5 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_accessor; __pyx_t_8 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
if (likely(__pyx_t_8)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_8);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_5, function);
}
}
__pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_8, __pyx_cur_scope->__pyx_v_v) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_cur_scope->__pyx_v_v);
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1461, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1461, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyBool_FromLong((!(!__pyx_t_9))); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1461, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_r = __pyx_t_6;
__pyx_t_6 = 0;
__Pyx_XGIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
__pyx_cur_scope->__pyx_t_3 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, yielding value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L6_resume_from_yield:;
__pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
__pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
__pyx_t_4 = __pyx_cur_scope->__pyx_t_3;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 1461, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __pyx_pf_11distributed_9scheduler_27_OptionalStateLegacyMapping_7__len___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1461, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1461, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_6_genexpr {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_5___len__ *__pyx_outer_scope;
PyObject *__pyx_v_v;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
Py_ssize_t __pyx_t_2;
int __pyx_t_3;
};
1462:
+1463: def __getitem__(self, key):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_27_OptionalStateLegacyMapping_6__getitem__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_27_OptionalStateLegacyMapping_6__getitem__ = {"__getitem__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_27_OptionalStateLegacyMapping_6__getitem__, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_27_OptionalStateLegacyMapping_6__getitem__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, 1); __PYX_ERR(0, 1463, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__getitem__") < 0)) __PYX_ERR(0, 1463, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_self = values[0];
__pyx_v_key = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1463, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler._OptionalStateLegacyMapping.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_27_OptionalStateLegacyMapping_5__getitem__(__pyx_self, __pyx_v_self, __pyx_v_key);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_27_OptionalStateLegacyMapping_5__getitem__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
PyObject *__pyx_v_v = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__getitem__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler._OptionalStateLegacyMapping.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_v);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__133 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_v); if (unlikely(!__pyx_tuple__133)) __PYX_ERR(0, 1463, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__133);
__Pyx_GIVEREF(__pyx_tuple__133);
/* … */
__pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_27_OptionalStateLegacyMapping_6__getitem__, 0, __pyx_n_s_OptionalStateLegacyMapping___ge, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__134)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1463, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_getitem, __pyx_t_13) < 0) __PYX_ERR(0, 1463, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_codeobj__134 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__133, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_getitem, 1463, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__134)) __PYX_ERR(0, 1463, __pyx_L1_error)
+1464: v = self._accessor(self._states[key])
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_accessor_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_states_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_v = __pyx_t_1; __pyx_t_1 = 0;
+1465: if v:
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_v); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1465, __pyx_L1_error) if (likely(__pyx_t_5)) { /* … */ }
+1466: return v
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_v); __pyx_r = __pyx_v_v; goto __pyx_L0;
1467: else:
+1468: raise KeyError
/*else*/ {
__Pyx_Raise(__pyx_builtin_KeyError, 0, 0, 0);
__PYX_ERR(0, 1468, __pyx_L1_error)
}
1469:
1470:
+1471: class _StateLegacySet(Set):
__Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_Set); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_CalculateMetaclass(NULL, __pyx_t_15); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_14 = __Pyx_Py3MetaclassPrepare(__pyx_t_16, __pyx_t_15, __pyx_n_s_StateLegacySet, __pyx_n_s_StateLegacySet, (PyObject *) NULL, __pyx_n_s_distributed_scheduler, __pyx_kp_s_Similar_to__StateLegacyMapping_2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); /* … */ __pyx_t_13 = __Pyx_Py3ClassCreate(__pyx_t_16, __pyx_n_s_StateLegacySet, __pyx_t_15, __pyx_t_14, NULL, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (PyDict_SetItem(__pyx_d, __pyx_n_s_StateLegacySet, __pyx_t_13) < 0) __PYX_ERR(0, 1471, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
1472: """
1473: Similar to _StateLegacyMapping, but exposes a set containing
1474: all values with a true value.
1475: """
1476:
1477: # For loose_restrictions
1478:
+1479: def __init__(self, states, accessor):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_15_StateLegacySet_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_15_StateLegacySet_1__init__ = {"__init__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_15_StateLegacySet_1__init__, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_15_StateLegacySet_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_states = 0;
PyObject *__pyx_v_accessor = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_states,&__pyx_n_s_accessor,0};
PyObject* values[3] = {0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_states)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); __PYX_ERR(0, 1479, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_accessor)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); __PYX_ERR(0, 1479, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1479, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
}
__pyx_v_self = values[0];
__pyx_v_states = values[1];
__pyx_v_accessor = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1479, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler._StateLegacySet.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_15_StateLegacySet___init__(__pyx_self, __pyx_v_self, __pyx_v_states, __pyx_v_accessor);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_15_StateLegacySet___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_states, PyObject *__pyx_v_accessor) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler._StateLegacySet.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__135 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_states, __pyx_n_s_accessor); if (unlikely(!__pyx_tuple__135)) __PYX_ERR(0, 1479, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__135);
__Pyx_GIVEREF(__pyx_tuple__135);
/* … */
__pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_15_StateLegacySet_1__init__, 0, __pyx_n_s_StateLegacySet___init, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__136)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1479, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_init, __pyx_t_13) < 0) __PYX_ERR(0, 1479, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_codeobj__136 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__135, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_init, 1479, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__136)) __PYX_ERR(0, 1479, __pyx_L1_error)
+1480: self._states = states
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_states_2, __pyx_v_states) < 0) __PYX_ERR(0, 1480, __pyx_L1_error)
+1481: self._accessor = accessor
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_accessor_2, __pyx_v_accessor) < 0) __PYX_ERR(0, 1481, __pyx_L1_error)
1482:
+1483: def __iter__(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_15_StateLegacySet_3__iter__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_15_StateLegacySet_3__iter__ = {"__iter__", (PyCFunction)__pyx_pw_11distributed_9scheduler_15_StateLegacySet_3__iter__, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_15_StateLegacySet_3__iter__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__iter__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_15_StateLegacySet_2__iter__(__pyx_self, ((PyObject *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_15_StateLegacySet_8__iter___2generator28(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
static PyObject *__pyx_pf_11distributed_9scheduler_15_StateLegacySet_2__iter__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_7___iter__ *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__iter__", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_7___iter__ *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_7___iter__(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_7___iter__, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_7___iter__ *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 1483, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler._StateLegacySet.__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__137 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__137)) __PYX_ERR(0, 1483, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__137);
__Pyx_GIVEREF(__pyx_tuple__137);
/* … */
__pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_15_StateLegacySet_3__iter__, 0, __pyx_n_s_StateLegacySet___iter, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__138)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1483, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_iter, __pyx_t_13) < 0) __PYX_ERR(0, 1483, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_codeobj__138 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__137, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_iter, 1483, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__138)) __PYX_ERR(0, 1483, __pyx_L1_error)
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_7___iter__ {
PyObject_HEAD
PyObject *__pyx_v_self;
};
+1484: return (k for k, v in self._states.items() if self._accessor(v))
static PyObject *__pyx_pf_11distributed_9scheduler_15_StateLegacySet_8__iter___genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_8_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_8_genexpr *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_8_genexpr(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_8_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_8_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 1484, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_7___iter__ *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_15_StateLegacySet_8__iter___2generator28, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_StateLegacySet___iter___locals, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 1484, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler._StateLegacySet.__iter__.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_15_StateLegacySet_8__iter___2generator28(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 1484, __pyx_L1_error)
__pyx_t_2 = 0;
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 1484, __pyx_L1_error) }
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self, __pyx_n_s_states_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1484, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__pyx_t_5 == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 1484, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_dict_iterator(__pyx_t_5, 0, __pyx_n_s_items, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1484, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_6, &__pyx_t_5, NULL, __pyx_t_4);
if (unlikely(__pyx_t_7 == 0)) break;
if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 1484, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_k);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_k, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_v);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_v, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 1484, __pyx_L1_error) }
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self, __pyx_n_s_accessor_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1484, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_8 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
__pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
if (likely(__pyx_t_8)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
__Pyx_INCREF(__pyx_t_8);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_6, function);
}
}
__pyx_t_5 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_8, __pyx_cur_scope->__pyx_v_v) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_cur_scope->__pyx_v_v);
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1484, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1484, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (__pyx_t_9) {
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_k);
__pyx_r = __pyx_cur_scope->__pyx_v_k;
__Pyx_XGIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
__pyx_cur_scope->__pyx_t_3 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, yielding value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L7_resume_from_yield:;
__pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
__pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
__pyx_t_4 = __pyx_cur_scope->__pyx_t_3;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 1484, __pyx_L1_error)
}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __pyx_pf_11distributed_9scheduler_15_StateLegacySet_8__iter___genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1484, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_8_genexpr {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_7___iter__ *__pyx_outer_scope;
PyObject *__pyx_v_k;
PyObject *__pyx_v_v;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
Py_ssize_t __pyx_t_2;
int __pyx_t_3;
};
1485:
+1486: def __len__(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_15_StateLegacySet_5__len__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_15_StateLegacySet_5__len__ = {"__len__", (PyCFunction)__pyx_pw_11distributed_9scheduler_15_StateLegacySet_5__len__, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_15_StateLegacySet_5__len__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_15_StateLegacySet_4__len__(__pyx_self, ((PyObject *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_15_StateLegacySet_4__len__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__len__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler._StateLegacySet.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__139 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__139)) __PYX_ERR(0, 1486, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__139);
__Pyx_GIVEREF(__pyx_tuple__139);
/* … */
__pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_15_StateLegacySet_5__len__, 0, __pyx_n_s_StateLegacySet___len, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__140)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1486, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_len_2, __pyx_t_13) < 0) __PYX_ERR(0, 1486, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_codeobj__140 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__139, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_len_2, 1486, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__140)) __PYX_ERR(0, 1486, __pyx_L1_error)
+1487: return sum(map(bool, map(self._accessor, self._states.values())))
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_accessor_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_states_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_values); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_map, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject*)&PyBool_Type)); __Pyx_GIVEREF(((PyObject*)&PyBool_Type)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject*)&PyBool_Type)); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_map, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
1488:
+1489: def __contains__(self, k):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_15_StateLegacySet_7__contains__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_15_StateLegacySet_7__contains__ = {"__contains__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_15_StateLegacySet_7__contains__, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_15_StateLegacySet_7__contains__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_k = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__contains__ (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_k,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_k)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__contains__", 1, 2, 2, 1); __PYX_ERR(0, 1489, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__contains__") < 0)) __PYX_ERR(0, 1489, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_self = values[0];
__pyx_v_k = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__contains__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1489, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler._StateLegacySet.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_15_StateLegacySet_6__contains__(__pyx_self, __pyx_v_self, __pyx_v_k);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_15_StateLegacySet_6__contains__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_k) {
PyObject *__pyx_v_st = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__contains__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler._StateLegacySet.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_st);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__141 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_k, __pyx_n_s_st); if (unlikely(!__pyx_tuple__141)) __PYX_ERR(0, 1489, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__141);
__Pyx_GIVEREF(__pyx_tuple__141);
/* … */
__pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_15_StateLegacySet_7__contains__, 0, __pyx_n_s_StateLegacySet___contains, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__142)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1489, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_contains, __pyx_t_13) < 0) __PYX_ERR(0, 1489, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_codeobj__142 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__141, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_contains, 1489, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__142)) __PYX_ERR(0, 1489, __pyx_L1_error)
+1490: st = self._states.get(k)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_states_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_get); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_k) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_k); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_st = __pyx_t_1; __pyx_t_1 = 0;
+1491: return st is not None and bool(self._accessor(st))
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = (__pyx_v_st != Py_None); if (__pyx_t_4) { } else { __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L3_bool_binop_done; } __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_accessor_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_v_st) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_st); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1491, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyBool_FromLong((!(!__pyx_t_4))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = __pyx_t_3; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_L3_bool_binop_done:; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1492:
+1493: def __repr__(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_15_StateLegacySet_9__repr__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_15_StateLegacySet_9__repr__ = {"__repr__", (PyCFunction)__pyx_pw_11distributed_9scheduler_15_StateLegacySet_9__repr__, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_15_StateLegacySet_9__repr__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_15_StateLegacySet_8__repr__(__pyx_self, ((PyObject *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_15_StateLegacySet_8__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__repr__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler._StateLegacySet.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__143 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__143)) __PYX_ERR(0, 1493, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__143);
__Pyx_GIVEREF(__pyx_tuple__143);
/* … */
__pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_15_StateLegacySet_9__repr__, 0, __pyx_n_s_StateLegacySet___repr, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__144)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1493, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_repr, __pyx_t_13) < 0) __PYX_ERR(0, 1493, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_codeobj__144 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__143, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_repr, 1493, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__144)) __PYX_ERR(0, 1493, __pyx_L1_error)
+1494: return "%s(%s)" % (self.__class__, set(self))
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_4), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u__8); __pyx_t_2 += 1; __Pyx_GIVEREF(__pyx_kp_u__8); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u__8); __pyx_t_5 = PySet_New(__pyx_v_self); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_5), __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_kp_u__9); __pyx_t_2 += 1; __Pyx_GIVEREF(__pyx_kp_u__9); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u__9); __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 4, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
1495:
1496:
+1497: def _legacy_task_key_set(tasks):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_19_legacy_task_key_set(PyObject *__pyx_self, PyObject *__pyx_v_tasks); /*proto*/
static char __pyx_doc_11distributed_9scheduler_18_legacy_task_key_set[] = "\n Transform a set of task states into a set of task keys.\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_19_legacy_task_key_set = {"_legacy_task_key_set", (PyCFunction)__pyx_pw_11distributed_9scheduler_19_legacy_task_key_set, METH_O, __pyx_doc_11distributed_9scheduler_18_legacy_task_key_set};
static PyObject *__pyx_pw_11distributed_9scheduler_19_legacy_task_key_set(PyObject *__pyx_self, PyObject *__pyx_v_tasks) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_legacy_task_key_set (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_18_legacy_task_key_set(__pyx_self, ((PyObject *)__pyx_v_tasks));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_18_legacy_task_key_set(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_tasks) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_9genexpr16__pyx_v_ts = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_legacy_task_key_set", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler._legacy_task_key_set", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr16__pyx_v_ts);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__145 = PyTuple_Pack(3, __pyx_n_s_tasks, __pyx_n_s_ts, __pyx_n_s_ts); if (unlikely(!__pyx_tuple__145)) __PYX_ERR(0, 1497, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__145);
__Pyx_GIVEREF(__pyx_tuple__145);
/* … */
__pyx_t_15 = PyCFunction_NewEx(&__pyx_mdef_11distributed_9scheduler_19_legacy_task_key_set, NULL, __pyx_n_s_distributed_scheduler); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1497, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_legacy_task_key_set, __pyx_t_15) < 0) __PYX_ERR(0, 1497, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_codeobj__146 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__145, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_legacy_task_key_set, 1497, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__146)) __PYX_ERR(0, 1497, __pyx_L1_error)
1498: """
1499: Transform a set of task states into a set of task keys.
1500: """
1501: ts: TaskState
+1502: return {ts._key for ts in tasks}
__Pyx_XDECREF(__pyx_r); { /* enter inner scope */ __pyx_t_1 = PySet_New(NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1502, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_v_tasks)) || PyTuple_CheckExact(__pyx_v_tasks)) { __pyx_t_2 = __pyx_v_tasks; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_tasks); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1502, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1502, __pyx_L5_error) } for (;;) { if (likely(!__pyx_t_4)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1502, __pyx_L5_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1502, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1502, __pyx_L5_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1502, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_5); #endif } } else { __pyx_t_5 = __pyx_t_4(__pyx_t_2); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 1502, __pyx_L5_error) } break; } __Pyx_GOTREF(__pyx_t_5); } if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 1502, __pyx_L5_error) __Pyx_XDECREF_SET(__pyx_9genexpr16__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_5)); __pyx_t_5 = 0; if (unlikely(PySet_Add(__pyx_t_1, (PyObject*)__pyx_9genexpr16__pyx_v_ts->_key))) __PYX_ERR(0, 1502, __pyx_L5_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF((PyObject *)__pyx_9genexpr16__pyx_v_ts); __pyx_9genexpr16__pyx_v_ts = 0; goto __pyx_L8_exit_scope; __pyx_L5_error:; __Pyx_XDECREF((PyObject *)__pyx_9genexpr16__pyx_v_ts); __pyx_9genexpr16__pyx_v_ts = 0; goto __pyx_L1_error; __pyx_L8_exit_scope:; } /* exit inner scope */ __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1503:
1504:
+1505: def _legacy_client_key_set(clients):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_21_legacy_client_key_set(PyObject *__pyx_self, PyObject *__pyx_v_clients); /*proto*/
static char __pyx_doc_11distributed_9scheduler_20_legacy_client_key_set[] = "\n Transform a set of client states into a set of client keys.\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_21_legacy_client_key_set = {"_legacy_client_key_set", (PyCFunction)__pyx_pw_11distributed_9scheduler_21_legacy_client_key_set, METH_O, __pyx_doc_11distributed_9scheduler_20_legacy_client_key_set};
static PyObject *__pyx_pw_11distributed_9scheduler_21_legacy_client_key_set(PyObject *__pyx_self, PyObject *__pyx_v_clients) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_legacy_client_key_set (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_20_legacy_client_key_set(__pyx_self, ((PyObject *)__pyx_v_clients));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_20_legacy_client_key_set(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_clients) {
struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_9genexpr17__pyx_v_cs = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_legacy_client_key_set", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler._legacy_client_key_set", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr17__pyx_v_cs);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__147 = PyTuple_Pack(3, __pyx_n_s_clients, __pyx_n_s_cs, __pyx_n_s_cs); if (unlikely(!__pyx_tuple__147)) __PYX_ERR(0, 1505, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__147);
__Pyx_GIVEREF(__pyx_tuple__147);
/* … */
__pyx_t_15 = PyCFunction_NewEx(&__pyx_mdef_11distributed_9scheduler_21_legacy_client_key_set, NULL, __pyx_n_s_distributed_scheduler); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1505, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_legacy_client_key_set, __pyx_t_15) < 0) __PYX_ERR(0, 1505, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_codeobj__148 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__147, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_legacy_client_key_set, 1505, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__148)) __PYX_ERR(0, 1505, __pyx_L1_error)
1506: """
1507: Transform a set of client states into a set of client keys.
1508: """
1509: cs: ClientState
+1510: return {cs._client_key for cs in clients}
__Pyx_XDECREF(__pyx_r); { /* enter inner scope */ __pyx_t_1 = PySet_New(NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1510, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_v_clients)) || PyTuple_CheckExact(__pyx_v_clients)) { __pyx_t_2 = __pyx_v_clients; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_clients); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1510, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1510, __pyx_L5_error) } for (;;) { if (likely(!__pyx_t_4)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1510, __pyx_L5_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1510, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1510, __pyx_L5_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1510, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_5); #endif } } else { __pyx_t_5 = __pyx_t_4(__pyx_t_2); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 1510, __pyx_L5_error) } break; } __Pyx_GOTREF(__pyx_t_5); } if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 1510, __pyx_L5_error) __Pyx_XDECREF_SET(__pyx_9genexpr17__pyx_v_cs, ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_5)); __pyx_t_5 = 0; if (unlikely(PySet_Add(__pyx_t_1, (PyObject*)__pyx_9genexpr17__pyx_v_cs->_client_key))) __PYX_ERR(0, 1510, __pyx_L5_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF((PyObject *)__pyx_9genexpr17__pyx_v_cs); __pyx_9genexpr17__pyx_v_cs = 0; goto __pyx_L8_exit_scope; __pyx_L5_error:; __Pyx_XDECREF((PyObject *)__pyx_9genexpr17__pyx_v_cs); __pyx_9genexpr17__pyx_v_cs = 0; goto __pyx_L1_error; __pyx_L8_exit_scope:; } /* exit inner scope */ __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1511:
1512:
+1513: def _legacy_worker_key_set(workers):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_23_legacy_worker_key_set(PyObject *__pyx_self, PyObject *__pyx_v_workers); /*proto*/
static char __pyx_doc_11distributed_9scheduler_22_legacy_worker_key_set[] = "\n Transform a set of worker states into a set of worker keys.\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_23_legacy_worker_key_set = {"_legacy_worker_key_set", (PyCFunction)__pyx_pw_11distributed_9scheduler_23_legacy_worker_key_set, METH_O, __pyx_doc_11distributed_9scheduler_22_legacy_worker_key_set};
static PyObject *__pyx_pw_11distributed_9scheduler_23_legacy_worker_key_set(PyObject *__pyx_self, PyObject *__pyx_v_workers) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_legacy_worker_key_set (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_22_legacy_worker_key_set(__pyx_self, ((PyObject *)__pyx_v_workers));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_22_legacy_worker_key_set(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_workers) {
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_9genexpr18__pyx_v_ws = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_legacy_worker_key_set", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler._legacy_worker_key_set", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr18__pyx_v_ws);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__149 = PyTuple_Pack(3, __pyx_n_s_workers, __pyx_n_s_ws, __pyx_n_s_ws); if (unlikely(!__pyx_tuple__149)) __PYX_ERR(0, 1513, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__149);
__Pyx_GIVEREF(__pyx_tuple__149);
/* … */
__pyx_t_15 = PyCFunction_NewEx(&__pyx_mdef_11distributed_9scheduler_23_legacy_worker_key_set, NULL, __pyx_n_s_distributed_scheduler); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1513, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_legacy_worker_key_set, __pyx_t_15) < 0) __PYX_ERR(0, 1513, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_codeobj__150 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__149, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_legacy_worker_key_set, 1513, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__150)) __PYX_ERR(0, 1513, __pyx_L1_error)
1514: """
1515: Transform a set of worker states into a set of worker keys.
1516: """
1517: ws: WorkerState
+1518: return {ws._address for ws in workers}
__Pyx_XDECREF(__pyx_r); { /* enter inner scope */ __pyx_t_1 = PySet_New(NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1518, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_v_workers)) || PyTuple_CheckExact(__pyx_v_workers)) { __pyx_t_2 = __pyx_v_workers; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_workers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1518, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1518, __pyx_L5_error) } for (;;) { if (likely(!__pyx_t_4)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1518, __pyx_L5_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1518, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1518, __pyx_L5_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1518, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_5); #endif } } else { __pyx_t_5 = __pyx_t_4(__pyx_t_2); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 1518, __pyx_L5_error) } break; } __Pyx_GOTREF(__pyx_t_5); } if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 1518, __pyx_L5_error) __Pyx_XDECREF_SET(__pyx_9genexpr18__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_5)); __pyx_t_5 = 0; if (unlikely(PySet_Add(__pyx_t_1, (PyObject*)__pyx_9genexpr18__pyx_v_ws->_address))) __PYX_ERR(0, 1518, __pyx_L5_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF((PyObject *)__pyx_9genexpr18__pyx_v_ws); __pyx_9genexpr18__pyx_v_ws = 0; goto __pyx_L8_exit_scope; __pyx_L5_error:; __Pyx_XDECREF((PyObject *)__pyx_9genexpr18__pyx_v_ws); __pyx_9genexpr18__pyx_v_ws = 0; goto __pyx_L1_error; __pyx_L8_exit_scope:; } /* exit inner scope */ __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1519:
1520:
+1521: def _legacy_task_key_dict(task_dict):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_25_legacy_task_key_dict(PyObject *__pyx_self, PyObject *__pyx_v_task_dict); /*proto*/
static char __pyx_doc_11distributed_9scheduler_24_legacy_task_key_dict[] = "\n Transform a dict of {task state: value} into a dict of {task key: value}.\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_25_legacy_task_key_dict = {"_legacy_task_key_dict", (PyCFunction)__pyx_pw_11distributed_9scheduler_25_legacy_task_key_dict, METH_O, __pyx_doc_11distributed_9scheduler_24_legacy_task_key_dict};
static PyObject *__pyx_pw_11distributed_9scheduler_25_legacy_task_key_dict(PyObject *__pyx_self, PyObject *__pyx_v_task_dict) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_legacy_task_key_dict (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_24_legacy_task_key_dict(__pyx_self, ((PyObject *)__pyx_v_task_dict));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_24_legacy_task_key_dict(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_task_dict) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_9genexpr19__pyx_v_ts = NULL;
PyObject *__pyx_9genexpr19__pyx_v_value = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_legacy_task_key_dict", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_AddTraceback("distributed.scheduler._legacy_task_key_dict", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr19__pyx_v_ts);
__Pyx_XDECREF(__pyx_9genexpr19__pyx_v_value);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__151 = PyTuple_Pack(4, __pyx_n_s_task_dict, __pyx_n_s_ts, __pyx_n_s_ts, __pyx_n_s_value); if (unlikely(!__pyx_tuple__151)) __PYX_ERR(0, 1521, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__151);
__Pyx_GIVEREF(__pyx_tuple__151);
/* … */
__pyx_t_15 = PyCFunction_NewEx(&__pyx_mdef_11distributed_9scheduler_25_legacy_task_key_dict, NULL, __pyx_n_s_distributed_scheduler); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1521, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_legacy_task_key_dict, __pyx_t_15) < 0) __PYX_ERR(0, 1521, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_codeobj__152 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__151, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_legacy_task_key_dict, 1521, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__152)) __PYX_ERR(0, 1521, __pyx_L1_error)
1522: """
1523: Transform a dict of {task state: value} into a dict of {task key: value}.
1524: """
1525: ts: TaskState
+1526: return {ts._key: value for ts, value in task_dict.items()}
__Pyx_XDECREF(__pyx_r); { /* enter inner scope */ __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1526, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = 0; if (unlikely(__pyx_v_task_dict == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); __PYX_ERR(0, 1526, __pyx_L5_error) } __pyx_t_6 = __Pyx_dict_iterator(__pyx_v_task_dict, 0, __pyx_n_s_items, (&__pyx_t_4), (&__pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1526, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = __pyx_t_6; __pyx_t_6 = 0; while (1) { __pyx_t_8 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_4, &__pyx_t_3, &__pyx_t_6, &__pyx_t_7, NULL, __pyx_t_5); if (unlikely(__pyx_t_8 == 0)) break; if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 1526, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 1526, __pyx_L5_error) __Pyx_XDECREF_SET(__pyx_9genexpr19__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6)); __pyx_t_6 = 0; __Pyx_XDECREF_SET(__pyx_9genexpr19__pyx_v_value, __pyx_t_7); __pyx_t_7 = 0; if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_9genexpr19__pyx_v_ts->_key, (PyObject*)__pyx_9genexpr19__pyx_v_value))) __PYX_ERR(0, 1526, __pyx_L5_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF((PyObject *)__pyx_9genexpr19__pyx_v_ts); __pyx_9genexpr19__pyx_v_ts = 0; __Pyx_XDECREF(__pyx_9genexpr19__pyx_v_value); __pyx_9genexpr19__pyx_v_value = 0; goto __pyx_L8_exit_scope; __pyx_L5_error:; __Pyx_XDECREF((PyObject *)__pyx_9genexpr19__pyx_v_ts); __pyx_9genexpr19__pyx_v_ts = 0; __Pyx_XDECREF(__pyx_9genexpr19__pyx_v_value); __pyx_9genexpr19__pyx_v_value = 0; goto __pyx_L1_error; __pyx_L8_exit_scope:; } /* exit inner scope */ __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1527:
1528:
+1529: def _task_key_or_none(task):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_27_task_key_or_none(PyObject *__pyx_self, PyObject *__pyx_v_task); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_27_task_key_or_none = {"_task_key_or_none", (PyCFunction)__pyx_pw_11distributed_9scheduler_27_task_key_or_none, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_27_task_key_or_none(PyObject *__pyx_self, PyObject *__pyx_v_task) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_task_key_or_none (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_26_task_key_or_none(__pyx_self, ((PyObject *)__pyx_v_task));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_26_task_key_or_none(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_task) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_task_key_or_none", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("distributed.scheduler._task_key_or_none", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__153 = PyTuple_Pack(1, __pyx_n_s_task); if (unlikely(!__pyx_tuple__153)) __PYX_ERR(0, 1529, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__153);
__Pyx_GIVEREF(__pyx_tuple__153);
/* … */
__pyx_t_15 = PyCFunction_NewEx(&__pyx_mdef_11distributed_9scheduler_27_task_key_or_none, NULL, __pyx_n_s_distributed_scheduler); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1529, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_task_key_or_none, __pyx_t_15) < 0) __PYX_ERR(0, 1529, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_codeobj__154 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__153, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_task_key_or_none, 1529, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__154)) __PYX_ERR(0, 1529, __pyx_L1_error)
+1530: return task.key if task is not None else None
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = (__pyx_v_task != Py_None); if ((__pyx_t_2 != 0)) { __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_task, __pyx_n_s_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1530, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __pyx_t_3; __pyx_t_3 = 0; } else { __Pyx_INCREF(Py_None); __pyx_t_1 = Py_None; } __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1531:
1532:
1533: @cclass
+1534: class SchedulerState:
struct __pyx_obj_11distributed_9scheduler_SchedulerState {
PyObject_HEAD
struct __pyx_vtabstruct_11distributed_9scheduler_SchedulerState *__pyx_vtab;
PyObject *_aliases;
double _bandwidth;
PyObject *_clients;
PyObject *_extensions;
PyObject *_host_info;
PyObject *_idle;
PyObject *_idle_dv;
Py_ssize_t _n_tasks;
PyObject *_resources;
PyObject *_saturated;
PyObject *_tasks;
PyObject *_task_groups;
PyObject *_task_prefixes;
PyObject *_task_metadata;
Py_ssize_t _total_nthreads;
double _total_occupancy;
PyObject *_unknown_durations;
PyObject *_unrunnable;
int _validate;
PyObject *_workers;
PyObject *_workers_dv;
};
/* … */
struct __pyx_vtabstruct_11distributed_9scheduler_SchedulerState {
struct __pyx_obj_11distributed_9scheduler_WorkerState *(*decide_worker)(struct __pyx_obj_11distributed_9scheduler_SchedulerState *, struct __pyx_obj_11distributed_9scheduler_TaskState *, int __pyx_skip_dispatch);
double (*set_duration_estimate)(struct __pyx_obj_11distributed_9scheduler_SchedulerState *, struct __pyx_obj_11distributed_9scheduler_TaskState *, struct __pyx_obj_11distributed_9scheduler_WorkerState *, int __pyx_skip_dispatch);
PyObject *(*remove_key)(struct __pyx_obj_11distributed_9scheduler_SchedulerState *, PyObject *, int __pyx_skip_dispatch);
PyObject *(*check_idle_saturated)(struct __pyx_obj_11distributed_9scheduler_SchedulerState *, struct __pyx_obj_11distributed_9scheduler_WorkerState *, int __pyx_skip_dispatch, struct __pyx_opt_args_11distributed_9scheduler_14SchedulerState_check_idle_saturated *__pyx_optional_args);
double (*get_comm_cost)(struct __pyx_obj_11distributed_9scheduler_SchedulerState *, struct __pyx_obj_11distributed_9scheduler_TaskState *, struct __pyx_obj_11distributed_9scheduler_WorkerState *, int __pyx_skip_dispatch);
double (*get_task_duration)(struct __pyx_obj_11distributed_9scheduler_SchedulerState *, struct __pyx_obj_11distributed_9scheduler_TaskState *, int __pyx_skip_dispatch, struct __pyx_opt_args_11distributed_9scheduler_14SchedulerState_get_task_duration *__pyx_optional_args);
PyObject *(*valid_workers)(struct __pyx_obj_11distributed_9scheduler_SchedulerState *, struct __pyx_obj_11distributed_9scheduler_TaskState *, int __pyx_skip_dispatch);
PyObject *(*consume_resources)(struct __pyx_obj_11distributed_9scheduler_SchedulerState *, struct __pyx_obj_11distributed_9scheduler_TaskState *, struct __pyx_obj_11distributed_9scheduler_WorkerState *, int __pyx_skip_dispatch);
PyObject *(*release_resources)(struct __pyx_obj_11distributed_9scheduler_SchedulerState *, struct __pyx_obj_11distributed_9scheduler_TaskState *, struct __pyx_obj_11distributed_9scheduler_WorkerState *, int __pyx_skip_dispatch);
PyObject *(*coerce_hostname)(struct __pyx_obj_11distributed_9scheduler_SchedulerState *, PyObject *, int __pyx_skip_dispatch);
PyObject *(*worker_objective)(struct __pyx_obj_11distributed_9scheduler_SchedulerState *, struct __pyx_obj_11distributed_9scheduler_TaskState *, struct __pyx_obj_11distributed_9scheduler_WorkerState *, int __pyx_skip_dispatch);
};
static struct __pyx_vtabstruct_11distributed_9scheduler_SchedulerState *__pyx_vtabptr_11distributed_9scheduler_SchedulerState;
1535: """Underlying task state of dynamic scheduler
1536:
1537: Tracks the current state of workers, data, and computations.
1538:
1539: Handles transitions between different task states. Notifies the
1540: Scheduler of changes by messaging passing through Queues, which the
1541: Scheduler listens to responds accordingly.
1542:
1543: All events are handled quickly, in linear time with respect to their
1544: input (which is often of constant size) and generally within a
1545: millisecond. Additionally when Cythonized, this can be faster still.
1546: To accomplish this the scheduler tracks a lot of state. Every
1547: operation maintains the consistency of this state.
1548:
1549: Users typically do not interact with ``Transitions`` directly. Instead
1550: users interact with the ``Client``, which in turn engages the
1551: ``Scheduler`` affecting different transitions here under-the-hood. In
1552: the background ``Worker``s also engage with the ``Scheduler``
1553: affecting these state transitions as well.
1554:
1555: **State**
1556:
1557: The ``Transitions`` object contains the following state variables.
1558: Each variable is listed along with what it stores and a brief
1559: description.
1560:
1561: * **tasks:** ``{task key: TaskState}``
1562: Tasks currently known to the scheduler
1563: * **unrunnable:** ``{TaskState}``
1564: Tasks in the "no-worker" state
1565:
1566: * **workers:** ``{worker key: WorkerState}``
1567: Workers currently connected to the scheduler
1568: * **idle:** ``{WorkerState}``:
1569: Set of workers that are not fully utilized
1570: * **saturated:** ``{WorkerState}``:
1571: Set of workers that are not over-utilized
1572:
1573: * **clients:** ``{client key: ClientState}``
1574: Clients currently connected to the scheduler
1575:
1576: * **task_duration:** ``{key-prefix: time}``
1577: Time we expect certain functions to take, e.g. ``{'sum': 0.25}``
1578: """
1579:
1580: _aliases: dict
1581: _bandwidth: double
1582: _clients: dict
1583: _extensions: dict
1584: _host_info: object
1585: _idle: object
1586: _idle_dv: dict
1587: _n_tasks: Py_ssize_t
1588: _resources: object
1589: _saturated: set
1590: _tasks: dict
1591: _task_groups: dict
1592: _task_prefixes: dict
1593: _task_metadata: dict
1594: _total_nthreads: Py_ssize_t
1595: _total_occupancy: double
1596: _unknown_durations: object
1597: _unrunnable: set
1598: _validate: bint
1599: _workers: object
1600: _workers_dv: dict
1601:
+1602: def __init__(
/* Python wrapper */
static int __pyx_pw_11distributed_9scheduler_14SchedulerState_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_11distributed_9scheduler_14SchedulerState_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_aliases = 0;
PyObject *__pyx_v_clients = 0;
PyObject *__pyx_v_workers = 0;
PyObject *__pyx_v_host_info = 0;
PyObject *__pyx_v_resources = 0;
PyObject *__pyx_v_tasks = 0;
PyObject *__pyx_v_unrunnable = 0;
int __pyx_v_validate;
PyObject *__pyx_v_kwargs = 0;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
__pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return -1;
__Pyx_GOTREF(__pyx_v_kwargs);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_aliases,&__pyx_n_s_clients,&__pyx_n_s_workers,&__pyx_n_s_host_info,&__pyx_n_s_resources,&__pyx_n_s_tasks,&__pyx_n_s_unrunnable,&__pyx_n_s_validate,0};
PyObject* values[8] = {0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = -1;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static int __pyx_pf_11distributed_9scheduler_14SchedulerState___init__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, PyObject *__pyx_v_aliases, PyObject *__pyx_v_clients, PyObject *__pyx_v_workers, PyObject *__pyx_v_host_info, PyObject *__pyx_v_resources, PyObject *__pyx_v_tasks, PyObject *__pyx_v_unrunnable, int __pyx_v_validate, PyObject *__pyx_v_kwargs) {
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__", 0);
/* … */
/* function exit code */
__pyx_r = 0;
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = -1;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
1603: self,
+1604: aliases: dict = None,
values[0] = ((PyObject*)Py_None);
+1605: clients: dict = None,
values[1] = ((PyObject*)Py_None);
+1606: workers=None,
values[2] = ((PyObject *)Py_None);
+1607: host_info=None,
values[3] = ((PyObject *)Py_None);
+1608: resources=None,
values[4] = ((PyObject *)Py_None);
+1609: tasks: dict = None,
values[5] = ((PyObject*)Py_None);
+1610: unrunnable: set = None,
values[6] = ((PyObject*)Py_None);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_aliases);
if (value) { values[0] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_clients);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_workers);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_host_info);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_resources);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tasks);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_unrunnable);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_validate);
if (value) { values[7] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1602, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_aliases = ((PyObject*)values[0]);
__pyx_v_clients = ((PyObject*)values[1]);
__pyx_v_workers = values[2];
__pyx_v_host_info = values[3];
__pyx_v_resources = values[4];
__pyx_v_tasks = ((PyObject*)values[5]);
__pyx_v_unrunnable = ((PyObject*)values[6]);
if (values[7]) {
__pyx_v_validate = __Pyx_PyObject_IsTrue(values[7]); if (unlikely((__pyx_v_validate == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1611, __pyx_L3_error)
} else {
+1611: validate: bint = False,
__pyx_v_validate = ((int)0);
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1602, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return -1;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_aliases), (&PyDict_Type), 1, "aliases", 1))) __PYX_ERR(0, 1604, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_clients), (&PyDict_Type), 1, "clients", 1))) __PYX_ERR(0, 1605, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_tasks), (&PyDict_Type), 1, "tasks", 1))) __PYX_ERR(0, 1609, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_unrunnable), (&PySet_Type), 1, "unrunnable", 1))) __PYX_ERR(0, 1610, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState___init__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), __pyx_v_aliases, __pyx_v_clients, __pyx_v_workers, __pyx_v_host_info, __pyx_v_resources, __pyx_v_tasks, __pyx_v_unrunnable, __pyx_v_validate, __pyx_v_kwargs);
1612: **kwargs,
1613: ):
+1614: if aliases is not None:
__pyx_t_1 = (__pyx_v_aliases != ((PyObject*)Py_None));
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L3;
}
+1615: self._aliases = aliases
__Pyx_INCREF(__pyx_v_aliases); __Pyx_GIVEREF(__pyx_v_aliases); __Pyx_GOTREF(__pyx_v_self->_aliases); __Pyx_DECREF(__pyx_v_self->_aliases); __pyx_v_self->_aliases = __pyx_v_aliases;
1616: else:
+1617: self._aliases = dict()
/*else*/ {
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1617, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_v_self->_aliases);
__Pyx_DECREF(__pyx_v_self->_aliases);
__pyx_v_self->_aliases = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
}
__pyx_L3:;
+1618: self._bandwidth = parse_bytes(
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_parse_bytes); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); /* … */ __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1618, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_self->_bandwidth = __pyx_t_8;
+1619: dask.config.get("distributed.scheduler.bandwidth")
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_dask); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_config); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_get); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_kp_u_distributed_scheduler_bandwidth) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_kp_u_distributed_scheduler_bandwidth); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
1620: )
+1621: if clients is not None:
__pyx_t_2 = (__pyx_v_clients != ((PyObject*)Py_None));
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L4;
}
+1622: self._clients = clients
__Pyx_INCREF(__pyx_v_clients); __Pyx_GIVEREF(__pyx_v_clients); __Pyx_GOTREF(__pyx_v_self->_clients); __Pyx_DECREF(__pyx_v_self->_clients); __pyx_v_self->_clients = __pyx_v_clients;
1623: else:
+1624: self._clients = dict()
/*else*/ {
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1624, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_v_self->_clients);
__Pyx_DECREF(__pyx_v_self->_clients);
__pyx_v_self->_clients = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
}
__pyx_L4:;
+1625: self._clients["fire-and-forget"] = ClientState("fire-and-forget")
__pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11distributed_9scheduler_ClientState), __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_self->_clients == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1625, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_self->_clients, __pyx_kp_u_fire_and_forget, __pyx_t_3) < 0)) __PYX_ERR(0, 1625, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_u_fire_and_forget); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 1625, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__11); __Pyx_GIVEREF(__pyx_tuple__11);
+1626: self._extensions = dict()
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->_extensions); __Pyx_DECREF(__pyx_v_self->_extensions); __pyx_v_self->_extensions = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+1627: if host_info is not None:
__pyx_t_1 = (__pyx_v_host_info != Py_None);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L5;
}
+1628: self._host_info = host_info
__Pyx_INCREF(__pyx_v_host_info); __Pyx_GIVEREF(__pyx_v_host_info); __Pyx_GOTREF(__pyx_v_self->_host_info); __Pyx_DECREF(__pyx_v_self->_host_info); __pyx_v_self->_host_info = __pyx_v_host_info;
1629: else:
+1630: self._host_info = defaultdict(dict)
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_defaultdict); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1630, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_4, function);
}
}
__pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, ((PyObject *)(&PyDict_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)(&PyDict_Type)));
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1630, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_v_self->_host_info);
__Pyx_DECREF(__pyx_v_self->_host_info);
__pyx_v_self->_host_info = __pyx_t_3;
__pyx_t_3 = 0;
}
__pyx_L5:;
+1631: self._idle = sortedcontainers.SortedDict()
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_sortedcontainers); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_SortedDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->_idle); __Pyx_DECREF(__pyx_v_self->_idle); __pyx_v_self->_idle = __pyx_t_3; __pyx_t_3 = 0;
+1632: self._idle_dv: dict = cast(dict, self._idle)
__pyx_t_3 = __pyx_v_self->_idle; __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->_idle_dv); __Pyx_DECREF(__pyx_v_self->_idle_dv); __pyx_v_self->_idle_dv = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+1633: self._n_tasks = 0
__pyx_v_self->_n_tasks = 0;
+1634: if resources is not None:
__pyx_t_2 = (__pyx_v_resources != Py_None);
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L6;
}
+1635: self._resources = resources
__Pyx_INCREF(__pyx_v_resources); __Pyx_GIVEREF(__pyx_v_resources); __Pyx_GOTREF(__pyx_v_self->_resources); __Pyx_DECREF(__pyx_v_self->_resources); __pyx_v_self->_resources = __pyx_v_resources;
1636: else:
+1637: self._resources = defaultdict(dict)
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_defaultdict); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1637, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
if (likely(__pyx_t_4)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_5, function);
}
}
__pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, ((PyObject *)(&PyDict_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_5, ((PyObject *)(&PyDict_Type)));
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1637, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_v_self->_resources);
__Pyx_DECREF(__pyx_v_self->_resources);
__pyx_v_self->_resources = __pyx_t_3;
__pyx_t_3 = 0;
}
__pyx_L6:;
+1638: self._saturated = set()
__pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->_saturated); __Pyx_DECREF(__pyx_v_self->_saturated); __pyx_v_self->_saturated = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+1639: if tasks is not None:
__pyx_t_1 = (__pyx_v_tasks != ((PyObject*)Py_None));
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L7;
}
+1640: self._tasks = tasks
__Pyx_INCREF(__pyx_v_tasks); __Pyx_GIVEREF(__pyx_v_tasks); __Pyx_GOTREF(__pyx_v_self->_tasks); __Pyx_DECREF(__pyx_v_self->_tasks); __pyx_v_self->_tasks = __pyx_v_tasks;
1641: else:
+1642: self._tasks = dict()
/*else*/ {
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1642, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_v_self->_tasks);
__Pyx_DECREF(__pyx_v_self->_tasks);
__pyx_v_self->_tasks = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
}
__pyx_L7:;
+1643: self._task_groups = dict()
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->_task_groups); __Pyx_DECREF(__pyx_v_self->_task_groups); __pyx_v_self->_task_groups = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+1644: self._task_prefixes = dict()
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->_task_prefixes); __Pyx_DECREF(__pyx_v_self->_task_prefixes); __pyx_v_self->_task_prefixes = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+1645: self._task_metadata = dict()
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->_task_metadata); __Pyx_DECREF(__pyx_v_self->_task_metadata); __pyx_v_self->_task_metadata = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+1646: self._total_nthreads = 0
__pyx_v_self->_total_nthreads = 0;
+1647: self._total_occupancy = 0
__pyx_v_self->_total_occupancy = 0.0;
+1648: self._unknown_durations = defaultdict(set)
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_defaultdict); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, ((PyObject *)(&PySet_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_5, ((PyObject *)(&PySet_Type))); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->_unknown_durations); __Pyx_DECREF(__pyx_v_self->_unknown_durations); __pyx_v_self->_unknown_durations = __pyx_t_3; __pyx_t_3 = 0;
+1649: if unrunnable is not None:
__pyx_t_2 = (__pyx_v_unrunnable != ((PyObject*)Py_None));
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L8;
}
+1650: self._unrunnable = unrunnable
__Pyx_INCREF(__pyx_v_unrunnable); __Pyx_GIVEREF(__pyx_v_unrunnable); __Pyx_GOTREF(__pyx_v_self->_unrunnable); __Pyx_DECREF(__pyx_v_self->_unrunnable); __pyx_v_self->_unrunnable = __pyx_v_unrunnable;
1651: else:
+1652: self._unrunnable = set()
/*else*/ {
__pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1652, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_v_self->_unrunnable);
__Pyx_DECREF(__pyx_v_self->_unrunnable);
__pyx_v_self->_unrunnable = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
}
__pyx_L8:;
+1653: self._validate = validate
__pyx_v_self->_validate = __pyx_v_validate;
+1654: if workers is not None:
__pyx_t_1 = (__pyx_v_workers != Py_None);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L9;
}
+1655: self._workers = workers
__Pyx_INCREF(__pyx_v_workers); __Pyx_GIVEREF(__pyx_v_workers); __Pyx_GOTREF(__pyx_v_self->_workers); __Pyx_DECREF(__pyx_v_self->_workers); __pyx_v_self->_workers = __pyx_v_workers;
1656: else:
+1657: self._workers = sortedcontainers.SortedDict()
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_sortedcontainers); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1657, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_SortedDict); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1657, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_4, function);
}
}
__pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1657, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_v_self->_workers);
__Pyx_DECREF(__pyx_v_self->_workers);
__pyx_v_self->_workers = __pyx_t_3;
__pyx_t_3 = 0;
}
__pyx_L9:;
+1658: self._workers_dv: dict = cast(dict, self._workers)
__pyx_t_3 = __pyx_v_self->_workers; __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->_workers_dv); __Pyx_DECREF(__pyx_v_self->_workers_dv); __pyx_v_self->_workers_dv = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+1659: super().__init__(**kwargs)
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_ptype_11distributed_9scheduler_SchedulerState)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_11distributed_9scheduler_SchedulerState)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_ptype_11distributed_9scheduler_SchedulerState)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_self)); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_v_kwargs); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
1660:
1661: @property
+1662: def aliases(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_7aliases_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_7aliases_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_7aliases___get__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_7aliases___get__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1663: return self._aliases
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_aliases); __pyx_r = __pyx_v_self->_aliases; goto __pyx_L0;
1664:
1665: @property
+1666: def bandwidth(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_9bandwidth_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_9bandwidth_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_9bandwidth___get__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_9bandwidth___get__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.bandwidth.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1667: return self._bandwidth
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->_bandwidth); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1668:
1669: @property
+1670: def clients(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_7clients_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_7clients_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_7clients___get__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_7clients___get__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1671: return self._clients
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_clients); __pyx_r = __pyx_v_self->_clients; goto __pyx_L0;
1672:
1673: @property
+1674: def extensions(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_10extensions_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_10extensions_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_10extensions___get__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_10extensions___get__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1675: return self._extensions
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_extensions); __pyx_r = __pyx_v_self->_extensions; goto __pyx_L0;
1676:
1677: @property
+1678: def host_info(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_9host_info_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_9host_info_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_9host_info___get__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_9host_info___get__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1679: return self._host_info
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_host_info); __pyx_r = __pyx_v_self->_host_info; goto __pyx_L0;
1680:
1681: @property
+1682: def idle(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_4idle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_4idle_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_4idle___get__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_4idle___get__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1683: return self._idle
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_idle); __pyx_r = __pyx_v_self->_idle; goto __pyx_L0;
1684:
1685: @property
+1686: def n_tasks(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_7n_tasks_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_7n_tasks_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_7n_tasks___get__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_7n_tasks___get__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.n_tasks.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1687: return self._n_tasks
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->_n_tasks); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1688:
1689: @property
+1690: def resources(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_9resources_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_9resources_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_9resources___get__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_9resources___get__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1691: return self._resources
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_resources); __pyx_r = __pyx_v_self->_resources; goto __pyx_L0;
1692:
1693: @property
+1694: def saturated(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_9saturated_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_9saturated_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_9saturated___get__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_9saturated___get__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1695: return self._saturated
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_saturated); __pyx_r = __pyx_v_self->_saturated; goto __pyx_L0;
1696:
1697: @property
+1698: def tasks(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_5tasks_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_5tasks_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_5tasks___get__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_5tasks___get__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1699: return self._tasks
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_tasks); __pyx_r = __pyx_v_self->_tasks; goto __pyx_L0;
1700:
1701: @property
+1702: def task_groups(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_11task_groups_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_11task_groups_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_11task_groups___get__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_11task_groups___get__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1703: return self._task_groups
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_task_groups); __pyx_r = __pyx_v_self->_task_groups; goto __pyx_L0;
1704:
1705: @property
+1706: def task_prefixes(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_13task_prefixes_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_13task_prefixes_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_13task_prefixes___get__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_13task_prefixes___get__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1707: return self._task_prefixes
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_task_prefixes); __pyx_r = __pyx_v_self->_task_prefixes; goto __pyx_L0;
1708:
1709: @property
+1710: def task_metadata(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_13task_metadata_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_13task_metadata_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_13task_metadata___get__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_13task_metadata___get__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1711: return self._task_metadata
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_task_metadata); __pyx_r = __pyx_v_self->_task_metadata; goto __pyx_L0;
1712:
1713: @property
+1714: def total_nthreads(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_14total_nthreads_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_14total_nthreads_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_14total_nthreads___get__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_14total_nthreads___get__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.total_nthreads.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1715: return self._total_nthreads
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->_total_nthreads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1716:
1717: @property
+1718: def total_occupancy(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_15total_occupancy_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_15total_occupancy_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_15total_occupancy___get__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_15total_occupancy___get__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.total_occupancy.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1719: return self._total_occupancy
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->_total_occupancy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1720:
1721: @total_occupancy.setter
+1722: def total_occupancy(self, v: double):
/* Python wrapper */
static int __pyx_pw_11distributed_9scheduler_14SchedulerState_15total_occupancy_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_v); /*proto*/
static int __pyx_pw_11distributed_9scheduler_14SchedulerState_15total_occupancy_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_v) {
double __pyx_v_v;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
assert(__pyx_arg_v); {
__pyx_v_v = __pyx_PyFloat_AsDouble(__pyx_arg_v); if (unlikely((__pyx_v_v == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1722, __pyx_L3_error)
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.total_occupancy.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return -1;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_15total_occupancy_2__set__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), ((double)__pyx_v_v));
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static int __pyx_pf_11distributed_9scheduler_14SchedulerState_15total_occupancy_2__set__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, double __pyx_v_v) {
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__set__", 0);
/* … */
/* function exit code */
__pyx_r = 0;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1723: self._total_occupancy = v
__pyx_v_self->_total_occupancy = __pyx_v_v;
1724:
1725: @property
+1726: def unknown_durations(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_17unknown_durations_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_17unknown_durations_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_17unknown_durations___get__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_17unknown_durations___get__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1727: return self._unknown_durations
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_unknown_durations); __pyx_r = __pyx_v_self->_unknown_durations; goto __pyx_L0;
1728:
1729: @property
+1730: def unrunnable(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_10unrunnable_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_10unrunnable_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_10unrunnable___get__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_10unrunnable___get__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1731: return self._unrunnable
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_unrunnable); __pyx_r = __pyx_v_self->_unrunnable; goto __pyx_L0;
1732:
1733: @property
+1734: def validate(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_8validate_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_8validate_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_8validate___get__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_8validate___get__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.validate.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1735: return self._validate
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->_validate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1736:
1737: @validate.setter
+1738: def validate(self, v: bint):
/* Python wrapper */
static int __pyx_pw_11distributed_9scheduler_14SchedulerState_8validate_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_v); /*proto*/
static int __pyx_pw_11distributed_9scheduler_14SchedulerState_8validate_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_v) {
int __pyx_v_v;
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
assert(__pyx_arg_v); {
__pyx_v_v = __Pyx_PyObject_IsTrue(__pyx_arg_v); if (unlikely((__pyx_v_v == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1738, __pyx_L3_error)
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.validate.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return -1;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_8validate_2__set__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), ((int)__pyx_v_v));
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static int __pyx_pf_11distributed_9scheduler_14SchedulerState_8validate_2__set__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, int __pyx_v_v) {
int __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__set__", 0);
/* … */
/* function exit code */
__pyx_r = 0;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1739: self._validate = v
__pyx_v_self->_validate = __pyx_v_v;
1740:
1741: @property
+1742: def workers(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_7workers_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_7workers_1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_7workers___get__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_7workers___get__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1743: return self._workers
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_workers); __pyx_r = __pyx_v_self->_workers; goto __pyx_L0;
1744:
1745: @property
+1746: def __pdict__(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_9__pdict___1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_9__pdict___1__get__(PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_9__pdict_____get__(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_9__pdict_____get__(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.__pdict__.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1747: return {
__Pyx_XDECREF(__pyx_r);
+1748: "bandwidth": self._bandwidth,
__pyx_t_1 = __Pyx_PyDict_NewPresized(17); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->_bandwidth); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_bandwidth, __pyx_t_2) < 0) __PYX_ERR(0, 1748, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1749: "resources": self._resources,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_resources, __pyx_v_self->_resources) < 0) __PYX_ERR(0, 1748, __pyx_L1_error)
+1750: "saturated": self._saturated,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_saturated, __pyx_v_self->_saturated) < 0) __PYX_ERR(0, 1748, __pyx_L1_error)
+1751: "unrunnable": self._unrunnable,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_unrunnable, __pyx_v_self->_unrunnable) < 0) __PYX_ERR(0, 1748, __pyx_L1_error)
+1752: "n_tasks": self._n_tasks,
__pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->_n_tasks); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_n_tasks, __pyx_t_2) < 0) __PYX_ERR(0, 1748, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1753: "unknown_durations": self._unknown_durations,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_unknown_durations, __pyx_v_self->_unknown_durations) < 0) __PYX_ERR(0, 1748, __pyx_L1_error)
+1754: "validate": self._validate,
__pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->_validate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_validate, __pyx_t_2) < 0) __PYX_ERR(0, 1748, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1755: "tasks": self._tasks,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_tasks, __pyx_v_self->_tasks) < 0) __PYX_ERR(0, 1748, __pyx_L1_error)
+1756: "task_groups": self._task_groups,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_task_groups, __pyx_v_self->_task_groups) < 0) __PYX_ERR(0, 1748, __pyx_L1_error)
+1757: "task_prefixes": self._task_prefixes,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_task_prefixes, __pyx_v_self->_task_prefixes) < 0) __PYX_ERR(0, 1748, __pyx_L1_error)
+1758: "total_nthreads": self._total_nthreads,
__pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->_total_nthreads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_total_nthreads, __pyx_t_2) < 0) __PYX_ERR(0, 1748, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1759: "total_occupancy": self._total_occupancy,
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->_total_occupancy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_total_occupancy, __pyx_t_2) < 0) __PYX_ERR(0, 1748, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1760: "extensions": self._extensions,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_extensions, __pyx_v_self->_extensions) < 0) __PYX_ERR(0, 1748, __pyx_L1_error)
+1761: "clients": self._clients,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_clients, __pyx_v_self->_clients) < 0) __PYX_ERR(0, 1748, __pyx_L1_error)
+1762: "workers": self._workers,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_workers, __pyx_v_self->_workers) < 0) __PYX_ERR(0, 1748, __pyx_L1_error)
+1763: "idle": self._idle,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_idle, __pyx_v_self->_idle) < 0) __PYX_ERR(0, 1748, __pyx_L1_error)
+1764: "host_info": self._host_info,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_host_info, __pyx_v_self->_host_info) < 0) __PYX_ERR(0, 1748, __pyx_L1_error) __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1765: }
1766:
+1767: def transition_released_waiting(self, key):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_3transition_released_waiting(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_3transition_released_waiting(PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_released_waiting (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_2transition_released_waiting(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), ((PyObject *)__pyx_v_key));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_2transition_released_waiting(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, PyObject *__pyx_v_key) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_dts = 0;
PyObject *__pyx_v_worker_msgs = 0;
PyObject *__pyx_v_client_msgs = 0;
PyObject *__pyx_v_recommendations = 0;
PyObject *__pyx_v_dep = NULL;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_pdb = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_9genexpr20__pyx_v_dts = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_9genexpr21__pyx_v_dts = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_released_waiting", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_released_waiting", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_v_dts);
__Pyx_XDECREF(__pyx_v_worker_msgs);
__Pyx_XDECREF(__pyx_v_client_msgs);
__Pyx_XDECREF(__pyx_v_recommendations);
__Pyx_XDECREF(__pyx_v_dep);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_pdb);
__Pyx_XDECREF((PyObject *)__pyx_9genexpr20__pyx_v_dts);
__Pyx_XDECREF((PyObject *)__pyx_9genexpr21__pyx_v_dts);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1768: try:
{
/*try:*/ {
/* … */
}
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L1_error;
__pyx_L7_try_return:;
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L0;
}
+1769: ts: TaskState = self._tasks[key]
if (unlikely(__pyx_v_self->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1769, __pyx_L3_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1769, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 1769, __pyx_L3_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4);
__pyx_t_4 = 0;
1770: dts: TaskState
+1771: worker_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1771, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_worker_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+1772: client_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1772, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_client_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
1773:
+1774: if self._validate:
__pyx_t_5 = (__pyx_v_self->_validate != 0);
if (__pyx_t_5) {
/* … */
}
+1775: assert ts._run_spec
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_ts->_run_spec); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1775, __pyx_L3_error)
if (unlikely(!__pyx_t_5)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 1775, __pyx_L3_error)
}
}
#endif
+1776: assert not ts._waiting_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 1776, __pyx_L3_error)
}
}
#endif
+1777: assert not ts._who_has
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 1777, __pyx_L3_error)
}
}
#endif
+1778: assert not ts._processing_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ts->_processing_on)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1778, __pyx_L3_error)
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 1778, __pyx_L3_error)
}
}
#endif
+1779: assert not any([dts._state == "forgotten" for dts in ts._dependencies])
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
{ /* enter inner scope */
__pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1779, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_7 = 0;
__pyx_t_10 = __Pyx_set_iterator(__pyx_v_ts->_dependencies, 1, (&__pyx_t_8), (&__pyx_t_9)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1779, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_6);
__pyx_t_6 = __pyx_t_10;
__pyx_t_10 = 0;
while (1) {
__pyx_t_11 = __Pyx_set_iter_next(__pyx_t_6, __pyx_t_8, &__pyx_t_7, &__pyx_t_10, __pyx_t_9);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 1779, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_10);
if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 1779, __pyx_L12_error)
__Pyx_XDECREF_SET(__pyx_9genexpr20__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_10));
__pyx_t_10 = 0;
__pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_9genexpr20__pyx_v_dts->_state, __pyx_n_u_forgotten, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1779, __pyx_L12_error)
__pyx_t_10 = __Pyx_PyBool_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1779, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_10);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_10))) __PYX_ERR(0, 1779, __pyx_L12_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr20__pyx_v_dts); __pyx_9genexpr20__pyx_v_dts = 0;
goto __pyx_L15_exit_scope;
__pyx_L12_error:;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr20__pyx_v_dts); __pyx_9genexpr20__pyx_v_dts = 0;
goto __pyx_L3_error;
__pyx_L15_exit_scope:;
} /* exit inner scope */
__pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_any, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1779, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1779, __pyx_L3_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 1779, __pyx_L3_error)
}
}
#endif
1780:
+1781: if ts._has_lost_dependencies:
__pyx_t_5 = (__pyx_v_ts->_has_lost_dependencies != 0);
if (__pyx_t_5) {
/* … */
}
+1782: return {key: "forgotten"}, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1782, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_v_key, __pyx_n_u_forgotten) < 0) __PYX_ERR(0, 1782, __pyx_L3_error) __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1782, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_client_msgs); __pyx_t_6 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L7_try_return;
1783:
+1784: ts.state = "waiting"
if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_ts), __pyx_n_s_state, __pyx_n_u_waiting) < 0) __PYX_ERR(0, 1784, __pyx_L3_error)
1785:
+1786: recommendations: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1786, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_recommendations = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
1787:
1788: dts: TaskState
+1789: for dts in ts._dependencies:
__pyx_t_8 = 0;
__pyx_t_6 = __Pyx_set_iterator(__pyx_v_ts->_dependencies, 1, (&__pyx_t_7), (&__pyx_t_9)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1789, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_11 = __Pyx_set_iter_next(__pyx_t_4, __pyx_t_7, &__pyx_t_8, &__pyx_t_6, __pyx_t_9);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 1789, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 1789, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6));
__pyx_t_6 = 0;
+1790: if dts._exception_blame:
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_dts->_exception_blame); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1790, __pyx_L3_error) if (__pyx_t_5) { /* … */ } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1791: ts._exception_blame = dts._exception_blame
__pyx_t_6 = __pyx_v_dts->_exception_blame;
__Pyx_INCREF(__pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__Pyx_GOTREF(__pyx_v_ts->_exception_blame);
__Pyx_DECREF(__pyx_v_ts->_exception_blame);
__pyx_v_ts->_exception_blame = __pyx_t_6;
__pyx_t_6 = 0;
+1792: recommendations[key] = "erred"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_key, __pyx_n_u_erred) < 0)) __PYX_ERR(0, 1792, __pyx_L3_error)
+1793: return recommendations, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1793, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_v_recommendations); __Pyx_GIVEREF(__pyx_v_recommendations); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_recommendations); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_client_msgs); __pyx_r = __pyx_t_6; __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L7_try_return;
1794:
+1795: for dts in ts._dependencies:
__pyx_t_7 = 0;
__pyx_t_6 = __Pyx_set_iterator(__pyx_v_ts->_dependencies, 1, (&__pyx_t_8), (&__pyx_t_9)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1795, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_11 = __Pyx_set_iter_next(__pyx_t_4, __pyx_t_8, &__pyx_t_7, &__pyx_t_6, __pyx_t_9);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 1795, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 1795, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6));
__pyx_t_6 = 0;
+1796: dep = dts._key
__pyx_t_6 = __pyx_v_dts->_key;
__Pyx_INCREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_dep, ((PyObject*)__pyx_t_6));
__pyx_t_6 = 0;
+1797: if not dts._who_has:
__pyx_t_5 = (__pyx_v_dts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_dts->_who_has) != 0);
__pyx_t_12 = ((!__pyx_t_5) != 0);
if (__pyx_t_12) {
/* … */
}
+1798: ts._waiting_on.add(dts)
if (unlikely(__pyx_v_ts->_waiting_on == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 1798, __pyx_L3_error)
}
__pyx_t_13 = PySet_Add(__pyx_v_ts->_waiting_on, ((PyObject *)__pyx_v_dts)); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(0, 1798, __pyx_L3_error)
+1799: if dts._state == "released":
__pyx_t_12 = (__Pyx_PyUnicode_Equals(__pyx_v_dts->_state, __pyx_n_u_released, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1799, __pyx_L3_error) __pyx_t_5 = (__pyx_t_12 != 0); if (__pyx_t_5) { /* … */ goto __pyx_L23; }
+1800: recommendations[dep] = "waiting"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_dep, __pyx_n_u_waiting) < 0)) __PYX_ERR(0, 1800, __pyx_L3_error)
1801: else:
+1802: dts._waiters.add(ts)
/*else*/ {
if (unlikely(__pyx_v_dts->_waiters == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 1802, __pyx_L3_error)
}
__pyx_t_13 = PySet_Add(__pyx_v_dts->_waiters, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(0, 1802, __pyx_L3_error)
}
__pyx_L23:;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
1803:
+1804: ts._waiters = {dts for dts in ts._dependents if dts._state == "waiting"}
{ /* enter inner scope */
__pyx_t_4 = PySet_New(NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1804, __pyx_L26_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_8 = 0;
__pyx_t_10 = __Pyx_set_iterator(__pyx_v_ts->_dependents, 1, (&__pyx_t_7), (&__pyx_t_9)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1804, __pyx_L26_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_6);
__pyx_t_6 = __pyx_t_10;
__pyx_t_10 = 0;
while (1) {
__pyx_t_11 = __Pyx_set_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_8, &__pyx_t_10, __pyx_t_9);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 1804, __pyx_L26_error)
__Pyx_GOTREF(__pyx_t_10);
if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 1804, __pyx_L26_error)
__Pyx_XDECREF_SET(__pyx_9genexpr21__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_10));
__pyx_t_10 = 0;
__pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_9genexpr21__pyx_v_dts->_state, __pyx_n_u_waiting, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1804, __pyx_L26_error)
__pyx_t_12 = (__pyx_t_5 != 0);
if (__pyx_t_12) {
if (unlikely(PySet_Add(__pyx_t_4, (PyObject*)__pyx_9genexpr21__pyx_v_dts))) __PYX_ERR(0, 1804, __pyx_L26_error)
}
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr21__pyx_v_dts); __pyx_9genexpr21__pyx_v_dts = 0;
goto __pyx_L30_exit_scope;
__pyx_L26_error:;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr21__pyx_v_dts); __pyx_9genexpr21__pyx_v_dts = 0;
goto __pyx_L3_error;
__pyx_L30_exit_scope:;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_4);
__Pyx_GOTREF(__pyx_v_ts->_waiters);
__Pyx_DECREF(__pyx_v_ts->_waiters);
__pyx_v_ts->_waiters = ((PyObject*)__pyx_t_4);
__pyx_t_4 = 0;
1805:
+1806: if not ts._waiting_on:
__pyx_t_12 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
__pyx_t_5 = ((!__pyx_t_12) != 0);
if (__pyx_t_5) {
/* … */
}
+1807: if self._workers_dv:
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_self->_workers_dv); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1807, __pyx_L3_error) if (__pyx_t_5) { /* … */ goto __pyx_L32; }
+1808: recommendations[key] = "processing"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_key, __pyx_n_u_processing_2) < 0)) __PYX_ERR(0, 1808, __pyx_L3_error)
1809: else:
+1810: self._unrunnable.add(ts)
/*else*/ {
if (unlikely(__pyx_v_self->_unrunnable == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 1810, __pyx_L3_error)
}
__pyx_t_13 = PySet_Add(__pyx_v_self->_unrunnable, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(0, 1810, __pyx_L3_error)
+1811: ts.state = "no-worker"
if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_ts), __pyx_n_s_state, __pyx_kp_u_no_worker) < 0) __PYX_ERR(0, 1811, __pyx_L3_error) } __pyx_L32:;
1812:
+1813: return recommendations, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1813, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_recommendations); __Pyx_GIVEREF(__pyx_v_recommendations); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_recommendations); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_client_msgs); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L7_try_return;
+1814: except Exception as e:
__pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_9) { __Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_released_waiting", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_10) < 0) __PYX_ERR(0, 1814, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_10); __Pyx_INCREF(__pyx_t_6); __pyx_v_e = __pyx_t_6; /*try:*/ { /* … */ /*finally:*/ { __pyx_L38_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20) < 0)) __Pyx_ErrFetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __pyx_t_9 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23); } __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ErrRestore(__pyx_t_18, __pyx_t_19, __pyx_t_20); __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_17; goto __pyx_L5_except_error; } } } goto __pyx_L5_except_error; __pyx_L5_except_error:;
+1815: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_logger); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1815, __pyx_L38_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_exception); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1815, __pyx_L38_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_16))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); } } __pyx_t_14 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_15, __pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_v_e); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1815, __pyx_L38_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+1816: if LOG_PDB:
__Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_LOG_PDB); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1816, __pyx_L38_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1816, __pyx_L38_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (__pyx_t_5) { /* … */ }
+1817: import pdb
__pyx_t_14 = __Pyx_Import(__pyx_n_s_pdb, 0, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1817, __pyx_L38_error) __Pyx_GOTREF(__pyx_t_14); __pyx_v_pdb = __pyx_t_14; __pyx_t_14 = 0;
1818:
+1819: pdb.set_trace()
__pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_pdb, __pyx_n_s_set_trace); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1819, __pyx_L38_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); } } __pyx_t_14 = (__pyx_t_15) ? __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_t_15) : __Pyx_PyObject_CallNoArg(__pyx_t_16); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1819, __pyx_L38_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+1820: raise
__Pyx_GIVEREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_6, __pyx_t_10); __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_10 = 0; __PYX_ERR(0, 1820, __pyx_L38_error) }
1821:
+1822: def transition_no_worker_waiting(self, key):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_5transition_no_worker_waiting(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_5transition_no_worker_waiting(PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_no_worker_waiting (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_4transition_no_worker_waiting(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), ((PyObject *)__pyx_v_key));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_4transition_no_worker_waiting(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, PyObject *__pyx_v_key) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_dts = 0;
PyObject *__pyx_v_worker_msgs = 0;
PyObject *__pyx_v_client_msgs = 0;
PyObject *__pyx_v_recommendations = 0;
PyObject *__pyx_v_dep = NULL;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_pdb = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_no_worker_waiting", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_no_worker_waiting", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_v_dts);
__Pyx_XDECREF(__pyx_v_worker_msgs);
__Pyx_XDECREF(__pyx_v_client_msgs);
__Pyx_XDECREF(__pyx_v_recommendations);
__Pyx_XDECREF(__pyx_v_dep);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_pdb);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1823: try:
{
/*try:*/ {
/* … */
}
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L1_error;
__pyx_L7_try_return:;
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L0;
}
+1824: ts: TaskState = self._tasks[key]
if (unlikely(__pyx_v_self->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1824, __pyx_L3_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1824, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 1824, __pyx_L3_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4);
__pyx_t_4 = 0;
1825: dts: TaskState
+1826: worker_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1826, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_worker_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+1827: client_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1827, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_client_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
1828:
+1829: if self._validate:
__pyx_t_5 = (__pyx_v_self->_validate != 0);
if (__pyx_t_5) {
/* … */
}
+1830: assert ts in self._unrunnable
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_self->_unrunnable == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1830, __pyx_L3_error)
}
__pyx_t_5 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_self->_unrunnable, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1830, __pyx_L3_error)
if (unlikely(!(__pyx_t_5 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 1830, __pyx_L3_error)
}
}
#endif
+1831: assert not ts._waiting_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 1831, __pyx_L3_error)
}
}
#endif
+1832: assert not ts._who_has
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 1832, __pyx_L3_error)
}
}
#endif
+1833: assert not ts._processing_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ts->_processing_on)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1833, __pyx_L3_error)
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 1833, __pyx_L3_error)
}
}
#endif
1834:
+1835: self._unrunnable.remove(ts)
if (unlikely(__pyx_v_self->_unrunnable == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
__PYX_ERR(0, 1835, __pyx_L3_error)
}
__pyx_t_6 = __Pyx_PySet_Remove(__pyx_v_self->_unrunnable, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1835, __pyx_L3_error)
1836:
+1837: if ts._has_lost_dependencies:
__pyx_t_5 = (__pyx_v_ts->_has_lost_dependencies != 0);
if (__pyx_t_5) {
/* … */
}
+1838: return {key: "forgotten"}, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1838, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_v_key, __pyx_n_u_forgotten) < 0) __PYX_ERR(0, 1838, __pyx_L3_error) __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1838, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_client_msgs); __pyx_t_4 = 0; __pyx_r = __pyx_t_7; __pyx_t_7 = 0; goto __pyx_L7_try_return;
1839:
+1840: recommendations: dict = {}
__pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1840, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __pyx_v_recommendations = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0;
1841:
+1842: for dts in ts._dependencies:
__pyx_t_8 = 0;
__pyx_t_4 = __Pyx_set_iterator(__pyx_v_ts->_dependencies, 1, (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1842, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_7);
__pyx_t_7 = __pyx_t_4;
__pyx_t_4 = 0;
while (1) {
__pyx_t_11 = __Pyx_set_iter_next(__pyx_t_7, __pyx_t_9, &__pyx_t_8, &__pyx_t_4, __pyx_t_10);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 1842, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 1842, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4));
__pyx_t_4 = 0;
+1843: dep = dts._key
__pyx_t_4 = __pyx_v_dts->_key;
__Pyx_INCREF(__pyx_t_4);
__Pyx_XDECREF_SET(__pyx_v_dep, ((PyObject*)__pyx_t_4));
__pyx_t_4 = 0;
+1844: if not dts._who_has:
__pyx_t_5 = (__pyx_v_dts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_dts->_who_has) != 0);
__pyx_t_12 = ((!__pyx_t_5) != 0);
if (__pyx_t_12) {
/* … */
}
+1845: ts._waiting_on.add(dts)
if (unlikely(__pyx_v_ts->_waiting_on == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 1845, __pyx_L3_error)
}
__pyx_t_6 = PySet_Add(__pyx_v_ts->_waiting_on, ((PyObject *)__pyx_v_dts)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1845, __pyx_L3_error)
+1846: if dts._state == "released":
__pyx_t_12 = (__Pyx_PyUnicode_Equals(__pyx_v_dts->_state, __pyx_n_u_released, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1846, __pyx_L3_error) __pyx_t_5 = (__pyx_t_12 != 0); if (__pyx_t_5) { /* … */ goto __pyx_L14; }
+1847: recommendations[dep] = "waiting"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_dep, __pyx_n_u_waiting) < 0)) __PYX_ERR(0, 1847, __pyx_L3_error)
1848: else:
+1849: dts._waiters.add(ts)
/*else*/ {
if (unlikely(__pyx_v_dts->_waiters == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 1849, __pyx_L3_error)
}
__pyx_t_6 = PySet_Add(__pyx_v_dts->_waiters, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1849, __pyx_L3_error)
}
__pyx_L14:;
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
1850:
+1851: ts.state = "waiting"
if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_ts), __pyx_n_s_state, __pyx_n_u_waiting) < 0) __PYX_ERR(0, 1851, __pyx_L3_error)
1852:
+1853: if not ts._waiting_on:
__pyx_t_5 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
__pyx_t_12 = ((!__pyx_t_5) != 0);
if (__pyx_t_12) {
/* … */
}
+1854: if self._workers_dv:
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_self->_workers_dv); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1854, __pyx_L3_error) if (__pyx_t_12) { /* … */ goto __pyx_L16; }
+1855: recommendations[key] = "processing"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_key, __pyx_n_u_processing_2) < 0)) __PYX_ERR(0, 1855, __pyx_L3_error)
1856: else:
+1857: self._unrunnable.add(ts)
/*else*/ {
if (unlikely(__pyx_v_self->_unrunnable == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 1857, __pyx_L3_error)
}
__pyx_t_6 = PySet_Add(__pyx_v_self->_unrunnable, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1857, __pyx_L3_error)
+1858: ts.state = "no-worker"
if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_ts), __pyx_n_s_state, __pyx_kp_u_no_worker) < 0) __PYX_ERR(0, 1858, __pyx_L3_error) } __pyx_L16:;
1859:
+1860: return recommendations, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1860, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_v_recommendations); __Pyx_GIVEREF(__pyx_v_recommendations); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_recommendations); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_client_msgs); __pyx_r = __pyx_t_7; __pyx_t_7 = 0; goto __pyx_L7_try_return;
+1861: except Exception as e:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_10) { __Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_no_worker_waiting", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_4, &__pyx_t_13) < 0) __PYX_ERR(0, 1861, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_13); __Pyx_INCREF(__pyx_t_4); __pyx_v_e = __pyx_t_4; /*try:*/ { /* … */ /*finally:*/ { __pyx_L22_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20) < 0)) __Pyx_ErrFetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __pyx_t_10 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23); } __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ErrRestore(__pyx_t_18, __pyx_t_19, __pyx_t_20); __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_17; goto __pyx_L5_except_error; } } } goto __pyx_L5_except_error; __pyx_L5_except_error:;
+1862: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_logger); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1862, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_exception); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1862, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_16))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); } } __pyx_t_14 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_15, __pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_v_e); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1862, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+1863: if LOG_PDB:
__Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_LOG_PDB); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1863, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1863, __pyx_L22_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (__pyx_t_12) { /* … */ }
+1864: import pdb
__pyx_t_14 = __Pyx_Import(__pyx_n_s_pdb, 0, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1864, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_14); __pyx_v_pdb = __pyx_t_14; __pyx_t_14 = 0;
1865:
+1866: pdb.set_trace()
__pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_pdb, __pyx_n_s_set_trace); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1866, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); } } __pyx_t_14 = (__pyx_t_15) ? __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_t_15) : __Pyx_PyObject_CallNoArg(__pyx_t_16); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1866, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+1867: raise
__Pyx_GIVEREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_ErrRestoreWithState(__pyx_t_7, __pyx_t_4, __pyx_t_13); __pyx_t_7 = 0; __pyx_t_4 = 0; __pyx_t_13 = 0; __PYX_ERR(0, 1867, __pyx_L22_error) }
1868:
1869: @ccall
1870: @exceptval(check=False)
+1871: def decide_worker(self, ts: TaskState) -> WorkerState:
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_7decide_worker(PyObject *__pyx_v_self, PyObject *__pyx_v_ts); /*proto*/
static struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_f_11distributed_9scheduler_14SchedulerState_decide_worker(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts, int __pyx_skip_dispatch) {
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_v_valid_workers = 0;
PyObject *__pyx_v_worker_pool = NULL;
PyObject *__pyx_v_worker_pool_dv = NULL;
Py_ssize_t __pyx_v_n_workers;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("decide_worker", 0);
/* Check if called by wrapper */
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_decide_worker); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1871, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_11distributed_9scheduler_14SchedulerState_7decide_worker)) {
__Pyx_XDECREF(((PyObject *)__pyx_r));
__Pyx_INCREF(__pyx_t_1);
__pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_4)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_ts)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_ts));
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1871, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 1871, __pyx_L1_error)
__pyx_r = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_2);
__pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
__pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.decide_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF(__pyx_v_valid_workers);
__Pyx_XDECREF(__pyx_v_worker_pool);
__Pyx_XDECREF(__pyx_v_worker_pool_dv);
__Pyx_XGIVEREF((PyObject *)__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_7decide_worker(PyObject *__pyx_v_self, PyObject *__pyx_v_ts); /*proto*/
static char __pyx_doc_11distributed_9scheduler_14SchedulerState_6decide_worker[] = "\n Decide on a worker for task *ts*. Return a WorkerState.\n ";
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_7decide_worker(PyObject *__pyx_v_self, PyObject *__pyx_v_ts) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("decide_worker (wrapper)", 0);
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ts), __pyx_ptype_11distributed_9scheduler_TaskState, 1, "ts", 0))) __PYX_ERR(0, 1871, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_6decide_worker(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_ts));
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_6decide_worker(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("decide_worker", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = ((PyObject *)__pyx_f_11distributed_9scheduler_14SchedulerState_decide_worker(__pyx_v_self, __pyx_v_ts, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1871, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.decide_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
1872: """
1873: Decide on a worker for task *ts*. Return a WorkerState.
1874: """
+1875: ws: WorkerState = None
__Pyx_INCREF(Py_None);
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)Py_None);
+1876: valid_workers: set = self.valid_workers(ts)
__pyx_t_1 = ((struct __pyx_vtabstruct_11distributed_9scheduler_SchedulerState *)__pyx_v_self->__pyx_vtab)->valid_workers(__pyx_v_self, __pyx_v_ts, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_valid_workers = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
1877:
+1878: if (
if (__pyx_t_5) {
/* … */
}
+1879: valid_workers is not None
__pyx_t_6 = (__pyx_v_valid_workers != ((PyObject*)Py_None));
__pyx_t_7 = (__pyx_t_6 != 0);
if (__pyx_t_7) {
} else {
__pyx_t_5 = __pyx_t_7;
goto __pyx_L4_bool_binop_done;
}
+1880: and not valid_workers
__pyx_t_7 = (__pyx_v_valid_workers != Py_None)&&(PySet_GET_SIZE(__pyx_v_valid_workers) != 0);
__pyx_t_6 = ((!__pyx_t_7) != 0);
if (__pyx_t_6) {
} else {
__pyx_t_5 = __pyx_t_6;
goto __pyx_L4_bool_binop_done;
}
+1881: and not ts._loose_restrictions
__pyx_t_6 = ((!(__pyx_v_ts->_loose_restrictions != 0)) != 0);
if (__pyx_t_6) {
} else {
__pyx_t_5 = __pyx_t_6;
goto __pyx_L4_bool_binop_done;
}
+1882: and self._workers_dv
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_self->_workers_dv); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1882, __pyx_L1_error) __pyx_t_5 = __pyx_t_6; __pyx_L4_bool_binop_done:;
1883: ):
+1884: self._unrunnable.add(ts)
if (unlikely(__pyx_v_self->_unrunnable == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 1884, __pyx_L1_error)
}
__pyx_t_8 = PySet_Add(__pyx_v_self->_unrunnable, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 1884, __pyx_L1_error)
+1885: ts.state = "no-worker"
if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_ts), __pyx_n_s_state, __pyx_kp_u_no_worker) < 0) __PYX_ERR(0, 1885, __pyx_L1_error)
+1886: return ws
__Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_ws)); __pyx_r = __pyx_v_ws; goto __pyx_L0;
1887:
+1888: if ts._dependencies or valid_workers is not None:
__pyx_t_6 = (__pyx_v_ts->_dependencies != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_dependencies) != 0);
if (!__pyx_t_6) {
} else {
__pyx_t_5 = __pyx_t_6;
goto __pyx_L9_bool_binop_done;
}
__pyx_t_6 = (__pyx_v_valid_workers != ((PyObject*)Py_None));
__pyx_t_7 = (__pyx_t_6 != 0);
__pyx_t_5 = __pyx_t_7;
__pyx_L9_bool_binop_done:;
if (__pyx_t_5) {
/* … */
goto __pyx_L8;
}
+1889: ws = decide_worker(
__pyx_t_3 = ((PyObject *)__pyx_f_11distributed_9scheduler_decide_worker(__pyx_v_ts, __pyx_t_1, __pyx_v_valid_workers, __pyx_t_2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_3)); __pyx_t_3 = 0;
1890: ts,
+1891: self._workers_dv.values(),
if (unlikely(__pyx_v_self->_workers_dv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
__PYX_ERR(0, 1891, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_self->_workers_dv); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
1892: valid_workers,
+1893: partial(self.worker_objective, ts),
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_partial); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_worker_objective); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_9 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_4, ((PyObject *)__pyx_v_ts)}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1893, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_4, ((PyObject *)__pyx_v_ts)}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1893, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { __pyx_t_11 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_ts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_ts)); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, ((PyObject *)__pyx_v_ts)); __pyx_t_4 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
1894: )
1895: else:
+1896: worker_pool = self._idle or self._workers
/*else*/ {
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_self->_idle); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1896, __pyx_L1_error)
if (!__pyx_t_5) {
} else {
__Pyx_INCREF(__pyx_v_self->_idle);
__pyx_t_3 = __pyx_v_self->_idle;
goto __pyx_L11_bool_binop_done;
}
__Pyx_INCREF(__pyx_v_self->_workers);
__pyx_t_3 = __pyx_v_self->_workers;
__pyx_L11_bool_binop_done:;
__pyx_v_worker_pool = __pyx_t_3;
__pyx_t_3 = 0;
+1897: worker_pool_dv = cast(dict, worker_pool)
__pyx_t_3 = __pyx_v_worker_pool;
__Pyx_INCREF(__pyx_t_3);
__pyx_v_worker_pool_dv = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
+1898: n_workers: Py_ssize_t = len(worker_pool_dv)
if (unlikely(__pyx_v_worker_pool_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 1898, __pyx_L1_error)
}
__pyx_t_12 = PyDict_Size(__pyx_v_worker_pool_dv); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1898, __pyx_L1_error)
__pyx_v_n_workers = __pyx_t_12;
+1899: if n_workers < 20: # smart but linear in small case
__pyx_t_5 = ((__pyx_v_n_workers < 20) != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L13;
}
+1900: ws = min(worker_pool.values(), key=operator.attrgetter("occupancy"))
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_worker_pool, __pyx_n_s_values); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_operator); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_attrgetter); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_11, __pyx_n_u_occupancy) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_n_u_occupancy); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_key, __pyx_t_1) < 0) __PYX_ERR(0, 1900, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_min, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 1900, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1)); __pyx_t_1 = 0;
1901: else: # dumb but fast in large case
+1902: ws = worker_pool.values()[self._n_tasks % n_workers]
/*else*/ {
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_worker_pool, __pyx_n_s_values); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_2)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(__pyx_v_n_workers == 0)) {
PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
__PYX_ERR(0, 1902, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_mod_Py_ssize_t(__pyx_v_self->_n_tasks, __pyx_v_n_workers);
__pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, __pyx_t_12, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 1902, __pyx_L1_error)
__Pyx_DECREF_SET(__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_3));
__pyx_t_3 = 0;
}
__pyx_L13:;
}
__pyx_L8:;
1903:
+1904: if self._validate:
__pyx_t_5 = (__pyx_v_self->_validate != 0);
if (__pyx_t_5) {
/* … */
}
+1905: assert ws is None or isinstance(ws, WorkerState), (
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_7 = (((PyObject *)__pyx_v_ws) == Py_None);
__pyx_t_6 = (__pyx_t_7 != 0);
if (!__pyx_t_6) {
} else {
__pyx_t_5 = __pyx_t_6;
goto __pyx_L15_bool_binop_done;
}
__pyx_t_6 = __Pyx_TypeCheck(((PyObject *)__pyx_v_ws), __pyx_ptype_11distributed_9scheduler_WorkerState);
__pyx_t_7 = (__pyx_t_6 != 0);
__pyx_t_5 = __pyx_t_7;
__pyx_L15_bool_binop_done:;
if (unlikely(!__pyx_t_5)) {
+1906: type(ws),
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_ws)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_ws)))); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_ws)))); __Pyx_INCREF(((PyObject *)__pyx_v_ws)); __Pyx_GIVEREF(((PyObject *)__pyx_v_ws)); PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_ws)); __pyx_t_1 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; PyErr_SetObject(PyExc_AssertionError, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 1905, __pyx_L1_error) } } #endif
1907: ws,
1908: )
+1909: assert ws._address in self._workers_dv
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_self->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1909, __pyx_L1_error)
}
__pyx_t_5 = (__Pyx_PyDict_ContainsTF(__pyx_v_ws->_address, __pyx_v_self->_workers_dv, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1909, __pyx_L1_error)
if (unlikely(!(__pyx_t_5 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 1909, __pyx_L1_error)
}
}
#endif
1910:
+1911: return ws
__Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_ws)); __pyx_r = __pyx_v_ws; goto __pyx_L0;
1912:
1913: @ccall
+1914: def set_duration_estimate(self, ts: TaskState, ws: WorkerState) -> double:
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_9set_duration_estimate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_11distributed_9scheduler_14SchedulerState_set_duration_estimate(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts, struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws, int __pyx_skip_dispatch) {
double __pyx_v_exec_time;
double __pyx_v_duration;
double __pyx_v_total_duration;
double __pyx_v_comm;
double __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_duration_estimate", 0);
/* Check if called by wrapper */
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_duration_estimate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1914, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_11distributed_9scheduler_14SchedulerState_9set_duration_estimate)) {
__Pyx_INCREF(__pyx_t_1);
__pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_4)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_ts), ((PyObject *)__pyx_v_ws)};
__pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1914, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_ts), ((PyObject *)__pyx_v_ws)};
__pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1914, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#endif
{
__pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1914, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (__pyx_t_4) {
__Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
}
__Pyx_INCREF(((PyObject *)__pyx_v_ts));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ts));
PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, ((PyObject *)__pyx_v_ts));
__Pyx_INCREF(((PyObject *)__pyx_v_ws));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ws));
PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, ((PyObject *)__pyx_v_ws));
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1914, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1914, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = __pyx_t_7;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
__pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.set_duration_estimate", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_9set_duration_estimate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_14SchedulerState_8set_duration_estimate[] = "Estimate task duration using worker state and task state.\n\n If a task takes longer than twice the current average duration we\n estimate the task duration to be 2x current-runtime, otherwise we set it\n to be the average duration.\n ";
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_9set_duration_estimate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_duration_estimate (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ts,&__pyx_n_s_ws,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ts)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ws)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("set_duration_estimate", 1, 2, 2, 1); __PYX_ERR(0, 1914, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_duration_estimate") < 0)) __PYX_ERR(0, 1914, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)values[0]);
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)values[1]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("set_duration_estimate", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1914, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.set_duration_estimate", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ts), __pyx_ptype_11distributed_9scheduler_TaskState, 1, "ts", 0))) __PYX_ERR(0, 1914, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ws), __pyx_ptype_11distributed_9scheduler_WorkerState, 1, "ws", 0))) __PYX_ERR(0, 1914, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_8set_duration_estimate(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), __pyx_v_ts, __pyx_v_ws);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_8set_duration_estimate(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts, struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_duration_estimate", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __pyx_f_11distributed_9scheduler_14SchedulerState_set_duration_estimate(__pyx_v_self, __pyx_v_ts, __pyx_v_ws, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1914, __pyx_L1_error)
__pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1914, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.set_duration_estimate", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
1915: """Estimate task duration using worker state and task state.
1916:
1917: If a task takes longer than twice the current average duration we
1918: estimate the task duration to be 2x current-runtime, otherwise we set it
1919: to be the average duration.
1920: """
+1921: exec_time: double = ws._executing.get(ts, 0)
if (unlikely(__pyx_v_ws->_executing == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 1921, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_ws->_executing, ((PyObject *)__pyx_v_ts), __pyx_int_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1921, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1921, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_exec_time = __pyx_t_7;
+1922: duration: double = self.get_task_duration(ts)
__pyx_t_7 = ((struct __pyx_vtabstruct_11distributed_9scheduler_SchedulerState *)__pyx_v_self->__pyx_vtab)->get_task_duration(__pyx_v_self, __pyx_v_ts, 0, NULL); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1922, __pyx_L1_error)
__pyx_v_duration = __pyx_t_7;
1923: total_duration: double
+1924: if exec_time > 2 * duration:
__pyx_t_8 = ((__pyx_v_exec_time > (2.0 * __pyx_v_duration)) != 0);
if (__pyx_t_8) {
/* … */
goto __pyx_L3;
}
+1925: total_duration = 2 * exec_time
__pyx_v_total_duration = (2.0 * __pyx_v_exec_time);
1926: else:
+1927: comm: double = self.get_comm_cost(ts, ws)
/*else*/ {
__pyx_t_7 = ((struct __pyx_vtabstruct_11distributed_9scheduler_SchedulerState *)__pyx_v_self->__pyx_vtab)->get_comm_cost(__pyx_v_self, __pyx_v_ts, __pyx_v_ws, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1927, __pyx_L1_error)
__pyx_v_comm = __pyx_t_7;
+1928: total_duration = duration + comm
__pyx_v_total_duration = (__pyx_v_duration + __pyx_v_comm); } __pyx_L3:;
+1929: ws._processing[ts] = total_duration
__pyx_t_1 = PyFloat_FromDouble(__pyx_v_total_duration); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_ws->_processing == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 1929, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_ws->_processing, ((PyObject *)__pyx_v_ts), __pyx_t_1) < 0)) __PYX_ERR(0, 1929, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1930: return total_duration
__pyx_r = __pyx_v_total_duration; goto __pyx_L0;
1931:
+1932: def transition_waiting_processing(self, key):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_11transition_waiting_processing(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_11transition_waiting_processing(PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_waiting_processing (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_10transition_waiting_processing(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), ((PyObject *)__pyx_v_key));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_10transition_waiting_processing(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, PyObject *__pyx_v_key) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_v_worker_msgs = 0;
PyObject *__pyx_v_client_msgs = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_v_worker = NULL;
double __pyx_v_duration_estimate;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_pdb = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_9genexpr22__pyx_v_dts = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_waiting_processing", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_waiting_processing", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF(__pyx_v_worker_msgs);
__Pyx_XDECREF(__pyx_v_client_msgs);
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF(__pyx_v_worker);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_pdb);
__Pyx_XDECREF((PyObject *)__pyx_9genexpr22__pyx_v_dts);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1933: try:
{
/*try:*/ {
/* … */
}
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L1_error;
__pyx_L7_try_return:;
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L0;
}
+1934: ts: TaskState = self._tasks[key]
if (unlikely(__pyx_v_self->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1934, __pyx_L3_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1934, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 1934, __pyx_L3_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4);
__pyx_t_4 = 0;
1935: dts: TaskState
+1936: worker_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1936, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_worker_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+1937: client_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1937, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_client_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
1938:
+1939: if self._validate:
__pyx_t_5 = (__pyx_v_self->_validate != 0);
if (__pyx_t_5) {
/* … */
}
+1940: assert not ts._waiting_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 1940, __pyx_L3_error)
}
}
#endif
+1941: assert not ts._who_has
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 1941, __pyx_L3_error)
}
}
#endif
+1942: assert not ts._exception_blame
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_ts->_exception_blame); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1942, __pyx_L3_error)
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 1942, __pyx_L3_error)
}
}
#endif
+1943: assert not ts._processing_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ts->_processing_on)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1943, __pyx_L3_error)
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 1943, __pyx_L3_error)
}
}
#endif
+1944: assert not ts._has_lost_dependencies
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(!((!(__pyx_v_ts->_has_lost_dependencies != 0)) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 1944, __pyx_L3_error)
}
}
#endif
+1945: assert ts not in self._unrunnable
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_self->_unrunnable == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1945, __pyx_L3_error)
}
__pyx_t_5 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_self->_unrunnable, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1945, __pyx_L3_error)
if (unlikely(!(__pyx_t_5 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 1945, __pyx_L3_error)
}
}
#endif
+1946: assert all([dts._who_has for dts in ts._dependencies])
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
{ /* enter inner scope */
__pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1946, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_7 = 0;
__pyx_t_10 = __Pyx_set_iterator(__pyx_v_ts->_dependencies, 1, (&__pyx_t_8), (&__pyx_t_9)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1946, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_6);
__pyx_t_6 = __pyx_t_10;
__pyx_t_10 = 0;
while (1) {
__pyx_t_11 = __Pyx_set_iter_next(__pyx_t_6, __pyx_t_8, &__pyx_t_7, &__pyx_t_10, __pyx_t_9);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 1946, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_10);
if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 1946, __pyx_L12_error)
__Pyx_XDECREF_SET(__pyx_9genexpr22__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_10));
__pyx_t_10 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_9genexpr22__pyx_v_dts->_who_has))) __PYX_ERR(0, 1946, __pyx_L12_error)
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr22__pyx_v_dts); __pyx_9genexpr22__pyx_v_dts = 0;
goto __pyx_L15_exit_scope;
__pyx_L12_error:;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr22__pyx_v_dts); __pyx_9genexpr22__pyx_v_dts = 0;
goto __pyx_L3_error;
__pyx_L15_exit_scope:;
} /* exit inner scope */
__pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1946, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1946, __pyx_L3_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_5)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 1946, __pyx_L3_error)
}
}
#endif
1947:
+1948: ws: WorkerState = self.decide_worker(ts)
__pyx_t_6 = ((PyObject *)((struct __pyx_vtabstruct_11distributed_9scheduler_SchedulerState *)__pyx_v_self->__pyx_vtab)->decide_worker(__pyx_v_self, __pyx_v_ts, 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1948, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_6); __pyx_t_6 = 0;
+1949: if ws is None:
__pyx_t_5 = (((PyObject *)__pyx_v_ws) == Py_None);
__pyx_t_12 = (__pyx_t_5 != 0);
if (__pyx_t_12) {
/* … */
}
+1950: return {}, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1950, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1950, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_client_msgs); __pyx_t_6 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L7_try_return;
+1951: worker = ws._address
__pyx_t_4 = __pyx_v_ws->_address;
__Pyx_INCREF(__pyx_t_4);
__pyx_v_worker = ((PyObject*)__pyx_t_4);
__pyx_t_4 = 0;
1952:
+1953: duration_estimate = self.set_duration_estimate(ts, ws)
__pyx_t_13 = ((struct __pyx_vtabstruct_11distributed_9scheduler_SchedulerState *)__pyx_v_self->__pyx_vtab)->set_duration_estimate(__pyx_v_self, __pyx_v_ts, __pyx_v_ws, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1953, __pyx_L3_error)
__pyx_v_duration_estimate = __pyx_t_13;
+1954: ts._processing_on = ws
__Pyx_INCREF(((PyObject *)__pyx_v_ws)); __Pyx_GIVEREF(((PyObject *)__pyx_v_ws)); __Pyx_GOTREF(__pyx_v_ts->_processing_on); __Pyx_DECREF(((PyObject *)__pyx_v_ts->_processing_on)); __pyx_v_ts->_processing_on = __pyx_v_ws;
+1955: ws._occupancy += duration_estimate
__pyx_v_ws->_occupancy = (__pyx_v_ws->_occupancy + __pyx_v_duration_estimate);
+1956: self._total_occupancy += duration_estimate
__pyx_v_self->_total_occupancy = (__pyx_v_self->_total_occupancy + __pyx_v_duration_estimate);
+1957: ts.state = "processing"
if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_ts), __pyx_n_s_state, __pyx_n_u_processing_2) < 0) __PYX_ERR(0, 1957, __pyx_L3_error)
+1958: self.consume_resources(ts, ws)
__pyx_t_4 = ((struct __pyx_vtabstruct_11distributed_9scheduler_SchedulerState *)__pyx_v_self->__pyx_vtab)->consume_resources(__pyx_v_self, __pyx_v_ts, __pyx_v_ws, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1958, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1959: self.check_idle_saturated(ws)
__pyx_t_4 = ((struct __pyx_vtabstruct_11distributed_9scheduler_SchedulerState *)__pyx_v_self->__pyx_vtab)->check_idle_saturated(__pyx_v_self, __pyx_v_ws, 0, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1959, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1960: self._n_tasks += 1
__pyx_v_self->_n_tasks = (__pyx_v_self->_n_tasks + 1);
1961:
+1962: if ts._actor:
__pyx_t_12 = (__pyx_v_ts->_actor != 0);
if (__pyx_t_12) {
/* … */
}
+1963: ws._actors.add(ts)
if (unlikely(__pyx_v_ws->_actors == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 1963, __pyx_L3_error)
}
__pyx_t_14 = PySet_Add(__pyx_v_ws->_actors, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 1963, __pyx_L3_error)
1964:
1965: # logger.debug("Send job to worker: %s, %s", worker, key)
1966:
+1967: worker_msgs[worker] = [_task_to_msg(self, ts)]
__pyx_t_4 = __pyx_f_11distributed_9scheduler__task_to_msg(__pyx_v_self, __pyx_v_ts, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1967, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1967, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = 0; if (unlikely(PyDict_SetItem(__pyx_v_worker_msgs, __pyx_v_worker, __pyx_t_6) < 0)) __PYX_ERR(0, 1967, __pyx_L3_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
1968:
+1969: return {}, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1969, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1969, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_client_msgs); __pyx_t_6 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L7_try_return;
+1970: except Exception as e:
__pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_9) { __Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_waiting_processing", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_10) < 0) __PYX_ERR(0, 1970, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_10); __Pyx_INCREF(__pyx_t_6); __pyx_v_e = __pyx_t_6; /*try:*/ { /* … */ /*finally:*/ { __pyx_L23_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21) < 0)) __Pyx_ErrFetch(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __pyx_t_9 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_18 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_ExceptionReset(__pyx_t_22, __pyx_t_23, __pyx_t_24); } __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_ErrRestore(__pyx_t_19, __pyx_t_20, __pyx_t_21); __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_18; goto __pyx_L5_except_error; } } } goto __pyx_L5_except_error; __pyx_L5_except_error:;
+1971: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_logger); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1971, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_exception); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1971, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_17))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_17); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_17, function); } } __pyx_t_15 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_16, __pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_v_e); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1971, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+1972: if LOG_PDB:
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_LOG_PDB); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1972, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1972, __pyx_L23_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (__pyx_t_12) { /* … */ }
+1973: import pdb
__pyx_t_15 = __Pyx_Import(__pyx_n_s_pdb, 0, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1973, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_15); __pyx_v_pdb = __pyx_t_15; __pyx_t_15 = 0;
1974:
+1975: pdb.set_trace()
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_pdb, __pyx_n_s_set_trace); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1975, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_17); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_17, function); } } __pyx_t_15 = (__pyx_t_16) ? __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_t_16) : __Pyx_PyObject_CallNoArg(__pyx_t_17); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1975, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+1976: raise
__Pyx_GIVEREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_6, __pyx_t_10); __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_10 = 0; __PYX_ERR(0, 1976, __pyx_L23_error) }
1977:
+1978: def transition_waiting_memory(
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_13transition_waiting_memory(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_13transition_waiting_memory(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_nbytes = 0;
PyObject *__pyx_v_type = 0;
PyObject *__pyx_v_typename = 0;
PyObject *__pyx_v_worker = 0;
CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_waiting_memory (wrapper)", 0);
__pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
__Pyx_GOTREF(__pyx_v_kwargs);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_nbytes,&__pyx_n_s_type,&__pyx_n_s_typename,&__pyx_n_s_worker,0};
PyObject* values[5] = {0,0,0,0,0};
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_12transition_waiting_memory(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_nbytes, PyObject *__pyx_v_type, PyObject *__pyx_v_typename, PyObject *__pyx_v_worker, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_v_worker_msgs = 0;
PyObject *__pyx_v_client_msgs = 0;
PyObject *__pyx_v_recommendations = 0;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_pdb = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_waiting_memory", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_waiting_memory", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF(__pyx_v_worker_msgs);
__Pyx_XDECREF(__pyx_v_client_msgs);
__Pyx_XDECREF(__pyx_v_recommendations);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_pdb);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+1979: self, key, nbytes=None, type=None, typename: str = None, worker=None, **kwargs
values[1] = ((PyObject *)Py_None);
values[2] = ((PyObject *)Py_None);
values[3] = ((PyObject*)Py_None);
values[4] = ((PyObject *)Py_None);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nbytes);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_type);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_typename);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker);
if (value) { values[4] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "transition_waiting_memory") < 0)) __PYX_ERR(0, 1978, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_key = values[0];
__pyx_v_nbytes = values[1];
__pyx_v_type = values[2];
__pyx_v_typename = ((PyObject*)values[3]);
__pyx_v_worker = values[4];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("transition_waiting_memory", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1978, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_waiting_memory", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_typename), (&PyUnicode_Type), 1, "typename", 1))) __PYX_ERR(0, 1979, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_12transition_waiting_memory(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), __pyx_v_key, __pyx_v_nbytes, __pyx_v_type, __pyx_v_typename, __pyx_v_worker, __pyx_v_kwargs);
1980: ):
+1981: try:
{
/*try:*/ {
/* … */
}
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L1_error;
__pyx_L7_try_return:;
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L0;
}
+1982: ws: WorkerState = self._workers_dv[worker]
if (unlikely(__pyx_v_self->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1982, __pyx_L3_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->_workers_dv, __pyx_v_worker); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1982, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 1982, __pyx_L3_error)
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_4);
__pyx_t_4 = 0;
+1983: ts: TaskState = self._tasks[key]
if (unlikely(__pyx_v_self->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1983, __pyx_L3_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1983, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 1983, __pyx_L3_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4);
__pyx_t_4 = 0;
+1984: worker_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1984, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_worker_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+1985: client_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1985, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_client_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
1986:
+1987: if self._validate:
__pyx_t_5 = (__pyx_v_self->_validate != 0);
if (__pyx_t_5) {
/* … */
}
+1988: assert not ts._processing_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ts->_processing_on)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1988, __pyx_L3_error)
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 1988, __pyx_L3_error)
}
}
#endif
+1989: assert ts._waiting_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (unlikely(!__pyx_t_5)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 1989, __pyx_L3_error)
}
}
#endif
+1990: assert ts._state == "waiting"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_waiting, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1990, __pyx_L3_error)
if (unlikely(!(__pyx_t_5 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 1990, __pyx_L3_error)
}
}
#endif
1991:
+1992: ts._waiting_on.clear()
if (unlikely(__pyx_v_ts->_waiting_on == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear");
__PYX_ERR(0, 1992, __pyx_L3_error)
}
__pyx_t_6 = PySet_Clear(__pyx_v_ts->_waiting_on); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1992, __pyx_L3_error)
1993:
+1994: if nbytes is not None:
__pyx_t_5 = (__pyx_v_nbytes != Py_None);
__pyx_t_7 = (__pyx_t_5 != 0);
if (__pyx_t_7) {
/* … */
}
+1995: ts.set_nbytes(nbytes)
__pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_nbytes); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1995, __pyx_L3_error) __pyx_t_4 = __pyx_f_11distributed_9scheduler_9TaskState_set_nbytes(__pyx_v_ts, __pyx_t_8, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1995, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
1996:
+1997: self.check_idle_saturated(ws)
__pyx_t_4 = ((struct __pyx_vtabstruct_11distributed_9scheduler_SchedulerState *)__pyx_v_self->__pyx_vtab)->check_idle_saturated(__pyx_v_self, __pyx_v_ws, 0, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1997, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
1998:
+1999: recommendations: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1999, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_recommendations = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+2000: client_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2000, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF_SET(__pyx_v_client_msgs, ((PyObject*)__pyx_t_4)); __pyx_t_4 = 0;
2001:
+2002: _add_to_memory(
__pyx_t_9.__pyx_n = 2;
__pyx_t_9.type = __pyx_v_type;
__pyx_t_9.typename = __pyx_v_typename;
__pyx_t_4 = __pyx_f_11distributed_9scheduler__add_to_memory(__pyx_v_self, __pyx_v_ts, __pyx_v_ws, __pyx_v_recommendations, __pyx_v_client_msgs, &__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2002, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
2003: self, ts, ws, recommendations, client_msgs, type=type, typename=typename
2004: )
2005:
+2006: if self._validate:
__pyx_t_7 = (__pyx_v_self->_validate != 0);
if (__pyx_t_7) {
/* … */
}
+2007: assert not ts._processing_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_7 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ts->_processing_on)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2007, __pyx_L3_error)
if (unlikely(!((!__pyx_t_7) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2007, __pyx_L3_error)
}
}
#endif
+2008: assert not ts._waiting_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_7 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (unlikely(!((!__pyx_t_7) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2008, __pyx_L3_error)
}
}
#endif
+2009: assert ts._who_has
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_7 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
if (unlikely(!__pyx_t_7)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2009, __pyx_L3_error)
}
}
#endif
2010:
+2011: return recommendations, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2011, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_recommendations); __Pyx_GIVEREF(__pyx_v_recommendations); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_recommendations); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_client_msgs); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L7_try_return;
+2012: except Exception as e:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_10) { __Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_waiting_memory", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_11, &__pyx_t_12) < 0) __PYX_ERR(0, 2012, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_11); __Pyx_GOTREF(__pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_v_e = __pyx_t_11; /*try:*/ { /* … */ /*finally:*/ { __pyx_L17_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20) < 0)) __Pyx_ErrFetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __pyx_t_10 = __pyx_lineno; __pyx_t_16 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23); } __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ErrRestore(__pyx_t_18, __pyx_t_19, __pyx_t_20); __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_16; __pyx_filename = __pyx_t_17; goto __pyx_L5_except_error; } } } goto __pyx_L5_except_error; __pyx_L5_except_error:;
+2013: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_logger); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2013, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_exception); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2013, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_13 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_14, __pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_v_e); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2013, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+2014: if LOG_PDB:
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_LOG_PDB); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2014, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2014, __pyx_L17_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (__pyx_t_7) { /* … */ }
+2015: import pdb
__pyx_t_13 = __Pyx_Import(__pyx_n_s_pdb, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2015, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_13); __pyx_v_pdb = __pyx_t_13; __pyx_t_13 = 0;
2016:
+2017: pdb.set_trace()
__pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_pdb, __pyx_n_s_set_trace); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2017, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_15))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_13 = (__pyx_t_14) ? __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_14) : __Pyx_PyObject_CallNoArg(__pyx_t_15); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2017, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+2018: raise
__Pyx_GIVEREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_11, __pyx_t_12); __pyx_t_4 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __PYX_ERR(0, 2018, __pyx_L17_error) }
2019:
+2020: def transition_processing_memory(
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_15transition_processing_memory(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_15transition_processing_memory(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_nbytes = 0;
PyObject *__pyx_v_type = 0;
PyObject *__pyx_v_typename = 0;
PyObject *__pyx_v_worker = 0;
PyObject *__pyx_v_startstops = 0;
CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_processing_memory (wrapper)", 0);
__pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
__Pyx_GOTREF(__pyx_v_kwargs);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_nbytes,&__pyx_n_s_type,&__pyx_n_s_typename,&__pyx_n_s_worker,&__pyx_n_s_startstops,0};
PyObject* values[6] = {0,0,0,0,0,0};
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_14transition_processing_memory(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_nbytes, PyObject *__pyx_v_type, PyObject *__pyx_v_typename, PyObject *__pyx_v_worker, PyObject *__pyx_v_startstops, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_wws = 0;
PyObject *__pyx_v_worker_msgs = 0;
PyObject *__pyx_v_client_msgs = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_v_L = NULL;
PyObject *__pyx_v_startstop = NULL;
PyObject *__pyx_v_stop = NULL;
PyObject *__pyx_v_start = NULL;
PyObject *__pyx_v_action = NULL;
PyObject *__pyx_v_compute_start = NULL;
PyObject *__pyx_v_compute_stop = NULL;
double __pyx_v_old_duration;
PyObject *__pyx_v_new_duration = NULL;
PyObject *__pyx_v_avg_duration = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_tts = 0;
PyObject *__pyx_v_old = NULL;
double __pyx_v_comm;
PyObject *__pyx_v_recommendations = 0;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_pdb = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_processing_memory", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(((PyObject *)__pyx_t_18));
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_processing_memory", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF((PyObject *)__pyx_v_wws);
__Pyx_XDECREF(__pyx_v_worker_msgs);
__Pyx_XDECREF(__pyx_v_client_msgs);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF(__pyx_v_L);
__Pyx_XDECREF(__pyx_v_startstop);
__Pyx_XDECREF(__pyx_v_stop);
__Pyx_XDECREF(__pyx_v_start);
__Pyx_XDECREF(__pyx_v_action);
__Pyx_XDECREF(__pyx_v_compute_start);
__Pyx_XDECREF(__pyx_v_compute_stop);
__Pyx_XDECREF(__pyx_v_new_duration);
__Pyx_XDECREF(__pyx_v_avg_duration);
__Pyx_XDECREF((PyObject *)__pyx_v_tts);
__Pyx_XDECREF(__pyx_v_old);
__Pyx_XDECREF(__pyx_v_recommendations);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_pdb);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
2021: self,
2022: key,
+2023: nbytes=None,
values[1] = ((PyObject *)Py_None);
+2024: type=None,
values[2] = ((PyObject *)Py_None);
+2025: typename: str = None,
values[3] = ((PyObject*)Py_None);
+2026: worker=None,
values[4] = ((PyObject *)Py_None);
+2027: startstops=None,
values[5] = ((PyObject *)Py_None);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nbytes);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_type);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_typename);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_startstops);
if (value) { values[5] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "transition_processing_memory") < 0)) __PYX_ERR(0, 2020, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_key = values[0];
__pyx_v_nbytes = values[1];
__pyx_v_type = values[2];
__pyx_v_typename = ((PyObject*)values[3]);
__pyx_v_worker = values[4];
__pyx_v_startstops = values[5];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("transition_processing_memory", 0, 1, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2020, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_processing_memory", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_typename), (&PyUnicode_Type), 1, "typename", 1))) __PYX_ERR(0, 2025, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_14transition_processing_memory(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), __pyx_v_key, __pyx_v_nbytes, __pyx_v_type, __pyx_v_typename, __pyx_v_worker, __pyx_v_startstops, __pyx_v_kwargs);
2028: **kwargs,
2029: ):
2030: ws: WorkerState
2031: wws: WorkerState
+2032: worker_msgs: dict = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2032, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_worker_msgs = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+2033: client_msgs: dict = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_client_msgs = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+2034: try:
{
/*try:*/ {
/* … */
}
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(((PyObject *)__pyx_t_18)); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L1_error;
__pyx_L7_try_return:;
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L0;
}
+2035: ts: TaskState = self._tasks[key]
if (unlikely(__pyx_v_self->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2035, __pyx_L3_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2035, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2035, __pyx_L3_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1);
__pyx_t_1 = 0;
+2036: assert worker
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_worker); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2036, __pyx_L3_error)
if (unlikely(!__pyx_t_5)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2036, __pyx_L3_error)
}
}
#endif
+2037: assert isinstance(worker, str)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = PyUnicode_Check(__pyx_v_worker);
if (unlikely(!(__pyx_t_5 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2037, __pyx_L3_error)
}
}
#endif
2038:
+2039: if self._validate:
__pyx_t_5 = (__pyx_v_self->_validate != 0);
if (__pyx_t_5) {
/* … */
}
+2040: assert ts._processing_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ts->_processing_on)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2040, __pyx_L3_error)
if (unlikely(!__pyx_t_5)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2040, __pyx_L3_error)
}
}
#endif
+2041: ws = ts._processing_on
__pyx_t_1 = ((PyObject *)__pyx_v_ts->_processing_on);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1);
__pyx_t_1 = 0;
+2042: assert ts in ws._processing
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_ws->_processing == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2042, __pyx_L3_error)
}
__pyx_t_5 = (__Pyx_PyDict_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_ws->_processing, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2042, __pyx_L3_error)
if (unlikely(!(__pyx_t_5 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2042, __pyx_L3_error)
}
}
#endif
+2043: assert not ts._waiting_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2043, __pyx_L3_error)
}
}
#endif
+2044: assert not ts._who_has, (ts, ts._who_has)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2044, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(((PyObject *)__pyx_v_ts));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ts));
PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_ts));
__Pyx_INCREF(__pyx_v_ts->_who_has);
__Pyx_GIVEREF(__pyx_v_ts->_who_has);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ts->_who_has);
__pyx_t_6 = PyTuple_Pack(1, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2044, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyErr_SetObject(PyExc_AssertionError, __pyx_t_6);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__PYX_ERR(0, 2044, __pyx_L3_error)
}
}
#endif
+2045: assert not ts._exception_blame
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_ts->_exception_blame); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2045, __pyx_L3_error)
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2045, __pyx_L3_error)
}
}
#endif
+2046: assert ts._state == "processing"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_processing_2, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2046, __pyx_L3_error)
if (unlikely(!(__pyx_t_5 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2046, __pyx_L3_error)
}
}
#endif
2047:
+2048: ws = self._workers_dv.get(worker)
if (unlikely(__pyx_v_self->_workers_dv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 2048, __pyx_L3_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItemDefault(__pyx_v_self->_workers_dv, __pyx_v_worker, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2048, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 2048, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_6));
__pyx_t_6 = 0;
+2049: if ws is None:
__pyx_t_5 = (((PyObject *)__pyx_v_ws) == Py_None);
__pyx_t_7 = (__pyx_t_5 != 0);
if (__pyx_t_7) {
/* … */
}
+2050: return {key: "released"}, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2050, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_v_key, __pyx_n_u_released) < 0) __PYX_ERR(0, 2050, __pyx_L3_error) __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2050, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_client_msgs); __pyx_t_6 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L7_try_return;
2051:
+2052: if ws != ts._processing_on: # someone else has this task
__pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_ws), ((PyObject *)__pyx_v_ts->_processing_on), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2052, __pyx_L3_error) __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2052, __pyx_L3_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_7) { /* … */ }
+2053: logger.info(
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_logger); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2053, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2053, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
2054: "Unexpected worker completed task, likely due to"
2055: " work stealing. Expected: %s, Got: %s, Key: %s",
2056: ts._processing_on,
2057: ws,
+2058: key,
__pyx_t_6 = NULL;
__pyx_t_9 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
if (likely(__pyx_t_6)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_8, function);
__pyx_t_9 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_8)) {
PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_kp_u_Unexpected_worker_completed_task, ((PyObject *)__pyx_v_ts->_processing_on), ((PyObject *)__pyx_v_ws), __pyx_v_key};
__pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2053, __pyx_L3_error)
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_GOTREF(__pyx_t_1);
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_kp_u_Unexpected_worker_completed_task, ((PyObject *)__pyx_v_ts->_processing_on), ((PyObject *)__pyx_v_ws), __pyx_v_key};
__pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2053, __pyx_L3_error)
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_GOTREF(__pyx_t_1);
} else
#endif
{
__pyx_t_10 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2053, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_10);
if (__pyx_t_6) {
__Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_6); __pyx_t_6 = NULL;
}
__Pyx_INCREF(__pyx_kp_u_Unexpected_worker_completed_task);
__Pyx_GIVEREF(__pyx_kp_u_Unexpected_worker_completed_task);
PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_kp_u_Unexpected_worker_completed_task);
__Pyx_INCREF(((PyObject *)__pyx_v_ts->_processing_on));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ts->_processing_on));
PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, ((PyObject *)__pyx_v_ts->_processing_on));
__Pyx_INCREF(((PyObject *)__pyx_v_ws));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ws));
PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, ((PyObject *)__pyx_v_ws));
__Pyx_INCREF(__pyx_v_key);
__Pyx_GIVEREF(__pyx_v_key);
PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_9, __pyx_v_key);
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2053, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2059: )
+2060: return {}, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2060, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2060, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_client_msgs); __pyx_t_1 = 0; __pyx_r = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L7_try_return;
2061:
+2062: if startstops:
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_startstops); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2062, __pyx_L3_error) if (__pyx_t_7) { /* … */ goto __pyx_L12; }
+2063: L = list()
__pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2063, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_L = ((PyObject*)__pyx_t_8); __pyx_t_8 = 0;
+2064: for startstop in startstops:
if (likely(PyList_CheckExact(__pyx_v_startstops)) || PyTuple_CheckExact(__pyx_v_startstops)) { __pyx_t_8 = __pyx_v_startstops; __Pyx_INCREF(__pyx_t_8); __pyx_t_11 = 0; __pyx_t_12 = NULL; } else { __pyx_t_11 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_v_startstops); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2064, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_12 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2064, __pyx_L3_error) } for (;;) { if (likely(!__pyx_t_12)) { if (likely(PyList_CheckExact(__pyx_t_8))) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2064, __pyx_L3_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_8, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2064, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2064, __pyx_L3_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_8, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2064, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_12(__pyx_t_8); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 2064, __pyx_L3_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_startstop, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2065: stop = startstop["stop"]
__pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_startstop, __pyx_n_u_stop); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2065, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_stop, __pyx_t_1); __pyx_t_1 = 0;
+2066: start = startstop["start"]
__pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_startstop, __pyx_n_u_start); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2066, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_start, __pyx_t_1); __pyx_t_1 = 0;
+2067: action = startstop["action"]
__pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_startstop, __pyx_n_u_action); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2067, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_action, __pyx_t_1); __pyx_t_1 = 0;
+2068: if action == "compute":
__pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_action, __pyx_n_u_compute, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2068, __pyx_L3_error) if (__pyx_t_7) { /* … */ }
+2069: L.append((start, stop))
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2069, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_start); __Pyx_GIVEREF(__pyx_v_start); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_start); __Pyx_INCREF(__pyx_v_stop); __Pyx_GIVEREF(__pyx_v_stop); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_stop); __pyx_t_13 = __Pyx_PyList_Append(__pyx_v_L, __pyx_t_1); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(0, 2069, __pyx_L3_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2070:
2071: # record timings of all actions -- a cheaper way of
2072: # getting timing info compared with get_task_stream()
+2073: ts._prefix._all_durations[action] += stop - start
__Pyx_INCREF(__pyx_v_ts->_prefix->_all_durations); __pyx_t_1 = __pyx_v_ts->_prefix->_all_durations; __Pyx_INCREF(__pyx_v_action); __pyx_t_10 = __pyx_v_action; __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2073, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_14 = PyNumber_Subtract(__pyx_v_stop, __pyx_v_start); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2073, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_15 = PyNumber_InPlaceAdd(__pyx_t_6, __pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2073, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_t_10, __pyx_t_15) < 0)) __PYX_ERR(0, 2073, __pyx_L3_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2074:
+2075: if len(L) > 0:
__pyx_t_11 = PyList_GET_SIZE(__pyx_v_L); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2075, __pyx_L3_error) __pyx_t_7 = ((__pyx_t_11 > 0) != 0); if (__pyx_t_7) { /* … */ goto __pyx_L16; }
+2076: compute_start, compute_stop = L[0]
__pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_L, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2076, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); if ((likely(PyTuple_CheckExact(__pyx_t_8))) || (PyList_CheckExact(__pyx_t_8))) { PyObject* sequence = __pyx_t_8; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2076, __pyx_L3_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_10 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_10 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_10); #else __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2076, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2076, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_10); #endif __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else { Py_ssize_t index = -1; __pyx_t_15 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2076, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_16 = Py_TYPE(__pyx_t_15)->tp_iternext; index = 0; __pyx_t_1 = __pyx_t_16(__pyx_t_15); if (unlikely(!__pyx_t_1)) goto __pyx_L17_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); index = 1; __pyx_t_10 = __pyx_t_16(__pyx_t_15); if (unlikely(!__pyx_t_10)) goto __pyx_L17_unpacking_failed; __Pyx_GOTREF(__pyx_t_10); if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_15), 2) < 0) __PYX_ERR(0, 2076, __pyx_L3_error) __pyx_t_16 = NULL; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; goto __pyx_L18_unpacking_done; __pyx_L17_unpacking_failed:; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_16 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 2076, __pyx_L3_error) __pyx_L18_unpacking_done:; } __pyx_v_compute_start = __pyx_t_1; __pyx_t_1 = 0; __pyx_v_compute_stop = __pyx_t_10; __pyx_t_10 = 0;
2077: else: # This is very rare
+2078: compute_start = compute_stop = None
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_compute_start = Py_None;
__Pyx_INCREF(Py_None);
__pyx_v_compute_stop = Py_None;
}
__pyx_L16:;
2079: else:
+2080: compute_start = compute_stop = None
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_compute_start = Py_None;
__Pyx_INCREF(Py_None);
__pyx_v_compute_stop = Py_None;
}
__pyx_L12:;
2081:
2082: #############################
2083: # Update Timing Information #
2084: #############################
+2085: if compute_start and ws._processing.get(ts, True):
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_compute_start); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2085, __pyx_L3_error) if (__pyx_t_5) { } else { __pyx_t_7 = __pyx_t_5; goto __pyx_L20_bool_binop_done; } if (unlikely(__pyx_v_ws->_processing == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); __PYX_ERR(0, 2085, __pyx_L3_error) } __pyx_t_8 = __Pyx_PyDict_GetItemDefault(__pyx_v_ws->_processing, ((PyObject *)__pyx_v_ts), Py_True); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2085, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2085, __pyx_L3_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_7 = __pyx_t_5; __pyx_L20_bool_binop_done:; if (__pyx_t_7) { /* … */ }
2086: # Update average task duration for worker
+2087: old_duration = ts._prefix._duration_average
__pyx_t_17 = __pyx_v_ts->_prefix->_duration_average;
__pyx_v_old_duration = __pyx_t_17;
+2088: new_duration = compute_stop - compute_start
__pyx_t_8 = PyNumber_Subtract(__pyx_v_compute_stop, __pyx_v_compute_start); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2088, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_new_duration = __pyx_t_8; __pyx_t_8 = 0;
+2089: if old_duration < 0:
__pyx_t_7 = ((__pyx_v_old_duration < 0.0) != 0);
if (__pyx_t_7) {
/* … */
goto __pyx_L22;
}
+2090: avg_duration = new_duration
__Pyx_INCREF(__pyx_v_new_duration);
__pyx_v_avg_duration = __pyx_v_new_duration;
2091: else:
+2092: avg_duration = 0.5 * old_duration + 0.5 * new_duration
/*else*/ {
__pyx_t_8 = PyFloat_FromDouble((0.5 * __pyx_v_old_duration)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2092, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_10 = PyNumber_Multiply(__pyx_float_0_5, __pyx_v_new_duration); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2092, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_1 = PyNumber_Add(__pyx_t_8, __pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2092, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_v_avg_duration = __pyx_t_1;
__pyx_t_1 = 0;
}
__pyx_L22:;
2093:
+2094: ts._prefix._duration_average = avg_duration
__pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_v_avg_duration); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2094, __pyx_L3_error) __pyx_v_ts->_prefix->_duration_average = __pyx_t_17;
+2095: ts._group._duration += new_duration
__Pyx_INCREF(((PyObject *)__pyx_v_ts->_group)); __pyx_t_18 = __pyx_v_ts->_group; __pyx_t_1 = PyFloat_FromDouble(__pyx_t_18->_duration); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2095, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_v_new_duration); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2095, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_10); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2095, __pyx_L3_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_18->_duration = __pyx_t_17; __Pyx_DECREF(((PyObject *)__pyx_t_18)); __pyx_t_18 = 0;
2096:
2097: tts: TaskState
+2098: for tts in self._unknown_durations.pop(ts._prefix._name, ()):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_unknown_durations, __pyx_n_s_pop); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2098, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_9 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_ts->_prefix->_name, __pyx_empty_tuple}; __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2098, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_10); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_ts->_prefix->_name, __pyx_empty_tuple}; __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2098, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_10); } else #endif { __pyx_t_15 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2098, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_INCREF(__pyx_v_ts->_prefix->_name); __Pyx_GIVEREF(__pyx_v_ts->_prefix->_name); PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_9, __pyx_v_ts->_prefix->_name); __Pyx_INCREF(__pyx_empty_tuple); __Pyx_GIVEREF(__pyx_empty_tuple); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_9, __pyx_empty_tuple); __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_15, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2098, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) { __pyx_t_1 = __pyx_t_10; __Pyx_INCREF(__pyx_t_1); __pyx_t_11 = 0; __pyx_t_12 = NULL; } else { __pyx_t_11 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2098, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2098, __pyx_L3_error) } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; for (;;) { if (likely(!__pyx_t_12)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_10); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2098, __pyx_L3_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2098, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_10); #endif } else { if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_10); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 2098, __pyx_L3_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2098, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_10); #endif } } else { __pyx_t_10 = __pyx_t_12(__pyx_t_1); if (unlikely(!__pyx_t_10)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 2098, __pyx_L3_error) } break; } __Pyx_GOTREF(__pyx_t_10); } if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2098, __pyx_L3_error) __Pyx_XDECREF_SET(__pyx_v_tts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_10)); __pyx_t_10 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2099: if tts._processing_on:
__pyx_t_7 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_tts->_processing_on)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2099, __pyx_L3_error) if (__pyx_t_7) { /* … */ }
+2100: wws = tts._processing_on
__pyx_t_10 = ((PyObject *)__pyx_v_tts->_processing_on);
__Pyx_INCREF(__pyx_t_10);
__Pyx_XDECREF_SET(__pyx_v_wws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_10));
__pyx_t_10 = 0;
+2101: old = wws._processing[tts]
if (unlikely(__pyx_v_wws->_processing == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2101, __pyx_L3_error)
}
__pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_wws->_processing, ((PyObject *)__pyx_v_tts)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2101, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_XDECREF_SET(__pyx_v_old, __pyx_t_10);
__pyx_t_10 = 0;
+2102: comm = self.get_comm_cost(tts, wws)
__pyx_t_17 = ((struct __pyx_vtabstruct_11distributed_9scheduler_SchedulerState *)__pyx_v_self->__pyx_vtab)->get_comm_cost(__pyx_v_self, __pyx_v_tts, __pyx_v_wws, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2102, __pyx_L3_error)
__pyx_v_comm = __pyx_t_17;
+2103: wws._processing[tts] = avg_duration + comm
__pyx_t_10 = PyFloat_FromDouble(__pyx_v_comm); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2103, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_15 = PyNumber_Add(__pyx_v_avg_duration, __pyx_t_10); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2103, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(__pyx_v_wws->_processing == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2103, __pyx_L3_error) } if (unlikely(PyDict_SetItem(__pyx_v_wws->_processing, ((PyObject *)__pyx_v_tts), __pyx_t_15) < 0)) __PYX_ERR(0, 2103, __pyx_L3_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2104: wws._occupancy += avg_duration + comm - old
__pyx_t_15 = PyFloat_FromDouble(__pyx_v_wws->_occupancy); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2104, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_10 = PyFloat_FromDouble(__pyx_v_comm); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2104, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_8 = PyNumber_Add(__pyx_v_avg_duration, __pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2104, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Subtract(__pyx_t_8, __pyx_v_old); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2104, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_15, __pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2104, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2104, __pyx_L3_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_wws->_occupancy = __pyx_t_17;
+2105: self._total_occupancy += avg_duration + comm - old
__pyx_t_8 = PyFloat_FromDouble(__pyx_v_self->_total_occupancy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2105, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = PyFloat_FromDouble(__pyx_v_comm); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2105, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_15 = PyNumber_Add(__pyx_v_avg_duration, __pyx_t_10); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2105, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Subtract(__pyx_t_15, __pyx_v_old); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2105, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyNumber_InPlaceAdd(__pyx_t_8, __pyx_t_10); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2105, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_17 = __pyx_PyFloat_AsDouble(__pyx_t_15); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2105, __pyx_L3_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_v_self->_total_occupancy = __pyx_t_17;
2106:
2107: ############################
2108: # Update State Information #
2109: ############################
+2110: if nbytes is not None:
__pyx_t_7 = (__pyx_v_nbytes != Py_None);
__pyx_t_5 = (__pyx_t_7 != 0);
if (__pyx_t_5) {
/* … */
}
+2111: ts.set_nbytes(nbytes)
__pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_v_nbytes); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 2111, __pyx_L3_error) __pyx_t_1 = __pyx_f_11distributed_9scheduler_9TaskState_set_nbytes(__pyx_v_ts, __pyx_t_11, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2111, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2112:
+2113: recommendations: dict = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2113, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_recommendations = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+2114: client_msgs: dict = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2114, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_client_msgs, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0;
2115:
+2116: _remove_from_processing(self, ts)
__pyx_t_1 = __pyx_f_11distributed_9scheduler__remove_from_processing(__pyx_v_self, __pyx_v_ts); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2116, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2117:
+2118: _add_to_memory(
__pyx_t_19.__pyx_n = 2;
__pyx_t_19.type = __pyx_v_type;
__pyx_t_19.typename = __pyx_v_typename;
__pyx_t_1 = __pyx_f_11distributed_9scheduler__add_to_memory(__pyx_v_self, __pyx_v_ts, __pyx_v_ws, __pyx_v_recommendations, __pyx_v_client_msgs, &__pyx_t_19); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2118, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2119: self, ts, ws, recommendations, client_msgs, type=type, typename=typename
2120: )
2121:
+2122: if self._validate:
__pyx_t_5 = (__pyx_v_self->_validate != 0);
if (__pyx_t_5) {
/* … */
}
+2123: assert not ts._processing_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ts->_processing_on)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2123, __pyx_L3_error)
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2123, __pyx_L3_error)
}
}
#endif
+2124: assert not ts._waiting_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2124, __pyx_L3_error)
}
}
#endif
2125:
+2126: return recommendations, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2126, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_recommendations); __Pyx_GIVEREF(__pyx_v_recommendations); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_recommendations); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_client_msgs); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L7_try_return;
+2127: except Exception as e:
__pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_9) { __Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_processing_memory", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_15, &__pyx_t_10) < 0) __PYX_ERR(0, 2127, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_15); __Pyx_GOTREF(__pyx_t_10); __Pyx_INCREF(__pyx_t_15); __pyx_v_e = __pyx_t_15; /*try:*/ { /* … */ /*finally:*/ { __pyx_L33_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(((PyObject *)__pyx_t_18)); __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_25, &__pyx_t_26, &__pyx_t_27); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24) < 0)) __Pyx_ErrFetch(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_27); __pyx_t_9 = __pyx_lineno; __pyx_t_20 = __pyx_clineno; __pyx_t_21 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_25); __Pyx_XGIVEREF(__pyx_t_26); __Pyx_XGIVEREF(__pyx_t_27); __Pyx_ExceptionReset(__pyx_t_25, __pyx_t_26, __pyx_t_27); } __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_ErrRestore(__pyx_t_22, __pyx_t_23, __pyx_t_24); __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_20; __pyx_filename = __pyx_t_21; goto __pyx_L5_except_error; } } } goto __pyx_L5_except_error; __pyx_L5_except_error:;
+2128: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_logger); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2128, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_exception); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2128, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_8 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_14, __pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_e); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2128, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2129: if LOG_PDB:
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_LOG_PDB); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2129, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2129, __pyx_L33_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_5) { /* … */ }
+2130: import pdb
__pyx_t_8 = __Pyx_Import(__pyx_n_s_pdb, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2130, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_pdb = __pyx_t_8; __pyx_t_8 = 0;
2131:
+2132: pdb.set_trace()
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_pdb, __pyx_n_s_set_trace); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2132, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_8 = (__pyx_t_14) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_14) : __Pyx_PyObject_CallNoArg(__pyx_t_6); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2132, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2133: raise
__Pyx_GIVEREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_15, __pyx_t_10); __pyx_t_1 = 0; __pyx_t_15 = 0; __pyx_t_10 = 0; __PYX_ERR(0, 2133, __pyx_L33_error) }
2134:
+2135: def transition_memory_released(self, key, safe: bint = False):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_17transition_memory_released(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_17transition_memory_released(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_key = 0;
int __pyx_v_safe;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_memory_released (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_safe,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_safe);
if (value) { values[1] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "transition_memory_released") < 0)) __PYX_ERR(0, 2135, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_key = values[0];
if (values[1]) {
__pyx_v_safe = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_safe == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2135, __pyx_L3_error)
} else {
__pyx_v_safe = ((int)0);
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("transition_memory_released", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2135, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_memory_released", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_16transition_memory_released(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), __pyx_v_key, __pyx_v_safe);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_16transition_memory_released(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, PyObject *__pyx_v_key, int __pyx_v_safe) {
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_dts = 0;
PyObject *__pyx_v_worker_msgs = 0;
PyObject *__pyx_v_client_msgs = 0;
PyObject *__pyx_v_recommendations = 0;
PyObject *__pyx_v_report_msg = NULL;
struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_cs = 0;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_pdb = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_memory_released", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(((PyObject *)__pyx_t_16));
__Pyx_XDECREF(__pyx_t_17);
__Pyx_XDECREF(__pyx_t_18);
__Pyx_XDECREF(__pyx_t_19);
__Pyx_XDECREF(__pyx_t_20);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_memory_released", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_v_dts);
__Pyx_XDECREF(__pyx_v_worker_msgs);
__Pyx_XDECREF(__pyx_v_client_msgs);
__Pyx_XDECREF(__pyx_v_recommendations);
__Pyx_XDECREF(__pyx_v_report_msg);
__Pyx_XDECREF((PyObject *)__pyx_v_cs);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_pdb);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
2136: ws: WorkerState
+2137: try:
{
/*try:*/ {
/* … */
}
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(((PyObject *)__pyx_t_16)); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L1_error;
__pyx_L7_try_return:;
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L0;
}
+2138: ts: TaskState = self._tasks[key]
if (unlikely(__pyx_v_self->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2138, __pyx_L3_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2138, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2138, __pyx_L3_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4);
__pyx_t_4 = 0;
2139: dts: TaskState
+2140: worker_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2140, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_worker_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+2141: client_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2141, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_client_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
2142:
+2143: if self._validate:
__pyx_t_5 = (__pyx_v_self->_validate != 0);
if (__pyx_t_5) {
/* … */
}
+2144: assert not ts._waiting_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2144, __pyx_L3_error)
}
}
#endif
+2145: assert not ts._processing_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ts->_processing_on)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2145, __pyx_L3_error)
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2145, __pyx_L3_error)
}
}
#endif
+2146: if safe:
__pyx_t_5 = (__pyx_v_safe != 0);
if (__pyx_t_5) {
/* … */
}
+2147: assert not ts._waiters
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_waiters != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiters) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2147, __pyx_L3_error)
}
}
#endif
2148:
+2149: if ts._actor:
__pyx_t_5 = (__pyx_v_ts->_actor != 0);
if (__pyx_t_5) {
/* … */
}
+2150: for ws in ts._who_has:
__pyx_t_6 = 0;
__pyx_t_9 = __Pyx_set_iterator(__pyx_v_ts->_who_has, 1, (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2150, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_9;
__pyx_t_9 = 0;
while (1) {
__pyx_t_10 = __Pyx_set_iter_next(__pyx_t_4, __pyx_t_7, &__pyx_t_6, &__pyx_t_9, __pyx_t_8);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 2150, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_9);
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 2150, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_9));
__pyx_t_9 = 0;
+2151: ws._actors.discard(ts)
if (unlikely(__pyx_v_ws->_actors == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "discard");
__PYX_ERR(0, 2151, __pyx_L3_error)
}
__pyx_t_11 = __Pyx_PySet_Discard(__pyx_v_ws->_actors, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 2151, __pyx_L3_error)
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2152: if ts._who_wants:
__pyx_t_5 = (__pyx_v_ts->_who_wants != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_wants) != 0);
if (__pyx_t_5) {
/* … */
}
+2153: ts._exception_blame = ts
__Pyx_INCREF(((PyObject *)__pyx_v_ts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_ts)); __Pyx_GOTREF(__pyx_v_ts->_exception_blame); __Pyx_DECREF(__pyx_v_ts->_exception_blame); __pyx_v_ts->_exception_blame = ((PyObject *)__pyx_v_ts);
+2154: ts._exception = "Worker holding Actor was lost"
__Pyx_INCREF(__pyx_kp_u_Worker_holding_Actor_was_lost); __Pyx_GIVEREF(__pyx_kp_u_Worker_holding_Actor_was_lost); __Pyx_GOTREF(__pyx_v_ts->_exception); __Pyx_DECREF(__pyx_v_ts->_exception); __pyx_v_ts->_exception = __pyx_kp_u_Worker_holding_Actor_was_lost;
+2155: return (
__Pyx_XDECREF(__pyx_r);
+2156: {ts._key: "erred"},
__pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2156, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_v_ts->_key, __pyx_n_u_erred) < 0) __PYX_ERR(0, 2156, __pyx_L3_error) /* … */ __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2156, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_v_client_msgs); __pyx_t_4 = 0; __pyx_r = __pyx_t_9; __pyx_t_9 = 0; goto __pyx_L7_try_return;
2157: worker_msgs,
2158: client_msgs,
2159: ) # don't try to recreate
2160:
+2161: recommendations: dict = {}
__pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2161, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); __pyx_v_recommendations = ((PyObject*)__pyx_t_9); __pyx_t_9 = 0;
2162:
+2163: for dts in ts._waiters:
__pyx_t_7 = 0;
__pyx_t_4 = __Pyx_set_iterator(__pyx_v_ts->_waiters, 1, (&__pyx_t_6), (&__pyx_t_8)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2163, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_9);
__pyx_t_9 = __pyx_t_4;
__pyx_t_4 = 0;
while (1) {
__pyx_t_10 = __Pyx_set_iter_next(__pyx_t_9, __pyx_t_6, &__pyx_t_7, &__pyx_t_4, __pyx_t_8);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 2163, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2163, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4));
__pyx_t_4 = 0;
+2164: if dts._state in ("no-worker", "processing"):
__Pyx_INCREF(__pyx_v_dts->_state); __pyx_t_12 = __pyx_v_dts->_state; __pyx_t_13 = (__Pyx_PyUnicode_Equals(__pyx_t_12, __pyx_kp_u_no_worker, Py_EQ)); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 2164, __pyx_L3_error) __pyx_t_14 = (__pyx_t_13 != 0); if (!__pyx_t_14) { } else { __pyx_t_5 = __pyx_t_14; goto __pyx_L18_bool_binop_done; } __pyx_t_14 = (__Pyx_PyUnicode_Equals(__pyx_t_12, __pyx_n_u_processing_2, Py_EQ)); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 2164, __pyx_L3_error) __pyx_t_13 = (__pyx_t_14 != 0); __pyx_t_5 = __pyx_t_13; __pyx_L18_bool_binop_done:; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_13 = (__pyx_t_5 != 0); if (__pyx_t_13) { /* … */ goto __pyx_L17; }
+2165: recommendations[dts._key] = "waiting"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_dts->_key, __pyx_n_u_waiting) < 0)) __PYX_ERR(0, 2165, __pyx_L3_error)
+2166: elif dts._state == "waiting":
__pyx_t_13 = (__Pyx_PyUnicode_Equals(__pyx_v_dts->_state, __pyx_n_u_waiting, Py_EQ)); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 2166, __pyx_L3_error) __pyx_t_5 = (__pyx_t_13 != 0); if (__pyx_t_5) { /* … */ } __pyx_L17:; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2167: dts._waiting_on.add(ts)
if (unlikely(__pyx_v_dts->_waiting_on == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 2167, __pyx_L3_error)
}
__pyx_t_11 = PySet_Add(__pyx_v_dts->_waiting_on, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 2167, __pyx_L3_error)
2168:
2169: # XXX factor this out?
+2170: for ws in ts._who_has:
__pyx_t_6 = 0;
__pyx_t_4 = __Pyx_set_iterator(__pyx_v_ts->_who_has, 1, (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2170, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_9);
__pyx_t_9 = __pyx_t_4;
__pyx_t_4 = 0;
while (1) {
__pyx_t_10 = __Pyx_set_iter_next(__pyx_t_9, __pyx_t_7, &__pyx_t_6, &__pyx_t_4, __pyx_t_8);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 2170, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 2170, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_4));
__pyx_t_4 = 0;
+2171: ws._has_what.remove(ts)
if (unlikely(__pyx_v_ws->_has_what == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
__PYX_ERR(0, 2171, __pyx_L3_error)
}
__pyx_t_11 = __Pyx_PySet_Remove(__pyx_v_ws->_has_what, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 2171, __pyx_L3_error)
+2172: ws._nbytes -= ts.get_nbytes()
__pyx_t_15 = __pyx_f_11distributed_9scheduler_9TaskState_get_nbytes(__pyx_v_ts, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2172, __pyx_L3_error)
__pyx_v_ws->_nbytes = (__pyx_v_ws->_nbytes - __pyx_t_15);
+2173: ts._group._nbytes_in_memory -= ts.get_nbytes()
__Pyx_INCREF(((PyObject *)__pyx_v_ts->_group)); __pyx_t_16 = __pyx_v_ts->_group; __pyx_t_15 = __pyx_f_11distributed_9scheduler_9TaskState_get_nbytes(__pyx_v_ts, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2173, __pyx_L3_error) __pyx_t_16->_nbytes_in_memory = (__pyx_t_16->_nbytes_in_memory - __pyx_t_15); __Pyx_DECREF(((PyObject *)__pyx_t_16)); __pyx_t_16 = 0;
+2174: worker_msgs[ws._address] = [
__pyx_t_17 = PyList_New(1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2174, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_17, 0, __pyx_t_4); __pyx_t_4 = 0; if (unlikely(PyDict_SetItem(__pyx_v_worker_msgs, __pyx_v_ws->_address, __pyx_t_17) < 0)) __PYX_ERR(0, 2174, __pyx_L3_error) __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
2175: {
+2176: "op": "delete-data",
__pyx_t_4 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2176, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_u_op, __pyx_kp_u_delete_data) < 0) __PYX_ERR(0, 2176, __pyx_L3_error)
+2177: "keys": [key],
__pyx_t_17 = PyList_New(1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2177, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyList_SET_ITEM(__pyx_t_17, 0, __pyx_v_key); if (PyDict_SetItem(__pyx_t_4, __pyx_n_u_keys, __pyx_t_17) < 0) __PYX_ERR(0, 2176, __pyx_L3_error) __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+2178: "report": False,
if (PyDict_SetItem(__pyx_t_4, __pyx_n_u_report, Py_False) < 0) __PYX_ERR(0, 2176, __pyx_L3_error)
2179: }
2180: ]
2181:
+2182: ts._who_has.clear()
if (unlikely(__pyx_v_ts->_who_has == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear");
__PYX_ERR(0, 2182, __pyx_L3_error)
}
__pyx_t_11 = PySet_Clear(__pyx_v_ts->_who_has); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 2182, __pyx_L3_error)
2183:
+2184: ts.state = "released"
if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_ts), __pyx_n_s_state, __pyx_n_u_released) < 0) __PYX_ERR(0, 2184, __pyx_L3_error)
2185:
+2186: report_msg = {"op": "lost-data", "key": key}
__pyx_t_9 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2186, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); if (PyDict_SetItem(__pyx_t_9, __pyx_n_u_op, __pyx_kp_u_lost_data) < 0) __PYX_ERR(0, 2186, __pyx_L3_error) if (PyDict_SetItem(__pyx_t_9, __pyx_n_u_key, __pyx_v_key) < 0) __PYX_ERR(0, 2186, __pyx_L3_error) __pyx_v_report_msg = ((PyObject*)__pyx_t_9); __pyx_t_9 = 0;
2187: cs: ClientState
+2188: for cs in ts._who_wants:
__pyx_t_7 = 0;
__pyx_t_17 = __Pyx_set_iterator(__pyx_v_ts->_who_wants, 1, (&__pyx_t_6), (&__pyx_t_8)); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2188, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_XDECREF(__pyx_t_9);
__pyx_t_9 = __pyx_t_17;
__pyx_t_17 = 0;
while (1) {
__pyx_t_10 = __Pyx_set_iter_next(__pyx_t_9, __pyx_t_6, &__pyx_t_7, &__pyx_t_17, __pyx_t_8);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 2188, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_17);
if (!(likely(((__pyx_t_17) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_17, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 2188, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_cs, ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_17));
__pyx_t_17 = 0;
+2189: client_msgs[cs._client_key] = [report_msg]
__pyx_t_17 = PyList_New(1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2189, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_INCREF(__pyx_v_report_msg); __Pyx_GIVEREF(__pyx_v_report_msg); PyList_SET_ITEM(__pyx_t_17, 0, __pyx_v_report_msg); if (unlikely(PyDict_SetItem(__pyx_v_client_msgs, __pyx_v_cs->_client_key, __pyx_t_17) < 0)) __PYX_ERR(0, 2189, __pyx_L3_error) __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
2190:
+2191: if not ts._run_spec: # pure data
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_ts->_run_spec); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2191, __pyx_L3_error) __pyx_t_13 = ((!__pyx_t_5) != 0); if (__pyx_t_13) { /* … */ goto __pyx_L24; }
+2192: recommendations[key] = "forgotten"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_key, __pyx_n_u_forgotten) < 0)) __PYX_ERR(0, 2192, __pyx_L3_error)
+2193: elif ts._has_lost_dependencies:
__pyx_t_13 = (__pyx_v_ts->_has_lost_dependencies != 0);
if (__pyx_t_13) {
/* … */
goto __pyx_L24;
}
+2194: recommendations[key] = "forgotten"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_key, __pyx_n_u_forgotten) < 0)) __PYX_ERR(0, 2194, __pyx_L3_error)
+2195: elif ts._who_wants or ts._waiters:
__pyx_t_5 = (__pyx_v_ts->_who_wants != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_wants) != 0); if (!__pyx_t_5) { } else { __pyx_t_13 = __pyx_t_5; goto __pyx_L25_bool_binop_done; } __pyx_t_5 = (__pyx_v_ts->_waiters != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiters) != 0); __pyx_t_13 = __pyx_t_5; __pyx_L25_bool_binop_done:; if (__pyx_t_13) { /* … */ } __pyx_L24:;
+2196: recommendations[key] = "waiting"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_key, __pyx_n_u_waiting) < 0)) __PYX_ERR(0, 2196, __pyx_L3_error)
2197:
+2198: if self._validate:
__pyx_t_13 = (__pyx_v_self->_validate != 0);
if (__pyx_t_13) {
/* … */
}
+2199: assert not ts._waiting_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_13 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (unlikely(!((!__pyx_t_13) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2199, __pyx_L3_error)
}
}
#endif
2200:
+2201: return recommendations, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2201, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_v_recommendations); __Pyx_GIVEREF(__pyx_v_recommendations); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_recommendations); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_v_client_msgs); __pyx_r = __pyx_t_9; __pyx_t_9 = 0; goto __pyx_L7_try_return;
+2202: except Exception as e:
__pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_8) { __Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_memory_released", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_17, &__pyx_t_4) < 0) __PYX_ERR(0, 2202, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GOTREF(__pyx_t_17); __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_17); __pyx_v_e = __pyx_t_17; /*try:*/ { /* … */ /*finally:*/ { __pyx_L33_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(((PyObject *)__pyx_t_16)); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_25, &__pyx_t_26, &__pyx_t_27); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24) < 0)) __Pyx_ErrFetch(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_27); __pyx_t_8 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_21 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_25); __Pyx_XGIVEREF(__pyx_t_26); __Pyx_XGIVEREF(__pyx_t_27); __Pyx_ExceptionReset(__pyx_t_25, __pyx_t_26, __pyx_t_27); } __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_ErrRestore(__pyx_t_22, __pyx_t_23, __pyx_t_24); __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_21; goto __pyx_L5_except_error; } } } goto __pyx_L5_except_error; __pyx_L5_except_error:;
+2203: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_n_s_logger); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 2203, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_n_s_exception); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2203, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_19 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_20))) { __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_20); if (likely(__pyx_t_19)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20); __Pyx_INCREF(__pyx_t_19); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_20, function); } } __pyx_t_18 = (__pyx_t_19) ? __Pyx_PyObject_Call2Args(__pyx_t_20, __pyx_t_19, __pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_20, __pyx_v_e); __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2203, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2204: if LOG_PDB:
__Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_LOG_PDB); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2204, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 2204, __pyx_L33_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if (__pyx_t_13) { /* … */ }
+2205: import pdb
__pyx_t_18 = __Pyx_Import(__pyx_n_s_pdb, 0, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2205, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_18); __pyx_v_pdb = __pyx_t_18; __pyx_t_18 = 0;
2206:
+2207: pdb.set_trace()
__pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_pdb, __pyx_n_s_set_trace); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2207, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_19 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_20))) { __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_20); if (likely(__pyx_t_19)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20); __Pyx_INCREF(__pyx_t_19); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_20, function); } } __pyx_t_18 = (__pyx_t_19) ? __Pyx_PyObject_CallOneArg(__pyx_t_20, __pyx_t_19) : __Pyx_PyObject_CallNoArg(__pyx_t_20); __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2207, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2208: raise
__Pyx_GIVEREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ErrRestoreWithState(__pyx_t_9, __pyx_t_17, __pyx_t_4); __pyx_t_9 = 0; __pyx_t_17 = 0; __pyx_t_4 = 0; __PYX_ERR(0, 2208, __pyx_L33_error) }
2209:
+2210: def transition_released_erred(self, key):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_19transition_released_erred(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_19transition_released_erred(PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_released_erred (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_18transition_released_erred(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), ((PyObject *)__pyx_v_key));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_18transition_released_erred(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, PyObject *__pyx_v_key) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_dts = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_failing_ts = 0;
PyObject *__pyx_v_worker_msgs = 0;
PyObject *__pyx_v_client_msgs = 0;
PyObject *__pyx_v_recommendations = 0;
PyObject *__pyx_v_report_msg = NULL;
struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_cs = 0;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_pdb = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_released_erred", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_19);
__Pyx_XDECREF(__pyx_t_20);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_released_erred", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_v_dts);
__Pyx_XDECREF((PyObject *)__pyx_v_failing_ts);
__Pyx_XDECREF(__pyx_v_worker_msgs);
__Pyx_XDECREF(__pyx_v_client_msgs);
__Pyx_XDECREF(__pyx_v_recommendations);
__Pyx_XDECREF(__pyx_v_report_msg);
__Pyx_XDECREF((PyObject *)__pyx_v_cs);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_pdb);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+2211: try:
{
/*try:*/ {
/* … */
}
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L1_error;
__pyx_L7_try_return:;
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L0;
}
+2212: ts: TaskState = self._tasks[key]
if (unlikely(__pyx_v_self->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2212, __pyx_L3_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2212, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2212, __pyx_L3_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4);
__pyx_t_4 = 0;
2213: dts: TaskState
2214: failing_ts: TaskState
+2215: worker_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2215, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_worker_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+2216: client_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2216, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_client_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
2217:
+2218: if self._validate:
__pyx_t_5 = (__pyx_v_self->_validate != 0);
if (__pyx_t_5) {
/* … */
}
+2219: with log_errors(pdb=LOG_PDB):
/*with:*/ {
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_log_errors); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2219, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2219, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_LOG_PDB); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2219, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_7);
if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_pdb, __pyx_t_7) < 0) __PYX_ERR(0, 2219, __pyx_L3_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_empty_tuple, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2219, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_8 = __Pyx_PyObject_LookupSpecial(__pyx_t_7, __pyx_n_s_exit); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2219, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_7, __pyx_n_s_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2219, __pyx_L10_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_9 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
__pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4);
if (likely(__pyx_t_9)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
__Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_4, function);
}
}
__pyx_t_6 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2219, __pyx_L10_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
/*try:*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
goto __pyx_L19_try_end;
__pyx_L14_error:;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_released_erred", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_4) < 0) __PYX_ERR(0, 2219, __pyx_L16_except_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_9 = PyTuple_Pack(3, __pyx_t_7, __pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2219, __pyx_L16_except_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_9, NULL);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2219, __pyx_L16_except_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_13);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (__pyx_t_5 < 0) __PYX_ERR(0, 2219, __pyx_L16_except_error)
__pyx_t_14 = ((!(__pyx_t_5 != 0)) != 0);
if (__pyx_t_14) {
__Pyx_GIVEREF(__pyx_t_7);
__Pyx_GIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ErrRestoreWithState(__pyx_t_7, __pyx_t_6, __pyx_t_4);
__pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_4 = 0;
__PYX_ERR(0, 2219, __pyx_L16_except_error)
}
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L15_exception_handled;
}
__pyx_L16_except_error:;
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
goto __pyx_L3_error;
__pyx_L15_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
__pyx_L19_try_end:;
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_8) {
__pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2219, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
}
goto __pyx_L13;
}
__pyx_L13:;
}
goto __pyx_L23;
__pyx_L10_error:;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
goto __pyx_L3_error;
__pyx_L23:;
}
/* … */
__pyx_tuple__12 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 2219, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__12);
__Pyx_GIVEREF(__pyx_tuple__12);
+2220: assert ts._exception_blame
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_ts->_exception_blame); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2220, __pyx_L14_error)
if (unlikely(!__pyx_t_5)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2220, __pyx_L14_error)
}
}
#endif
+2221: assert not ts._who_has
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2221, __pyx_L14_error)
}
}
#endif
+2222: assert not ts._waiting_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2222, __pyx_L14_error)
}
}
#endif
+2223: assert not ts._waiters
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_waiters != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiters) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2223, __pyx_L14_error)
}
}
#endif
2224:
+2225: recommendations: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2225, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_recommendations = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
2226:
+2227: failing_ts = ts._exception_blame
if (!(likely(((__pyx_v_ts->_exception_blame) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_ts->_exception_blame, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2227, __pyx_L3_error) __pyx_t_4 = __pyx_v_ts->_exception_blame; __Pyx_INCREF(__pyx_t_4); __pyx_v_failing_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4); __pyx_t_4 = 0;
2228:
+2229: for dts in ts._dependents:
__pyx_t_15 = 0;
__pyx_t_6 = __Pyx_set_iterator(__pyx_v_ts->_dependents, 1, (&__pyx_t_16), (&__pyx_t_17)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2229, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_18 = __Pyx_set_iter_next(__pyx_t_4, __pyx_t_16, &__pyx_t_15, &__pyx_t_6, __pyx_t_17);
if (unlikely(__pyx_t_18 == 0)) break;
if (unlikely(__pyx_t_18 == -1)) __PYX_ERR(0, 2229, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2229, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6));
__pyx_t_6 = 0;
+2230: dts._exception_blame = failing_ts
__Pyx_INCREF(((PyObject *)__pyx_v_failing_ts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_failing_ts)); __Pyx_GOTREF(__pyx_v_dts->_exception_blame); __Pyx_DECREF(__pyx_v_dts->_exception_blame); __pyx_v_dts->_exception_blame = ((PyObject *)__pyx_v_failing_ts);
+2231: if not dts._who_has:
__pyx_t_14 = (__pyx_v_dts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_dts->_who_has) != 0); __pyx_t_5 = ((!__pyx_t_14) != 0); if (__pyx_t_5) { /* … */ } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2232: recommendations[dts._key] = "erred"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_dts->_key, __pyx_n_u_erred) < 0)) __PYX_ERR(0, 2232, __pyx_L3_error)
2233:
2234: report_msg = {
+2235: "op": "task-erred",
__pyx_t_4 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2235, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_u_op, __pyx_kp_u_task_erred) < 0) __PYX_ERR(0, 2235, __pyx_L3_error)
+2236: "key": key,
if (PyDict_SetItem(__pyx_t_4, __pyx_n_u_key, __pyx_v_key) < 0) __PYX_ERR(0, 2235, __pyx_L3_error)
+2237: "exception": failing_ts._exception,
if (PyDict_SetItem(__pyx_t_4, __pyx_n_u_exception, __pyx_v_failing_ts->_exception) < 0) __PYX_ERR(0, 2235, __pyx_L3_error)
+2238: "traceback": failing_ts._traceback,
if (PyDict_SetItem(__pyx_t_4, __pyx_n_u_traceback, __pyx_v_failing_ts->_traceback) < 0) __PYX_ERR(0, 2235, __pyx_L3_error) __pyx_v_report_msg = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
2239: }
2240: cs: ClientState
+2241: for cs in ts._who_wants:
__pyx_t_16 = 0;
__pyx_t_6 = __Pyx_set_iterator(__pyx_v_ts->_who_wants, 1, (&__pyx_t_15), (&__pyx_t_17)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2241, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_18 = __Pyx_set_iter_next(__pyx_t_4, __pyx_t_15, &__pyx_t_16, &__pyx_t_6, __pyx_t_17);
if (unlikely(__pyx_t_18 == 0)) break;
if (unlikely(__pyx_t_18 == -1)) __PYX_ERR(0, 2241, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 2241, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_cs, ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_6));
__pyx_t_6 = 0;
+2242: client_msgs[cs._client_key] = [report_msg]
__pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2242, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_v_report_msg); __Pyx_GIVEREF(__pyx_v_report_msg); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_v_report_msg); if (unlikely(PyDict_SetItem(__pyx_v_client_msgs, __pyx_v_cs->_client_key, __pyx_t_6) < 0)) __PYX_ERR(0, 2242, __pyx_L3_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
2243:
+2244: ts.state = "erred"
if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_ts), __pyx_n_s_state, __pyx_n_u_erred) < 0) __PYX_ERR(0, 2244, __pyx_L3_error)
2245:
2246: # TODO: waiting data?
+2247: return recommendations, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2247, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_recommendations); __Pyx_GIVEREF(__pyx_v_recommendations); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_recommendations); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_client_msgs); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L7_try_return;
+2248: except Exception as e:
__pyx_t_17 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_17) { __Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_released_erred", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(0, 2248, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_v_e = __pyx_t_6; /*try:*/ { /* … */ /*finally:*/ { __pyx_L34_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_8 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_13 = 0; __pyx_t_22 = 0; __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_13, &__pyx_t_22); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_12, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_12, &__pyx_t_11); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_22); __pyx_t_17 = __pyx_lineno; __pyx_t_18 = __pyx_clineno; __pyx_t_21 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_13, __pyx_t_22); } __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ErrRestore(__pyx_t_8, __pyx_t_12, __pyx_t_11); __pyx_t_8 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_13 = 0; __pyx_t_22 = 0; __pyx_lineno = __pyx_t_17; __pyx_clineno = __pyx_t_18; __pyx_filename = __pyx_t_21; goto __pyx_L5_except_error; } } } goto __pyx_L5_except_error; __pyx_L5_except_error:;
+2249: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_n_s_logger); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 2249, __pyx_L34_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_n_s_exception); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2249, __pyx_L34_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_19 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_20))) { __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_20); if (likely(__pyx_t_19)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20); __Pyx_INCREF(__pyx_t_19); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_20, function); } } __pyx_t_9 = (__pyx_t_19) ? __Pyx_PyObject_Call2Args(__pyx_t_20, __pyx_t_19, __pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_20, __pyx_v_e); __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2249, __pyx_L34_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2250: if LOG_PDB:
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_LOG_PDB); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2250, __pyx_L34_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2250, __pyx_L34_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_5) { /* … */ }
+2251: import pdb
__pyx_t_9 = __Pyx_Import(__pyx_n_s_pdb, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2251, __pyx_L34_error) __Pyx_GOTREF(__pyx_t_9); __pyx_v_pdb = __pyx_t_9; __pyx_t_9 = 0;
2252:
+2253: pdb.set_trace()
__pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_pdb, __pyx_n_s_set_trace); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2253, __pyx_L34_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_19 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_20))) { __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_20); if (likely(__pyx_t_19)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20); __Pyx_INCREF(__pyx_t_19); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_20, function); } } __pyx_t_9 = (__pyx_t_19) ? __Pyx_PyObject_CallOneArg(__pyx_t_20, __pyx_t_19) : __Pyx_PyObject_CallNoArg(__pyx_t_20); __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2253, __pyx_L34_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2254: raise
__Pyx_GIVEREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_6, __pyx_t_7); __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __PYX_ERR(0, 2254, __pyx_L34_error) }
2255:
+2256: def transition_erred_released(self, key):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_21transition_erred_released(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_21transition_erred_released(PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_erred_released (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_20transition_erred_released(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), ((PyObject *)__pyx_v_key));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_20transition_erred_released(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, PyObject *__pyx_v_key) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_dts = 0;
PyObject *__pyx_v_worker_msgs = 0;
PyObject *__pyx_v_client_msgs = 0;
PyObject *__pyx_v_recommendations = 0;
PyObject *__pyx_v_report_msg = NULL;
struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_cs = 0;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_pdb = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_9genexpr23__pyx_v_dts = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_erred_released", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_19);
__Pyx_XDECREF(__pyx_t_20);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_erred_released", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_v_dts);
__Pyx_XDECREF(__pyx_v_worker_msgs);
__Pyx_XDECREF(__pyx_v_client_msgs);
__Pyx_XDECREF(__pyx_v_recommendations);
__Pyx_XDECREF(__pyx_v_report_msg);
__Pyx_XDECREF((PyObject *)__pyx_v_cs);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_pdb);
__Pyx_XDECREF((PyObject *)__pyx_9genexpr23__pyx_v_dts);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+2257: try:
{
/*try:*/ {
/* … */
}
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L1_error;
__pyx_L7_try_return:;
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L0;
}
+2258: ts: TaskState = self._tasks[key]
if (unlikely(__pyx_v_self->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2258, __pyx_L3_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2258, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2258, __pyx_L3_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4);
__pyx_t_4 = 0;
2259: dts: TaskState
+2260: worker_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2260, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_worker_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+2261: client_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2261, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_client_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
2262:
+2263: if self._validate:
__pyx_t_5 = (__pyx_v_self->_validate != 0);
if (__pyx_t_5) {
/* … */
}
+2264: with log_errors(pdb=LOG_PDB):
/*with:*/ {
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_log_errors); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2264, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2264, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_LOG_PDB); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2264, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_7);
if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_pdb, __pyx_t_7) < 0) __PYX_ERR(0, 2264, __pyx_L3_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_empty_tuple, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2264, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_8 = __Pyx_PyObject_LookupSpecial(__pyx_t_7, __pyx_n_s_exit); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2264, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_7, __pyx_n_s_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2264, __pyx_L10_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_9 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
__pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4);
if (likely(__pyx_t_9)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
__Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_4, function);
}
}
__pyx_t_6 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2264, __pyx_L10_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
/*try:*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
goto __pyx_L19_try_end;
__pyx_L14_error:;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_erred_released", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_4) < 0) __PYX_ERR(0, 2264, __pyx_L16_except_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GOTREF(__pyx_t_7);
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_9 = PyTuple_Pack(3, __pyx_t_6, __pyx_t_7, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2264, __pyx_L16_except_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_9, NULL);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2264, __pyx_L16_except_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_17);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (__pyx_t_5 < 0) __PYX_ERR(0, 2264, __pyx_L16_except_error)
__pyx_t_18 = ((!(__pyx_t_5 != 0)) != 0);
if (__pyx_t_18) {
__Pyx_GIVEREF(__pyx_t_6);
__Pyx_GIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ErrRestoreWithState(__pyx_t_6, __pyx_t_7, __pyx_t_4);
__pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_4 = 0;
__PYX_ERR(0, 2264, __pyx_L16_except_error)
}
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L15_exception_handled;
}
__pyx_L16_except_error:;
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
goto __pyx_L3_error;
__pyx_L15_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
__pyx_L19_try_end:;
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_8) {
__pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2264, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
}
goto __pyx_L13;
}
__pyx_L13:;
}
goto __pyx_L29;
__pyx_L10_error:;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
goto __pyx_L3_error;
__pyx_L29:;
}
+2265: assert all([dts._state != "erred" for dts in ts._dependencies])
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
{ /* enter inner scope */
__pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2265, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_13 = 0;
__pyx_t_4 = __Pyx_set_iterator(__pyx_v_ts->_dependencies, 1, (&__pyx_t_14), (&__pyx_t_15)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2265, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__pyx_t_6 = __pyx_t_4;
__pyx_t_4 = 0;
while (1) {
__pyx_t_16 = __Pyx_set_iter_next(__pyx_t_6, __pyx_t_14, &__pyx_t_13, &__pyx_t_4, __pyx_t_15);
if (unlikely(__pyx_t_16 == 0)) break;
if (unlikely(__pyx_t_16 == -1)) __PYX_ERR(0, 2265, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2265, __pyx_L22_error)
__Pyx_XDECREF_SET(__pyx_9genexpr23__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4));
__pyx_t_4 = 0;
__pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_9genexpr23__pyx_v_dts->_state, __pyx_n_u_erred, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2265, __pyx_L22_error)
__pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2265, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 2265, __pyx_L22_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr23__pyx_v_dts); __pyx_9genexpr23__pyx_v_dts = 0;
goto __pyx_L25_exit_scope;
__pyx_L22_error:;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr23__pyx_v_dts); __pyx_9genexpr23__pyx_v_dts = 0;
goto __pyx_L14_error;
__pyx_L25_exit_scope:;
} /* exit inner scope */
__pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2265, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2265, __pyx_L14_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_5)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2265, __pyx_L14_error)
}
}
#endif
+2266: assert ts._exception_blame
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_ts->_exception_blame); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2266, __pyx_L14_error)
if (unlikely(!__pyx_t_5)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2266, __pyx_L14_error)
}
}
#endif
+2267: assert not ts._who_has
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2267, __pyx_L14_error)
}
}
#endif
+2268: assert not ts._waiting_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2268, __pyx_L14_error)
}
}
#endif
+2269: assert not ts._waiters
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_waiters != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiters) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2269, __pyx_L14_error)
}
}
#endif
2270:
+2271: recommendations: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2271, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_recommendations = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
2272:
+2273: ts._exception = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_ts->_exception); __Pyx_DECREF(__pyx_v_ts->_exception); __pyx_v_ts->_exception = Py_None;
+2274: ts._exception_blame = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_ts->_exception_blame); __Pyx_DECREF(__pyx_v_ts->_exception_blame); __pyx_v_ts->_exception_blame = Py_None;
+2275: ts._traceback = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_ts->_traceback); __Pyx_DECREF(__pyx_v_ts->_traceback); __pyx_v_ts->_traceback = Py_None;
2276:
+2277: for dts in ts._dependents:
__pyx_t_14 = 0;
__pyx_t_7 = __Pyx_set_iterator(__pyx_v_ts->_dependents, 1, (&__pyx_t_13), (&__pyx_t_15)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2277, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_7;
__pyx_t_7 = 0;
while (1) {
__pyx_t_16 = __Pyx_set_iter_next(__pyx_t_4, __pyx_t_13, &__pyx_t_14, &__pyx_t_7, __pyx_t_15);
if (unlikely(__pyx_t_16 == 0)) break;
if (unlikely(__pyx_t_16 == -1)) __PYX_ERR(0, 2277, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_7);
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2277, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_7));
__pyx_t_7 = 0;
+2278: if dts._state == "erred":
__pyx_t_18 = (__Pyx_PyUnicode_Equals(__pyx_v_dts->_state, __pyx_n_u_erred, Py_EQ)); if (unlikely(__pyx_t_18 < 0)) __PYX_ERR(0, 2278, __pyx_L3_error) __pyx_t_5 = (__pyx_t_18 != 0); if (__pyx_t_5) { /* … */ } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2279: recommendations[dts._key] = "waiting"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_dts->_key, __pyx_n_u_waiting) < 0)) __PYX_ERR(0, 2279, __pyx_L3_error)
2280:
+2281: report_msg = {"op": "task-retried", "key": key}
__pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2281, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_u_op, __pyx_kp_u_task_retried) < 0) __PYX_ERR(0, 2281, __pyx_L3_error) if (PyDict_SetItem(__pyx_t_4, __pyx_n_u_key, __pyx_v_key) < 0) __PYX_ERR(0, 2281, __pyx_L3_error) __pyx_v_report_msg = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
2282: cs: ClientState
+2283: for cs in ts._who_wants:
__pyx_t_13 = 0;
__pyx_t_7 = __Pyx_set_iterator(__pyx_v_ts->_who_wants, 1, (&__pyx_t_14), (&__pyx_t_15)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2283, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_7;
__pyx_t_7 = 0;
while (1) {
__pyx_t_16 = __Pyx_set_iter_next(__pyx_t_4, __pyx_t_14, &__pyx_t_13, &__pyx_t_7, __pyx_t_15);
if (unlikely(__pyx_t_16 == 0)) break;
if (unlikely(__pyx_t_16 == -1)) __PYX_ERR(0, 2283, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_7);
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 2283, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_cs, ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_7));
__pyx_t_7 = 0;
+2284: client_msgs[cs._client_key] = [report_msg]
__pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2284, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_v_report_msg); __Pyx_GIVEREF(__pyx_v_report_msg); PyList_SET_ITEM(__pyx_t_7, 0, __pyx_v_report_msg); if (unlikely(PyDict_SetItem(__pyx_v_client_msgs, __pyx_v_cs->_client_key, __pyx_t_7) < 0)) __PYX_ERR(0, 2284, __pyx_L3_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
2285:
+2286: ts.state = "released"
if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_ts), __pyx_n_s_state, __pyx_n_u_released) < 0) __PYX_ERR(0, 2286, __pyx_L3_error)
2287:
+2288: return recommendations, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2288, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_recommendations); __Pyx_GIVEREF(__pyx_v_recommendations); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_recommendations); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_client_msgs); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L7_try_return;
+2289: except Exception as e:
__pyx_t_15 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_15) { __Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_erred_released", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_7, &__pyx_t_6) < 0) __PYX_ERR(0, 2289, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_7); __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_v_e = __pyx_t_7; /*try:*/ { /* … */ /*finally:*/ { __pyx_L40_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_8 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_17 = 0; __pyx_t_22 = 0; __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_17, &__pyx_t_22); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_12, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_12, &__pyx_t_11); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_22); __pyx_t_15 = __pyx_lineno; __pyx_t_16 = __pyx_clineno; __pyx_t_21 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_17, __pyx_t_22); } __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ErrRestore(__pyx_t_8, __pyx_t_12, __pyx_t_11); __pyx_t_8 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_17 = 0; __pyx_t_22 = 0; __pyx_lineno = __pyx_t_15; __pyx_clineno = __pyx_t_16; __pyx_filename = __pyx_t_21; goto __pyx_L5_except_error; } } } goto __pyx_L5_except_error; __pyx_L5_except_error:;
+2290: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_n_s_logger); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 2290, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_n_s_exception); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2290, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_19 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_20))) { __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_20); if (likely(__pyx_t_19)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20); __Pyx_INCREF(__pyx_t_19); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_20, function); } } __pyx_t_9 = (__pyx_t_19) ? __Pyx_PyObject_Call2Args(__pyx_t_20, __pyx_t_19, __pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_20, __pyx_v_e); __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2290, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2291: if LOG_PDB:
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_LOG_PDB); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2291, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2291, __pyx_L40_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_5) { /* … */ }
+2292: import pdb
__pyx_t_9 = __Pyx_Import(__pyx_n_s_pdb, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2292, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_9); __pyx_v_pdb = __pyx_t_9; __pyx_t_9 = 0;
2293:
+2294: pdb.set_trace()
__pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_pdb, __pyx_n_s_set_trace); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2294, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_19 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_20))) { __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_20); if (likely(__pyx_t_19)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20); __Pyx_INCREF(__pyx_t_19); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_20, function); } } __pyx_t_9 = (__pyx_t_19) ? __Pyx_PyObject_CallOneArg(__pyx_t_20, __pyx_t_19) : __Pyx_PyObject_CallNoArg(__pyx_t_20); __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2294, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2295: raise
__Pyx_GIVEREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_7, __pyx_t_6); __pyx_t_4 = 0; __pyx_t_7 = 0; __pyx_t_6 = 0; __PYX_ERR(0, 2295, __pyx_L40_error) }
2296:
+2297: def transition_waiting_released(self, key):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_23transition_waiting_released(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_23transition_waiting_released(PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_waiting_released (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_22transition_waiting_released(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), ((PyObject *)__pyx_v_key));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_22transition_waiting_released(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, PyObject *__pyx_v_key) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_v_worker_msgs = 0;
PyObject *__pyx_v_client_msgs = 0;
PyObject *__pyx_v_recommendations = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_dts = 0;
PyObject *__pyx_v_s = NULL;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_pdb = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_waiting_released", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_waiting_released", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF(__pyx_v_worker_msgs);
__Pyx_XDECREF(__pyx_v_client_msgs);
__Pyx_XDECREF(__pyx_v_recommendations);
__Pyx_XDECREF((PyObject *)__pyx_v_dts);
__Pyx_XDECREF(__pyx_v_s);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_pdb);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+2298: try:
{
/*try:*/ {
/* … */
}
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L1_error;
__pyx_L7_try_return:;
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L0;
}
+2299: ts: TaskState = self._tasks[key]
if (unlikely(__pyx_v_self->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2299, __pyx_L3_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2299, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2299, __pyx_L3_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4);
__pyx_t_4 = 0;
+2300: worker_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2300, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_worker_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+2301: client_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2301, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_client_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
2302:
+2303: if self._validate:
__pyx_t_5 = (__pyx_v_self->_validate != 0);
if (__pyx_t_5) {
/* … */
}
+2304: assert not ts._who_has
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2304, __pyx_L3_error)
}
}
#endif
+2305: assert not ts._processing_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ts->_processing_on)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2305, __pyx_L3_error)
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2305, __pyx_L3_error)
}
}
#endif
2306:
+2307: recommendations: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2307, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_recommendations = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
2308:
2309: dts: TaskState
+2310: for dts in ts._dependencies:
__pyx_t_6 = 0;
__pyx_t_9 = __Pyx_set_iterator(__pyx_v_ts->_dependencies, 1, (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2310, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_9;
__pyx_t_9 = 0;
while (1) {
__pyx_t_10 = __Pyx_set_iter_next(__pyx_t_4, __pyx_t_7, &__pyx_t_6, &__pyx_t_9, __pyx_t_8);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 2310, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_9);
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2310, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_9));
__pyx_t_9 = 0;
+2311: s = dts._waiters
__pyx_t_9 = __pyx_v_dts->_waiters;
__Pyx_INCREF(__pyx_t_9);
__Pyx_XDECREF_SET(__pyx_v_s, ((PyObject*)__pyx_t_9));
__pyx_t_9 = 0;
+2312: if ts in s:
if (unlikely(__pyx_v_s == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2312, __pyx_L3_error)
}
__pyx_t_5 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_s, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2312, __pyx_L3_error)
__pyx_t_11 = (__pyx_t_5 != 0);
if (__pyx_t_11) {
/* … */
}
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2313: s.discard(ts)
if (unlikely(__pyx_v_s == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "discard");
__PYX_ERR(0, 2313, __pyx_L3_error)
}
__pyx_t_12 = __Pyx_PySet_Discard(__pyx_v_s, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 2313, __pyx_L3_error)
+2314: if not s and not dts._who_wants:
__pyx_t_5 = (__pyx_v_s != Py_None)&&(PySet_GET_SIZE(__pyx_v_s) != 0); __pyx_t_13 = ((!__pyx_t_5) != 0); if (__pyx_t_13) { } else { __pyx_t_11 = __pyx_t_13; goto __pyx_L14_bool_binop_done; } __pyx_t_13 = (__pyx_v_dts->_who_wants != Py_None)&&(PySet_GET_SIZE(__pyx_v_dts->_who_wants) != 0); __pyx_t_5 = ((!__pyx_t_13) != 0); __pyx_t_11 = __pyx_t_5; __pyx_L14_bool_binop_done:; if (__pyx_t_11) { /* … */ }
+2315: recommendations[dts._key] = "released"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_dts->_key, __pyx_n_u_released) < 0)) __PYX_ERR(0, 2315, __pyx_L3_error)
+2316: ts._waiting_on.clear()
if (unlikely(__pyx_v_ts->_waiting_on == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear");
__PYX_ERR(0, 2316, __pyx_L3_error)
}
__pyx_t_12 = PySet_Clear(__pyx_v_ts->_waiting_on); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 2316, __pyx_L3_error)
2317:
+2318: ts.state = "released"
if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_ts), __pyx_n_s_state, __pyx_n_u_released) < 0) __PYX_ERR(0, 2318, __pyx_L3_error)
2319:
+2320: if ts._has_lost_dependencies:
__pyx_t_11 = (__pyx_v_ts->_has_lost_dependencies != 0);
if (__pyx_t_11) {
/* … */
goto __pyx_L16;
}
+2321: recommendations[key] = "forgotten"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_key, __pyx_n_u_forgotten) < 0)) __PYX_ERR(0, 2321, __pyx_L3_error)
+2322: elif not ts._exception_blame and (ts._who_wants or ts._waiters):
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_ts->_exception_blame); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2322, __pyx_L3_error) __pyx_t_13 = ((!__pyx_t_5) != 0); if (__pyx_t_13) { } else { __pyx_t_11 = __pyx_t_13; goto __pyx_L17_bool_binop_done; } __pyx_t_13 = (__pyx_v_ts->_who_wants != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_wants) != 0); if (!__pyx_t_13) { } else { __pyx_t_11 = __pyx_t_13; goto __pyx_L17_bool_binop_done; } __pyx_t_13 = (__pyx_v_ts->_waiters != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiters) != 0); __pyx_t_11 = __pyx_t_13; __pyx_L17_bool_binop_done:; if (__pyx_t_11) { /* … */ goto __pyx_L16; }
+2323: recommendations[key] = "waiting"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_key, __pyx_n_u_waiting) < 0)) __PYX_ERR(0, 2323, __pyx_L3_error)
2324: else:
+2325: ts._waiters.clear()
/*else*/ {
if (unlikely(__pyx_v_ts->_waiters == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear");
__PYX_ERR(0, 2325, __pyx_L3_error)
}
__pyx_t_12 = PySet_Clear(__pyx_v_ts->_waiters); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 2325, __pyx_L3_error)
}
__pyx_L16:;
2326:
+2327: return recommendations, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2327, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_recommendations); __Pyx_GIVEREF(__pyx_v_recommendations); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_recommendations); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_client_msgs); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L7_try_return;
+2328: except Exception as e:
__pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_8) { __Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_waiting_released", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_9, &__pyx_t_14) < 0) __PYX_ERR(0, 2328, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_9); __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF(__pyx_t_9); __pyx_v_e = __pyx_t_9; /*try:*/ { /* … */ /*finally:*/ { __pyx_L25_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21) < 0)) __Pyx_ErrFetch(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __pyx_t_8 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_18 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_ExceptionReset(__pyx_t_22, __pyx_t_23, __pyx_t_24); } __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_ErrRestore(__pyx_t_19, __pyx_t_20, __pyx_t_21); __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_18; goto __pyx_L5_except_error; } } } goto __pyx_L5_except_error; __pyx_L5_except_error:;
+2329: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_logger); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2329, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_exception); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2329, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_17))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_17); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_17, function); } } __pyx_t_15 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_16, __pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_v_e); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2329, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2330: if LOG_PDB:
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_LOG_PDB); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2330, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 2330, __pyx_L25_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (__pyx_t_11) { /* … */ }
+2331: import pdb
__pyx_t_15 = __Pyx_Import(__pyx_n_s_pdb, 0, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2331, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_15); __pyx_v_pdb = __pyx_t_15; __pyx_t_15 = 0;
2332:
+2333: pdb.set_trace()
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_pdb, __pyx_n_s_set_trace); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2333, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_17); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_17, function); } } __pyx_t_15 = (__pyx_t_16) ? __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_t_16) : __Pyx_PyObject_CallNoArg(__pyx_t_17); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2333, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2334: raise
__Pyx_GIVEREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_9, __pyx_t_14); __pyx_t_4 = 0; __pyx_t_9 = 0; __pyx_t_14 = 0; __PYX_ERR(0, 2334, __pyx_L25_error) }
2335:
+2336: def transition_processing_released(self, key):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_25transition_processing_released(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_25transition_processing_released(PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_processing_released (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_24transition_processing_released(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), ((PyObject *)__pyx_v_key));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_24transition_processing_released(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, PyObject *__pyx_v_key) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_dts = 0;
PyObject *__pyx_v_worker_msgs = 0;
PyObject *__pyx_v_client_msgs = 0;
PyObject *__pyx_v_w = 0;
PyObject *__pyx_v_recommendations = 0;
PyObject *__pyx_v_s = NULL;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_pdb = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_processing_released", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_processing_released", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_v_dts);
__Pyx_XDECREF(__pyx_v_worker_msgs);
__Pyx_XDECREF(__pyx_v_client_msgs);
__Pyx_XDECREF(__pyx_v_w);
__Pyx_XDECREF(__pyx_v_recommendations);
__Pyx_XDECREF(__pyx_v_s);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_pdb);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+2337: try:
{
/*try:*/ {
/* … */
}
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L1_error;
__pyx_L7_try_return:;
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L0;
}
+2338: ts: TaskState = self._tasks[key]
if (unlikely(__pyx_v_self->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2338, __pyx_L3_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2338, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2338, __pyx_L3_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4);
__pyx_t_4 = 0;
2339: dts: TaskState
+2340: worker_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2340, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_worker_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+2341: client_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2341, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_client_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
2342:
+2343: if self._validate:
__pyx_t_5 = (__pyx_v_self->_validate != 0);
if (__pyx_t_5) {
/* … */
}
+2344: assert ts._processing_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ts->_processing_on)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2344, __pyx_L3_error)
if (unlikely(!__pyx_t_5)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2344, __pyx_L3_error)
}
}
#endif
+2345: assert not ts._who_has
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2345, __pyx_L3_error)
}
}
#endif
+2346: assert not ts._waiting_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2346, __pyx_L3_error)
}
}
#endif
+2347: assert self._tasks[key].state == "processing"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_self->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2347, __pyx_L3_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2347, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_state); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2347, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_6, __pyx_n_u_processing_2, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2347, __pyx_L3_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_5)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2347, __pyx_L3_error)
}
}
#endif
2348:
+2349: w: str = _remove_from_processing(self, ts)
__pyx_t_6 = __pyx_f_11distributed_9scheduler__remove_from_processing(__pyx_v_self, __pyx_v_ts); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2349, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_w = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0;
+2350: if w:
__pyx_t_5 = (__pyx_v_w != Py_None)&&(__Pyx_PyUnicode_IS_TRUE(__pyx_v_w) != 0);
if (__pyx_t_5) {
/* … */
}
+2351: worker_msgs[w] = [{"op": "release-task", "key": key}]
__pyx_t_6 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2351, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_u_op, __pyx_kp_u_release_task) < 0) __PYX_ERR(0, 2351, __pyx_L3_error) if (PyDict_SetItem(__pyx_t_6, __pyx_n_u_key, __pyx_v_key) < 0) __PYX_ERR(0, 2351, __pyx_L3_error) __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2351, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __pyx_t_6 = 0; if (unlikely(PyDict_SetItem(__pyx_v_worker_msgs, __pyx_v_w, __pyx_t_4) < 0)) __PYX_ERR(0, 2351, __pyx_L3_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
2352:
+2353: ts.state = "released"
if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_ts), __pyx_n_s_state, __pyx_n_u_released) < 0) __PYX_ERR(0, 2353, __pyx_L3_error)
2354:
+2355: recommendations: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2355, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_recommendations = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
2356:
+2357: if ts._has_lost_dependencies:
__pyx_t_5 = (__pyx_v_ts->_has_lost_dependencies != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L11;
}
+2358: recommendations[key] = "forgotten"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_key, __pyx_n_u_forgotten) < 0)) __PYX_ERR(0, 2358, __pyx_L3_error)
+2359: elif ts._waiters or ts._who_wants:
__pyx_t_7 = (__pyx_v_ts->_waiters != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiters) != 0); if (!__pyx_t_7) { } else { __pyx_t_5 = __pyx_t_7; goto __pyx_L12_bool_binop_done; } __pyx_t_7 = (__pyx_v_ts->_who_wants != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_wants) != 0); __pyx_t_5 = __pyx_t_7; __pyx_L12_bool_binop_done:; if (__pyx_t_5) { /* … */ } __pyx_L11:;
+2360: recommendations[key] = "waiting"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_key, __pyx_n_u_waiting) < 0)) __PYX_ERR(0, 2360, __pyx_L3_error)
2361:
+2362: if recommendations.get(key) != "waiting":
__pyx_t_4 = __Pyx_PyDict_GetItemDefault(__pyx_v_recommendations, __pyx_v_key, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2362, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_waiting, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2362, __pyx_L3_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_5) { /* … */ }
+2363: for dts in ts._dependencies:
__pyx_t_8 = 0;
__pyx_t_6 = __Pyx_set_iterator(__pyx_v_ts->_dependencies, 1, (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2363, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_11 = __Pyx_set_iter_next(__pyx_t_4, __pyx_t_9, &__pyx_t_8, &__pyx_t_6, __pyx_t_10);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 2363, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2363, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6));
__pyx_t_6 = 0;
+2364: if dts._state != "released":
__pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_dts->_state, __pyx_n_u_released, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2364, __pyx_L3_error) __pyx_t_7 = (__pyx_t_5 != 0); if (__pyx_t_7) { /* … */ } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2365: s = dts._waiters
__pyx_t_6 = __pyx_v_dts->_waiters;
__Pyx_INCREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_s, ((PyObject*)__pyx_t_6));
__pyx_t_6 = 0;
+2366: s.discard(ts)
if (unlikely(__pyx_v_s == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "discard");
__PYX_ERR(0, 2366, __pyx_L3_error)
}
__pyx_t_12 = __Pyx_PySet_Discard(__pyx_v_s, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 2366, __pyx_L3_error)
+2367: if not s and not dts._who_wants:
__pyx_t_5 = (__pyx_v_s != Py_None)&&(PySet_GET_SIZE(__pyx_v_s) != 0); __pyx_t_13 = ((!__pyx_t_5) != 0); if (__pyx_t_13) { } else { __pyx_t_7 = __pyx_t_13; goto __pyx_L19_bool_binop_done; } __pyx_t_13 = (__pyx_v_dts->_who_wants != Py_None)&&(PySet_GET_SIZE(__pyx_v_dts->_who_wants) != 0); __pyx_t_5 = ((!__pyx_t_13) != 0); __pyx_t_7 = __pyx_t_5; __pyx_L19_bool_binop_done:; if (__pyx_t_7) { /* … */ }
+2368: recommendations[dts._key] = "released"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_dts->_key, __pyx_n_u_released) < 0)) __PYX_ERR(0, 2368, __pyx_L3_error)
+2369: ts._waiters.clear()
if (unlikely(__pyx_v_ts->_waiters == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear");
__PYX_ERR(0, 2369, __pyx_L3_error)
}
__pyx_t_12 = PySet_Clear(__pyx_v_ts->_waiters); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 2369, __pyx_L3_error)
2370:
+2371: if self._validate:
__pyx_t_7 = (__pyx_v_self->_validate != 0);
if (__pyx_t_7) {
/* … */
}
+2372: assert not ts._processing_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_7 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ts->_processing_on)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2372, __pyx_L3_error)
if (unlikely(!((!__pyx_t_7) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2372, __pyx_L3_error)
}
}
#endif
2373:
+2374: return recommendations, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2374, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_recommendations); __Pyx_GIVEREF(__pyx_v_recommendations); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_recommendations); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_client_msgs); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L7_try_return;
+2375: except Exception as e:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_10) { __Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_processing_released", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_14) < 0) __PYX_ERR(0, 2375, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF(__pyx_t_6); __pyx_v_e = __pyx_t_6; /*try:*/ { /* … */ /*finally:*/ { __pyx_L27_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21) < 0)) __Pyx_ErrFetch(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __pyx_t_10 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_18 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_ExceptionReset(__pyx_t_22, __pyx_t_23, __pyx_t_24); } __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_ErrRestore(__pyx_t_19, __pyx_t_20, __pyx_t_21); __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_18; goto __pyx_L5_except_error; } } } goto __pyx_L5_except_error; __pyx_L5_except_error:;
+2376: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_logger); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2376, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_exception); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2376, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_17))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_17); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_17, function); } } __pyx_t_15 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_16, __pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_v_e); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2376, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2377: if LOG_PDB:
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_LOG_PDB); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2377, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2377, __pyx_L27_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (__pyx_t_7) { /* … */ }
+2378: import pdb
__pyx_t_15 = __Pyx_Import(__pyx_n_s_pdb, 0, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2378, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_15); __pyx_v_pdb = __pyx_t_15; __pyx_t_15 = 0;
2379:
+2380: pdb.set_trace()
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_pdb, __pyx_n_s_set_trace); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2380, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_17); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_17, function); } } __pyx_t_15 = (__pyx_t_16) ? __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_t_16) : __Pyx_PyObject_CallNoArg(__pyx_t_17); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2380, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2381: raise
__Pyx_GIVEREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_6, __pyx_t_14); __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_14 = 0; __PYX_ERR(0, 2381, __pyx_L27_error) }
2382:
+2383: def transition_processing_erred(
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_27transition_processing_erred(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_27transition_processing_erred(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_cause = 0;
PyObject *__pyx_v_exception = 0;
PyObject *__pyx_v_traceback = 0;
CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_processing_erred (wrapper)", 0);
__pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
__Pyx_GOTREF(__pyx_v_kwargs);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_cause,&__pyx_n_s_exception,&__pyx_n_s_traceback,0};
PyObject* values[4] = {0,0,0,0};
/* … */
/* function exit code */
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_26transition_processing_erred(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_cause, PyObject *__pyx_v_exception, PyObject *__pyx_v_traceback, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_dts = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_failing_ts = 0;
PyObject *__pyx_v_worker_msgs = 0;
PyObject *__pyx_v_client_msgs = 0;
PyObject *__pyx_v_recommendations = 0;
PyObject *__pyx_v_s = NULL;
PyObject *__pyx_v_report_msg = NULL;
struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_cs = 0;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_pdb = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_processing_erred", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_processing_erred", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_v_dts);
__Pyx_XDECREF((PyObject *)__pyx_v_failing_ts);
__Pyx_XDECREF(__pyx_v_worker_msgs);
__Pyx_XDECREF(__pyx_v_client_msgs);
__Pyx_XDECREF(__pyx_v_recommendations);
__Pyx_XDECREF(__pyx_v_s);
__Pyx_XDECREF(__pyx_v_report_msg);
__Pyx_XDECREF((PyObject *)__pyx_v_cs);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_pdb);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+2384: self, key, cause=None, exception=None, traceback=None, **kwargs
values[1] = ((PyObject *)Py_None);
values[2] = ((PyObject *)Py_None);
values[3] = ((PyObject *)Py_None);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cause);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exception);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_traceback);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "transition_processing_erred") < 0)) __PYX_ERR(0, 2383, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_key = values[0];
__pyx_v_cause = values[1];
__pyx_v_exception = values[2];
__pyx_v_traceback = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("transition_processing_erred", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2383, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_processing_erred", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_26transition_processing_erred(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), __pyx_v_key, __pyx_v_cause, __pyx_v_exception, __pyx_v_traceback, __pyx_v_kwargs);
2385: ):
2386: ws: WorkerState
+2387: try:
{
/*try:*/ {
/* … */
}
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L1_error;
__pyx_L7_try_return:;
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L0;
}
+2388: ts: TaskState = self._tasks[key]
if (unlikely(__pyx_v_self->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2388, __pyx_L3_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2388, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2388, __pyx_L3_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4);
__pyx_t_4 = 0;
2389: dts: TaskState
2390: failing_ts: TaskState
+2391: worker_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2391, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_worker_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+2392: client_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2392, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_client_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
2393:
+2394: if self._validate:
__pyx_t_5 = (__pyx_v_self->_validate != 0);
if (__pyx_t_5) {
/* … */
}
+2395: assert cause or ts._exception_blame
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_cause); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2395, __pyx_L3_error)
if (!__pyx_t_6) {
} else {
__pyx_t_5 = __pyx_t_6;
goto __pyx_L10_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_ts->_exception_blame); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2395, __pyx_L3_error)
__pyx_t_5 = __pyx_t_6;
__pyx_L10_bool_binop_done:;
if (unlikely(!__pyx_t_5)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2395, __pyx_L3_error)
}
}
#endif
+2396: assert ts._processing_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ts->_processing_on)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2396, __pyx_L3_error)
if (unlikely(!__pyx_t_5)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2396, __pyx_L3_error)
}
}
#endif
+2397: assert not ts._who_has
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2397, __pyx_L3_error)
}
}
#endif
+2398: assert not ts._waiting_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2398, __pyx_L3_error)
}
}
#endif
2399:
+2400: if ts._actor:
__pyx_t_5 = (__pyx_v_ts->_actor != 0);
if (__pyx_t_5) {
/* … */
}
+2401: ws = ts._processing_on
__pyx_t_4 = ((PyObject *)__pyx_v_ts->_processing_on);
__Pyx_INCREF(__pyx_t_4);
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_4);
__pyx_t_4 = 0;
+2402: ws._actors.remove(ts)
if (unlikely(__pyx_v_ws->_actors == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
__PYX_ERR(0, 2402, __pyx_L3_error)
}
__pyx_t_7 = __Pyx_PySet_Remove(__pyx_v_ws->_actors, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 2402, __pyx_L3_error)
2403:
+2404: _remove_from_processing(self, ts)
__pyx_t_4 = __pyx_f_11distributed_9scheduler__remove_from_processing(__pyx_v_self, __pyx_v_ts); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2404, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
2405:
+2406: if exception is not None:
__pyx_t_5 = (__pyx_v_exception != Py_None);
__pyx_t_6 = (__pyx_t_5 != 0);
if (__pyx_t_6) {
/* … */
}
+2407: ts._exception = exception
__Pyx_INCREF(__pyx_v_exception); __Pyx_GIVEREF(__pyx_v_exception); __Pyx_GOTREF(__pyx_v_ts->_exception); __Pyx_DECREF(__pyx_v_ts->_exception); __pyx_v_ts->_exception = __pyx_v_exception;
+2408: if traceback is not None:
__pyx_t_6 = (__pyx_v_traceback != Py_None);
__pyx_t_5 = (__pyx_t_6 != 0);
if (__pyx_t_5) {
/* … */
}
+2409: ts._traceback = traceback
__Pyx_INCREF(__pyx_v_traceback); __Pyx_GIVEREF(__pyx_v_traceback); __Pyx_GOTREF(__pyx_v_ts->_traceback); __Pyx_DECREF(__pyx_v_ts->_traceback); __pyx_v_ts->_traceback = __pyx_v_traceback;
+2410: if cause is not None:
__pyx_t_5 = (__pyx_v_cause != Py_None);
__pyx_t_6 = (__pyx_t_5 != 0);
if (__pyx_t_6) {
/* … */
goto __pyx_L15;
}
+2411: failing_ts = self._tasks[cause]
if (unlikely(__pyx_v_self->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2411, __pyx_L3_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->_tasks, __pyx_v_cause); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2411, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2411, __pyx_L3_error)
__pyx_v_failing_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4);
__pyx_t_4 = 0;
+2412: ts._exception_blame = failing_ts
__Pyx_INCREF(((PyObject *)__pyx_v_failing_ts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_failing_ts)); __Pyx_GOTREF(__pyx_v_ts->_exception_blame); __Pyx_DECREF(__pyx_v_ts->_exception_blame); __pyx_v_ts->_exception_blame = ((PyObject *)__pyx_v_failing_ts);
2413: else:
+2414: failing_ts = ts._exception_blame
/*else*/ {
if (!(likely(((__pyx_v_ts->_exception_blame) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_ts->_exception_blame, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2414, __pyx_L3_error)
__pyx_t_4 = __pyx_v_ts->_exception_blame;
__Pyx_INCREF(__pyx_t_4);
__pyx_v_failing_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4);
__pyx_t_4 = 0;
}
__pyx_L15:;
2415:
+2416: recommendations: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2416, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_recommendations = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
2417:
+2418: for dts in ts._dependents:
__pyx_t_8 = 0;
__pyx_t_11 = __Pyx_set_iterator(__pyx_v_ts->_dependents, 1, (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2418, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_11;
__pyx_t_11 = 0;
while (1) {
__pyx_t_12 = __Pyx_set_iter_next(__pyx_t_4, __pyx_t_9, &__pyx_t_8, &__pyx_t_11, __pyx_t_10);
if (unlikely(__pyx_t_12 == 0)) break;
if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 2418, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_11);
if (!(likely(((__pyx_t_11) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_11, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2418, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_11));
__pyx_t_11 = 0;
+2419: dts._exception_blame = failing_ts
__Pyx_INCREF(((PyObject *)__pyx_v_failing_ts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_failing_ts)); __Pyx_GOTREF(__pyx_v_dts->_exception_blame); __Pyx_DECREF(__pyx_v_dts->_exception_blame); __pyx_v_dts->_exception_blame = ((PyObject *)__pyx_v_failing_ts);
+2420: recommendations[dts._key] = "erred"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_dts->_key, __pyx_n_u_erred) < 0)) __PYX_ERR(0, 2420, __pyx_L3_error) } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
2421:
+2422: for dts in ts._dependencies:
__pyx_t_9 = 0;
__pyx_t_11 = __Pyx_set_iterator(__pyx_v_ts->_dependencies, 1, (&__pyx_t_8), (&__pyx_t_10)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2422, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_11;
__pyx_t_11 = 0;
while (1) {
__pyx_t_12 = __Pyx_set_iter_next(__pyx_t_4, __pyx_t_8, &__pyx_t_9, &__pyx_t_11, __pyx_t_10);
if (unlikely(__pyx_t_12 == 0)) break;
if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 2422, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_11);
if (!(likely(((__pyx_t_11) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_11, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2422, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_11));
__pyx_t_11 = 0;
+2423: s = dts._waiters
__pyx_t_11 = __pyx_v_dts->_waiters;
__Pyx_INCREF(__pyx_t_11);
__Pyx_XDECREF_SET(__pyx_v_s, ((PyObject*)__pyx_t_11));
__pyx_t_11 = 0;
+2424: s.discard(ts)
if (unlikely(__pyx_v_s == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "discard");
__PYX_ERR(0, 2424, __pyx_L3_error)
}
__pyx_t_7 = __Pyx_PySet_Discard(__pyx_v_s, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 2424, __pyx_L3_error)
+2425: if not s and not dts._who_wants:
__pyx_t_5 = (__pyx_v_s != Py_None)&&(PySet_GET_SIZE(__pyx_v_s) != 0); __pyx_t_13 = ((!__pyx_t_5) != 0); if (__pyx_t_13) { } else { __pyx_t_6 = __pyx_t_13; goto __pyx_L21_bool_binop_done; } __pyx_t_13 = (__pyx_v_dts->_who_wants != Py_None)&&(PySet_GET_SIZE(__pyx_v_dts->_who_wants) != 0); __pyx_t_5 = ((!__pyx_t_13) != 0); __pyx_t_6 = __pyx_t_5; __pyx_L21_bool_binop_done:; if (__pyx_t_6) { /* … */ } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2426: recommendations[dts._key] = "released"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_dts->_key, __pyx_n_u_released) < 0)) __PYX_ERR(0, 2426, __pyx_L3_error)
2427:
+2428: ts._waiters.clear() # do anything with this?
if (unlikely(__pyx_v_ts->_waiters == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear");
__PYX_ERR(0, 2428, __pyx_L3_error)
}
__pyx_t_7 = PySet_Clear(__pyx_v_ts->_waiters); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 2428, __pyx_L3_error)
2429:
+2430: ts.state = "erred"
if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_ts), __pyx_n_s_state, __pyx_n_u_erred) < 0) __PYX_ERR(0, 2430, __pyx_L3_error)
2431:
2432: report_msg = {
+2433: "op": "task-erred",
__pyx_t_4 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2433, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_u_op, __pyx_kp_u_task_erred) < 0) __PYX_ERR(0, 2433, __pyx_L3_error)
+2434: "key": key,
if (PyDict_SetItem(__pyx_t_4, __pyx_n_u_key, __pyx_v_key) < 0) __PYX_ERR(0, 2433, __pyx_L3_error)
+2435: "exception": failing_ts._exception,
if (PyDict_SetItem(__pyx_t_4, __pyx_n_u_exception, __pyx_v_failing_ts->_exception) < 0) __PYX_ERR(0, 2433, __pyx_L3_error)
+2436: "traceback": failing_ts._traceback,
if (PyDict_SetItem(__pyx_t_4, __pyx_n_u_traceback, __pyx_v_failing_ts->_traceback) < 0) __PYX_ERR(0, 2433, __pyx_L3_error) __pyx_v_report_msg = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
2437: }
2438: cs: ClientState
+2439: for cs in ts._who_wants:
__pyx_t_8 = 0;
__pyx_t_11 = __Pyx_set_iterator(__pyx_v_ts->_who_wants, 1, (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2439, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_11;
__pyx_t_11 = 0;
while (1) {
__pyx_t_12 = __Pyx_set_iter_next(__pyx_t_4, __pyx_t_9, &__pyx_t_8, &__pyx_t_11, __pyx_t_10);
if (unlikely(__pyx_t_12 == 0)) break;
if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 2439, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_11);
if (!(likely(((__pyx_t_11) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_11, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 2439, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_cs, ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_11));
__pyx_t_11 = 0;
+2440: client_msgs[cs._client_key] = [report_msg]
__pyx_t_11 = PyList_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2440, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_v_report_msg); __Pyx_GIVEREF(__pyx_v_report_msg); PyList_SET_ITEM(__pyx_t_11, 0, __pyx_v_report_msg); if (unlikely(PyDict_SetItem(__pyx_v_client_msgs, __pyx_v_cs->_client_key, __pyx_t_11) < 0)) __PYX_ERR(0, 2440, __pyx_L3_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
2441:
+2442: cs = self._clients["fire-and-forget"]
if (unlikely(__pyx_v_self->_clients == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2442, __pyx_L3_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->_clients, __pyx_kp_u_fire_and_forget); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2442, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 2442, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_cs, ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_4));
__pyx_t_4 = 0;
+2443: if ts in cs._wants_what:
if (unlikely(__pyx_v_cs->_wants_what == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2443, __pyx_L3_error)
}
__pyx_t_6 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_cs->_wants_what, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2443, __pyx_L3_error)
__pyx_t_5 = (__pyx_t_6 != 0);
if (__pyx_t_5) {
/* … */
}
+2444: _client_releases_keys(
__pyx_t_14 = __pyx_f_11distributed_9scheduler__client_releases_keys(__pyx_v_self, ((PyObject*)__pyx_t_11), __pyx_v_cs, __pyx_v_recommendations); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2444, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; (void)(__pyx_t_14); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
2445: self,
2446: cs=cs,
+2447: keys=[key],
__pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2447, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_v_key); /* … */ __pyx_t_11 = __pyx_t_4; __Pyx_INCREF(__pyx_t_11);
2448: recommendations=recommendations,
2449: )
2450:
+2451: if self._validate:
__pyx_t_5 = (__pyx_v_self->_validate != 0);
if (__pyx_t_5) {
/* … */
}
+2452: assert not ts._processing_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ts->_processing_on)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2452, __pyx_L3_error)
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2452, __pyx_L3_error)
}
}
#endif
2453:
+2454: return recommendations, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_14 = PyTuple_New(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2454, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF(__pyx_v_recommendations); __Pyx_GIVEREF(__pyx_v_recommendations); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_v_recommendations); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_v_client_msgs); __pyx_r = __pyx_t_14; __pyx_t_14 = 0; goto __pyx_L7_try_return;
+2455: except Exception as e:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_10) { __Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_processing_erred", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_14, &__pyx_t_4, &__pyx_t_11) < 0) __PYX_ERR(0, 2455, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_v_e = __pyx_t_4; /*try:*/ { /* … */ /*finally:*/ { __pyx_L32_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21) < 0)) __Pyx_ErrFetch(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __pyx_t_10 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_18 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_ExceptionReset(__pyx_t_22, __pyx_t_23, __pyx_t_24); } __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_ErrRestore(__pyx_t_19, __pyx_t_20, __pyx_t_21); __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_18; goto __pyx_L5_except_error; } } } goto __pyx_L5_except_error; __pyx_L5_except_error:;
+2456: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_logger); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2456, __pyx_L32_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_exception); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2456, __pyx_L32_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_17))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_17); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_17, function); } } __pyx_t_15 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_16, __pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_v_e); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2456, __pyx_L32_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2457: if LOG_PDB:
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_LOG_PDB); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2457, __pyx_L32_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2457, __pyx_L32_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (__pyx_t_5) { /* … */ }
+2458: import pdb
__pyx_t_15 = __Pyx_Import(__pyx_n_s_pdb, 0, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2458, __pyx_L32_error) __Pyx_GOTREF(__pyx_t_15); __pyx_v_pdb = __pyx_t_15; __pyx_t_15 = 0;
2459:
+2460: pdb.set_trace()
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_pdb, __pyx_n_s_set_trace); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2460, __pyx_L32_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_17); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_17, function); } } __pyx_t_15 = (__pyx_t_16) ? __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_t_16) : __Pyx_PyObject_CallNoArg(__pyx_t_17); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2460, __pyx_L32_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2461: raise
__Pyx_GIVEREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ErrRestoreWithState(__pyx_t_14, __pyx_t_4, __pyx_t_11); __pyx_t_14 = 0; __pyx_t_4 = 0; __pyx_t_11 = 0; __PYX_ERR(0, 2461, __pyx_L32_error) }
2462:
+2463: def transition_no_worker_released(self, key):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_29transition_no_worker_released(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_29transition_no_worker_released(PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_no_worker_released (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_28transition_no_worker_released(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), ((PyObject *)__pyx_v_key));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_28transition_no_worker_released(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, PyObject *__pyx_v_key) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_dts = 0;
PyObject *__pyx_v_worker_msgs = 0;
PyObject *__pyx_v_client_msgs = 0;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_pdb = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_no_worker_released", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_no_worker_released", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_v_dts);
__Pyx_XDECREF(__pyx_v_worker_msgs);
__Pyx_XDECREF(__pyx_v_client_msgs);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_pdb);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+2464: try:
{
/*try:*/ {
/* … */
}
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L1_error;
__pyx_L7_try_return:;
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L0;
}
+2465: ts: TaskState = self._tasks[key]
if (unlikely(__pyx_v_self->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2465, __pyx_L3_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2465, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2465, __pyx_L3_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4);
__pyx_t_4 = 0;
2466: dts: TaskState
+2467: worker_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2467, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_worker_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+2468: client_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2468, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_client_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
2469:
+2470: if self._validate:
__pyx_t_5 = (__pyx_v_self->_validate != 0);
if (__pyx_t_5) {
/* … */
}
+2471: assert self._tasks[key].state == "no-worker"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_self->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2471, __pyx_L3_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2471, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_state); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2471, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_6, __pyx_kp_u_no_worker, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2471, __pyx_L3_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_5)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2471, __pyx_L3_error)
}
}
#endif
+2472: assert not ts._who_has
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2472, __pyx_L3_error)
}
}
#endif
+2473: assert not ts._waiting_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2473, __pyx_L3_error)
}
}
#endif
2474:
+2475: self._unrunnable.remove(ts)
if (unlikely(__pyx_v_self->_unrunnable == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
__PYX_ERR(0, 2475, __pyx_L3_error)
}
__pyx_t_7 = __Pyx_PySet_Remove(__pyx_v_self->_unrunnable, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 2475, __pyx_L3_error)
+2476: ts.state = "released"
if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_ts), __pyx_n_s_state, __pyx_n_u_released) < 0) __PYX_ERR(0, 2476, __pyx_L3_error)
2477:
+2478: for dts in ts._dependencies:
__pyx_t_8 = 0;
__pyx_t_4 = __Pyx_set_iterator(__pyx_v_ts->_dependencies, 1, (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2478, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__pyx_t_6 = __pyx_t_4;
__pyx_t_4 = 0;
while (1) {
__pyx_t_11 = __Pyx_set_iter_next(__pyx_t_6, __pyx_t_9, &__pyx_t_8, &__pyx_t_4, __pyx_t_10);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 2478, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2478, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4));
__pyx_t_4 = 0;
+2479: dts._waiters.discard(ts)
if (unlikely(__pyx_v_dts->_waiters == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "discard");
__PYX_ERR(0, 2479, __pyx_L3_error)
}
__pyx_t_7 = __Pyx_PySet_Discard(__pyx_v_dts->_waiters, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 2479, __pyx_L3_error)
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
2480:
+2481: ts._waiters.clear()
if (unlikely(__pyx_v_ts->_waiters == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear");
__PYX_ERR(0, 2481, __pyx_L3_error)
}
__pyx_t_7 = PySet_Clear(__pyx_v_ts->_waiters); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 2481, __pyx_L3_error)
2482:
+2483: return {}, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2483, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2483, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_client_msgs); __pyx_t_6 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L7_try_return;
+2484: except Exception as e:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_10) { __Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_no_worker_released", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_12) < 0) __PYX_ERR(0, 2484, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_12); __Pyx_INCREF(__pyx_t_6); __pyx_v_e = __pyx_t_6; /*try:*/ { /* … */ /*finally:*/ { __pyx_L17_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19) < 0)) __Pyx_ErrFetch(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __pyx_t_10 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_16 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); } __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_ErrRestore(__pyx_t_17, __pyx_t_18, __pyx_t_19); __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_16; goto __pyx_L5_except_error; } } } goto __pyx_L5_except_error; __pyx_L5_except_error:;
+2485: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_logger); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2485, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_exception); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2485, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_13 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_14, __pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_v_e); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2485, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+2486: if LOG_PDB:
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_LOG_PDB); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2486, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2486, __pyx_L17_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (__pyx_t_5) { /* … */ }
+2487: import pdb
__pyx_t_13 = __Pyx_Import(__pyx_n_s_pdb, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2487, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_13); __pyx_v_pdb = __pyx_t_13; __pyx_t_13 = 0;
2488:
+2489: pdb.set_trace()
__pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_pdb, __pyx_n_s_set_trace); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2489, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_15))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_13 = (__pyx_t_14) ? __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_14) : __Pyx_PyObject_CallNoArg(__pyx_t_15); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2489, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+2490: raise
__Pyx_GIVEREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_6, __pyx_t_12); __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_12 = 0; __PYX_ERR(0, 2490, __pyx_L17_error) }
2491:
2492: @ccall
+2493: def remove_key(self, key):
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_31remove_key(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/
static PyObject *__pyx_f_11distributed_9scheduler_14SchedulerState_remove_key(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, PyObject *__pyx_v_key, int __pyx_skip_dispatch) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_cs = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("remove_key", 0);
/* Check if called by wrapper */
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_remove_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2493, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_11distributed_9scheduler_14SchedulerState_31remove_key)) {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_t_1);
__pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_4)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_key) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_key);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2493, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
__pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.remove_key", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_v_cs);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_31remove_key(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_31remove_key(PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("remove_key (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_30remove_key(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), ((PyObject *)__pyx_v_key));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_30remove_key(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, PyObject *__pyx_v_key) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("remove_key", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __pyx_f_11distributed_9scheduler_14SchedulerState_remove_key(__pyx_v_self, __pyx_v_key, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2493, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.remove_key", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+2494: ts: TaskState = self._tasks.pop(key)
if (unlikely(__pyx_v_self->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "pop");
__PYX_ERR(0, 2494, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_Pop(__pyx_v_self->_tasks, __pyx_v_key, ((PyObject *)NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2494, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2494, __pyx_L1_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1);
__pyx_t_1 = 0;
+2495: assert ts._state == "forgotten"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_forgotten, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2495, __pyx_L1_error)
if (unlikely(!(__pyx_t_5 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2495, __pyx_L1_error)
}
}
#endif
+2496: self._unrunnable.discard(ts)
if (unlikely(__pyx_v_self->_unrunnable == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "discard");
__PYX_ERR(0, 2496, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PySet_Discard(__pyx_v_self->_unrunnable, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 2496, __pyx_L1_error)
2497: cs: ClientState
+2498: for cs in ts._who_wants:
__pyx_t_7 = 0; __pyx_t_2 = __Pyx_set_iterator(__pyx_v_ts->_who_wants, 1, (&__pyx_t_8), (&__pyx_t_9)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_2; __pyx_t_2 = 0; while (1) { __pyx_t_10 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_8, &__pyx_t_7, &__pyx_t_2, __pyx_t_9); if (unlikely(__pyx_t_10 == 0)) break; if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 2498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 2498, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_cs, ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_2)); __pyx_t_2 = 0;
+2499: cs._wants_what.remove(ts)
if (unlikely(__pyx_v_cs->_wants_what == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
__PYX_ERR(0, 2499, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PySet_Remove(__pyx_v_cs->_wants_what, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 2499, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2500: ts._who_wants.clear()
if (unlikely(__pyx_v_ts->_who_wants == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear");
__PYX_ERR(0, 2500, __pyx_L1_error)
}
__pyx_t_6 = PySet_Clear(__pyx_v_ts->_who_wants); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 2500, __pyx_L1_error)
+2501: ts._processing_on = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_ts->_processing_on); __Pyx_DECREF(((PyObject *)__pyx_v_ts->_processing_on)); __pyx_v_ts->_processing_on = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)Py_None);
+2502: ts._exception_blame = ts._exception = ts._traceback = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_ts->_exception_blame); __Pyx_DECREF(__pyx_v_ts->_exception_blame); __pyx_v_ts->_exception_blame = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_ts->_exception); __Pyx_DECREF(__pyx_v_ts->_exception); __pyx_v_ts->_exception = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_ts->_traceback); __Pyx_DECREF(__pyx_v_ts->_traceback); __pyx_v_ts->_traceback = Py_None;
+2503: self._task_metadata.pop(key, None)
if (unlikely(__pyx_v_self->_task_metadata == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "pop");
__PYX_ERR(0, 2503, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_Pop(__pyx_v_self->_task_metadata, __pyx_v_key, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2503, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2504:
+2505: def transition_memory_forgotten(self, key):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_33transition_memory_forgotten(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_33transition_memory_forgotten(PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_memory_forgotten (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_32transition_memory_forgotten(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), ((PyObject *)__pyx_v_key));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_32transition_memory_forgotten(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, PyObject *__pyx_v_key) {
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_v_worker_msgs = 0;
PyObject *__pyx_v_client_msgs = 0;
PyObject *__pyx_v_recommendations = 0;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_pdb = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_memory_forgotten", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_memory_forgotten", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF(__pyx_v_worker_msgs);
__Pyx_XDECREF(__pyx_v_client_msgs);
__Pyx_XDECREF(__pyx_v_recommendations);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_pdb);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
2506: ws: WorkerState
+2507: try:
{
/*try:*/ {
/* … */
}
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L1_error;
__pyx_L7_try_return:;
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L0;
}
+2508: ts: TaskState = self._tasks[key]
if (unlikely(__pyx_v_self->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2508, __pyx_L3_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2508, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2508, __pyx_L3_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4);
__pyx_t_4 = 0;
+2509: worker_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2509, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_worker_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+2510: client_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2510, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_client_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
2511:
+2512: if self._validate:
__pyx_t_5 = (__pyx_v_self->_validate != 0);
if (__pyx_t_5) {
/* … */
}
+2513: assert ts._state == "memory"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_memory_2, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2513, __pyx_L3_error)
if (unlikely(!(__pyx_t_5 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2513, __pyx_L3_error)
}
}
#endif
+2514: assert not ts._processing_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ts->_processing_on)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2514, __pyx_L3_error)
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2514, __pyx_L3_error)
}
}
#endif
+2515: assert not ts._waiting_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2515, __pyx_L3_error)
}
}
#endif
+2516: if not ts._run_spec:
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_ts->_run_spec); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2516, __pyx_L3_error) __pyx_t_6 = ((!__pyx_t_5) != 0); if (__pyx_t_6) { goto __pyx_L10; }
2517: # It's ok to forget a pure data task
2518: pass
+2519: elif ts._has_lost_dependencies:
__pyx_t_6 = (__pyx_v_ts->_has_lost_dependencies != 0);
if (__pyx_t_6) {
goto __pyx_L10;
}
2520: # It's ok to forget a task with forgotten dependencies
2521: pass
+2522: elif not ts._who_wants and not ts._waiters and not ts._dependents:
__pyx_t_5 = (__pyx_v_ts->_who_wants != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_wants) != 0); __pyx_t_7 = ((!__pyx_t_5) != 0); if (__pyx_t_7) { } else { __pyx_t_6 = __pyx_t_7; goto __pyx_L11_bool_binop_done; } __pyx_t_7 = (__pyx_v_ts->_waiters != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiters) != 0); __pyx_t_5 = ((!__pyx_t_7) != 0); if (__pyx_t_5) { } else { __pyx_t_6 = __pyx_t_5; goto __pyx_L11_bool_binop_done; } __pyx_t_5 = (__pyx_v_ts->_dependents != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_dependents) != 0); __pyx_t_7 = ((!__pyx_t_5) != 0); __pyx_t_6 = __pyx_t_7; __pyx_L11_bool_binop_done:; if (__pyx_t_6) { goto __pyx_L10; }
2523: # It's ok to forget a task that nobody needs
2524: pass
2525: else:
+2526: assert 0, (ts,)
/*else*/ {
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(!0)) {
__pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2526, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(((PyObject *)__pyx_v_ts));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ts));
PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_ts));
__pyx_t_8 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2526, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
PyErr_SetObject(PyExc_AssertionError, __pyx_t_8);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__PYX_ERR(0, 2526, __pyx_L3_error)
}
}
#endif
}
__pyx_L10:;
2527:
+2528: recommendations: dict = {}
__pyx_t_8 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2528, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_recommendations = ((PyObject*)__pyx_t_8); __pyx_t_8 = 0;
2529:
+2530: if ts._actor:
__pyx_t_6 = (__pyx_v_ts->_actor != 0);
if (__pyx_t_6) {
/* … */
}
+2531: for ws in ts._who_has:
__pyx_t_9 = 0;
__pyx_t_4 = __Pyx_set_iterator(__pyx_v_ts->_who_has, 1, (&__pyx_t_10), (&__pyx_t_11)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2531, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_8);
__pyx_t_8 = __pyx_t_4;
__pyx_t_4 = 0;
while (1) {
__pyx_t_12 = __Pyx_set_iter_next(__pyx_t_8, __pyx_t_10, &__pyx_t_9, &__pyx_t_4, __pyx_t_11);
if (unlikely(__pyx_t_12 == 0)) break;
if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 2531, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 2531, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_4));
__pyx_t_4 = 0;
+2532: ws._actors.discard(ts)
if (unlikely(__pyx_v_ws->_actors == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "discard");
__PYX_ERR(0, 2532, __pyx_L3_error)
}
__pyx_t_13 = __Pyx_PySet_Discard(__pyx_v_ws->_actors, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(0, 2532, __pyx_L3_error)
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
2533:
+2534: _propagate_forgotten(self, ts, recommendations, worker_msgs)
__pyx_t_8 = __pyx_f_11distributed_9scheduler__propagate_forgotten(__pyx_v_self, __pyx_v_ts, __pyx_v_recommendations, __pyx_v_worker_msgs); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2534, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
2535:
+2536: client_msgs = _task_to_client_msgs(self, ts)
__pyx_t_8 = __pyx_f_11distributed_9scheduler__task_to_client_msgs(__pyx_v_self, __pyx_v_ts); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2536, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF_SET(__pyx_v_client_msgs, ((PyObject*)__pyx_t_8)); __pyx_t_8 = 0;
+2537: self.remove_key(key)
__pyx_t_8 = ((struct __pyx_vtabstruct_11distributed_9scheduler_SchedulerState *)__pyx_v_self->__pyx_vtab)->remove_key(__pyx_v_self, __pyx_v_key, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2537, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
2538:
+2539: return recommendations, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2539, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_v_recommendations); __Pyx_GIVEREF(__pyx_v_recommendations); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_recommendations); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_client_msgs); __pyx_r = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L7_try_return;
+2540: except Exception as e:
__pyx_t_11 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_11) { __Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_memory_forgotten", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_4, &__pyx_t_14) < 0) __PYX_ERR(0, 2540, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF(__pyx_t_4); __pyx_v_e = __pyx_t_4; /*try:*/ { /* … */ /*finally:*/ { __pyx_L22_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21) < 0)) __Pyx_ErrFetch(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __pyx_t_11 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_18 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_ExceptionReset(__pyx_t_22, __pyx_t_23, __pyx_t_24); } __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_ErrRestore(__pyx_t_19, __pyx_t_20, __pyx_t_21); __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_lineno = __pyx_t_11; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_18; goto __pyx_L5_except_error; } } } goto __pyx_L5_except_error; __pyx_L5_except_error:;
+2541: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_logger); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2541, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_exception); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2541, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_17))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_17); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_17, function); } } __pyx_t_15 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_16, __pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_v_e); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2541, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2542: if LOG_PDB:
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_LOG_PDB); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2542, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2542, __pyx_L22_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (__pyx_t_6) { /* … */ }
+2543: import pdb
__pyx_t_15 = __Pyx_Import(__pyx_n_s_pdb, 0, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2543, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_15); __pyx_v_pdb = __pyx_t_15; __pyx_t_15 = 0;
2544:
+2545: pdb.set_trace()
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_pdb, __pyx_n_s_set_trace); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2545, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_17); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_17, function); } } __pyx_t_15 = (__pyx_t_16) ? __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_t_16) : __Pyx_PyObject_CallNoArg(__pyx_t_17); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2545, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2546: raise
__Pyx_GIVEREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_ErrRestoreWithState(__pyx_t_8, __pyx_t_4, __pyx_t_14); __pyx_t_8 = 0; __pyx_t_4 = 0; __pyx_t_14 = 0; __PYX_ERR(0, 2546, __pyx_L22_error) }
2547:
+2548: def transition_released_forgotten(self, key):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_35transition_released_forgotten(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_35transition_released_forgotten(PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_released_forgotten (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_34transition_released_forgotten(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), ((PyObject *)__pyx_v_key));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_34transition_released_forgotten(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, PyObject *__pyx_v_key) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_v_worker_msgs = 0;
PyObject *__pyx_v_client_msgs = 0;
PyObject *__pyx_v_recommendations = 0;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_pdb = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition_released_forgotten", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_released_forgotten", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF(__pyx_v_worker_msgs);
__Pyx_XDECREF(__pyx_v_client_msgs);
__Pyx_XDECREF(__pyx_v_recommendations);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_pdb);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+2549: try:
{
/*try:*/ {
/* … */
}
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L1_error;
__pyx_L7_try_return:;
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L0;
}
+2550: ts: TaskState = self._tasks[key]
if (unlikely(__pyx_v_self->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2550, __pyx_L3_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_self->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2550, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2550, __pyx_L3_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4);
__pyx_t_4 = 0;
+2551: worker_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2551, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_worker_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+2552: client_msgs: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2552, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_client_msgs = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
2553:
+2554: if self._validate:
__pyx_t_5 = (__pyx_v_self->_validate != 0);
if (__pyx_t_5) {
/* … */
}
+2555: assert ts._state in ("released", "erred")
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__Pyx_INCREF(__pyx_v_ts->_state);
__pyx_t_6 = __pyx_v_ts->_state;
__pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_6, __pyx_n_u_released, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2555, __pyx_L3_error)
__pyx_t_8 = (__pyx_t_7 != 0);
if (!__pyx_t_8) {
} else {
__pyx_t_5 = __pyx_t_8;
goto __pyx_L10_bool_binop_done;
}
__pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_t_6, __pyx_n_u_erred, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 2555, __pyx_L3_error)
__pyx_t_7 = (__pyx_t_8 != 0);
__pyx_t_5 = __pyx_t_7;
__pyx_L10_bool_binop_done:;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!(__pyx_t_5 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2555, __pyx_L3_error)
}
}
#endif
+2556: assert not ts._who_has
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2556, __pyx_L3_error)
}
}
#endif
+2557: assert not ts._processing_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ts->_processing_on)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2557, __pyx_L3_error)
if (unlikely(!((!__pyx_t_5) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2557, __pyx_L3_error)
}
}
#endif
+2558: assert not ts._waiting_on, (ts, ts._waiting_on)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (unlikely(!((!__pyx_t_5) != 0))) {
__pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2558, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(((PyObject *)__pyx_v_ts));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ts));
PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_ts));
__Pyx_INCREF(__pyx_v_ts->_waiting_on);
__Pyx_GIVEREF(__pyx_v_ts->_waiting_on);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_ts->_waiting_on);
__pyx_t_9 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2558, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
PyErr_SetObject(PyExc_AssertionError, __pyx_t_9);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__PYX_ERR(0, 2558, __pyx_L3_error)
}
}
#endif
+2559: if not ts._run_spec:
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_ts->_run_spec); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2559, __pyx_L3_error) __pyx_t_7 = ((!__pyx_t_5) != 0); if (__pyx_t_7) { goto __pyx_L12; }
2560: # It's ok to forget a pure data task
2561: pass
+2562: elif ts._has_lost_dependencies:
__pyx_t_7 = (__pyx_v_ts->_has_lost_dependencies != 0);
if (__pyx_t_7) {
goto __pyx_L12;
}
2563: # It's ok to forget a task with forgotten dependencies
2564: pass
+2565: elif not ts._who_wants and not ts._waiters and not ts._dependents:
__pyx_t_5 = (__pyx_v_ts->_who_wants != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_wants) != 0); __pyx_t_8 = ((!__pyx_t_5) != 0); if (__pyx_t_8) { } else { __pyx_t_7 = __pyx_t_8; goto __pyx_L13_bool_binop_done; } __pyx_t_8 = (__pyx_v_ts->_waiters != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiters) != 0); __pyx_t_5 = ((!__pyx_t_8) != 0); if (__pyx_t_5) { } else { __pyx_t_7 = __pyx_t_5; goto __pyx_L13_bool_binop_done; } __pyx_t_5 = (__pyx_v_ts->_dependents != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_dependents) != 0); __pyx_t_8 = ((!__pyx_t_5) != 0); __pyx_t_7 = __pyx_t_8; __pyx_L13_bool_binop_done:; if (__pyx_t_7) { goto __pyx_L12; }
2566: # It's ok to forget a task that nobody needs
2567: pass
2568: else:
+2569: assert 0, (ts,)
/*else*/ {
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(!0)) {
__pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2569, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_INCREF(((PyObject *)__pyx_v_ts));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ts));
PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_ts));
__pyx_t_4 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2569, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
PyErr_SetObject(PyExc_AssertionError, __pyx_t_4);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__PYX_ERR(0, 2569, __pyx_L3_error)
}
}
#endif
}
__pyx_L12:;
2570:
+2571: recommendations: dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2571, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_recommendations = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+2572: _propagate_forgotten(self, ts, recommendations, worker_msgs)
__pyx_t_4 = __pyx_f_11distributed_9scheduler__propagate_forgotten(__pyx_v_self, __pyx_v_ts, __pyx_v_recommendations, __pyx_v_worker_msgs); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2572, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
2573:
+2574: client_msgs = _task_to_client_msgs(self, ts)
__pyx_t_4 = __pyx_f_11distributed_9scheduler__task_to_client_msgs(__pyx_v_self, __pyx_v_ts); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2574, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF_SET(__pyx_v_client_msgs, ((PyObject*)__pyx_t_4)); __pyx_t_4 = 0;
+2575: self.remove_key(key)
__pyx_t_4 = ((struct __pyx_vtabstruct_11distributed_9scheduler_SchedulerState *)__pyx_v_self->__pyx_vtab)->remove_key(__pyx_v_self, __pyx_v_key, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2575, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
2576:
+2577: return recommendations, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2577, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_recommendations); __Pyx_GIVEREF(__pyx_v_recommendations); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_recommendations); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_client_msgs); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L7_try_return;
+2578: except Exception as e:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_10) { __Pyx_AddTraceback("distributed.scheduler.SchedulerState.transition_released_forgotten", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_9, &__pyx_t_11) < 0) __PYX_ERR(0, 2578, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_9); __Pyx_GOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_t_9); __pyx_v_e = __pyx_t_9; /*try:*/ { /* … */ /*finally:*/ { __pyx_L21_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19) < 0)) __Pyx_ErrFetch(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __pyx_t_10 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_16 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); } __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_ErrRestore(__pyx_t_17, __pyx_t_18, __pyx_t_19); __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_16; goto __pyx_L5_except_error; } } } goto __pyx_L5_except_error; __pyx_L5_except_error:;
+2579: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_logger); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2579, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_exception); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2579, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } __pyx_t_12 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_13, __pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_v_e); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2579, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2580: if LOG_PDB:
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_LOG_PDB); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2580, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2580, __pyx_L21_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (__pyx_t_7) { /* … */ }
+2581: import pdb
__pyx_t_12 = __Pyx_Import(__pyx_n_s_pdb, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2581, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_12); __pyx_v_pdb = __pyx_t_12; __pyx_t_12 = 0;
2582:
+2583: pdb.set_trace()
__pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_pdb, __pyx_n_s_set_trace); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2583, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } __pyx_t_12 = (__pyx_t_13) ? __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_13) : __Pyx_PyObject_CallNoArg(__pyx_t_14); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2583, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2584: raise
__Pyx_GIVEREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_9, __pyx_t_11); __pyx_t_4 = 0; __pyx_t_9 = 0; __pyx_t_11 = 0; __PYX_ERR(0, 2584, __pyx_L21_error) }
2585:
2586: ##############################
2587: # Assigning Tasks to Workers #
2588: ##############################
2589:
2590: @ccall
2591: @exceptval(check=False)
+2592: def check_idle_saturated(self, ws: WorkerState, occ: double = -1.0):
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_37check_idle_saturated(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_11distributed_9scheduler_14SchedulerState_check_idle_saturated(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws, int __pyx_skip_dispatch, struct __pyx_opt_args_11distributed_9scheduler_14SchedulerState_check_idle_saturated *__pyx_optional_args) {
double __pyx_v_occ = __pyx_k__13;
Py_ssize_t __pyx_v_total_nthreads;
Py_ssize_t __pyx_v_nc;
Py_ssize_t __pyx_v_p;
double __pyx_v_total_occupancy;
double __pyx_v_avg;
PyObject *__pyx_v_idle = NULL;
PyObject *__pyx_v_saturated = 0;
double __pyx_v_pending;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("check_idle_saturated", 0);
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v_occ = __pyx_optional_args->occ;
}
}
/* Check if called by wrapper */
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_check_idle_saturated); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2592, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_11distributed_9scheduler_14SchedulerState_37check_idle_saturated)) {
__Pyx_XDECREF(__pyx_r);
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_occ); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2592, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_t_1);
__pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_4, function);
__pyx_t_6 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[3] = {__pyx_t_5, ((PyObject *)__pyx_v_ws), __pyx_t_3};
__pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2592, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[3] = {__pyx_t_5, ((PyObject *)__pyx_v_ws), __pyx_t_3};
__pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2592, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} else
#endif
{
__pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2592, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (__pyx_t_5) {
__Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
}
__Pyx_INCREF(((PyObject *)__pyx_v_ws));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ws));
PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, ((PyObject *)__pyx_v_ws));
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_3);
__pyx_t_3 = 0;
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2592, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
__pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.check_idle_saturated", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_idle);
__Pyx_XDECREF(__pyx_v_saturated);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_37check_idle_saturated(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_14SchedulerState_36check_idle_saturated[] = "Update the status of the idle and saturated state\n\n The scheduler keeps track of workers that are ..\n\n - Saturated: have enough work to stay busy\n - Idle: do not have enough work to stay busy\n\n They are considered saturated if they both have enough tasks to occupy\n all of their threads, and if the expected runtime of those tasks is\n large enough.\n\n This is useful for load balancing and adaptivity.\n ";
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_37check_idle_saturated(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
double __pyx_v_occ;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("check_idle_saturated (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ws,&__pyx_n_s_occ,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ws)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_occ);
if (value) { values[1] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "check_idle_saturated") < 0)) __PYX_ERR(0, 2592, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)values[0]);
if (values[1]) {
__pyx_v_occ = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_occ == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2592, __pyx_L3_error)
} else {
__pyx_v_occ = __pyx_k__13;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("check_idle_saturated", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2592, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.check_idle_saturated", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ws), __pyx_ptype_11distributed_9scheduler_WorkerState, 1, "ws", 0))) __PYX_ERR(0, 2592, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_36check_idle_saturated(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), __pyx_v_ws, __pyx_v_occ);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_36check_idle_saturated(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws, double __pyx_v_occ) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("check_idle_saturated", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_2.__pyx_n = 1;
__pyx_t_2.occ = __pyx_v_occ;
__pyx_t_1 = __pyx_vtabptr_11distributed_9scheduler_SchedulerState->check_idle_saturated(__pyx_v_self, __pyx_v_ws, 1, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2592, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.check_idle_saturated", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_k__13 = (-1.0);
__pyx_k__13 = (-1.0);
/* … */
struct __pyx_opt_args_11distributed_9scheduler_14SchedulerState_check_idle_saturated {
int __pyx_n;
double occ;
};
2593: """Update the status of the idle and saturated state
2594:
2595: The scheduler keeps track of workers that are ..
2596:
2597: - Saturated: have enough work to stay busy
2598: - Idle: do not have enough work to stay busy
2599:
2600: They are considered saturated if they both have enough tasks to occupy
2601: all of their threads, and if the expected runtime of those tasks is
2602: large enough.
2603:
2604: This is useful for load balancing and adaptivity.
2605: """
+2606: total_nthreads: Py_ssize_t = self._total_nthreads
__pyx_t_8 = __pyx_v_self->_total_nthreads; __pyx_v_total_nthreads = __pyx_t_8;
+2607: if total_nthreads == 0 or ws.status == Status.closed:
__pyx_t_10 = ((__pyx_v_total_nthreads == 0) != 0);
if (!__pyx_t_10) {
} else {
__pyx_t_9 = __pyx_t_10;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_ws), __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2607, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Status); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2607, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_closed); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2607, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2607, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 2607, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_9 = __pyx_t_10;
__pyx_L4_bool_binop_done:;
if (__pyx_t_9) {
/* … */
}
+2608: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
+2609: if occ < 0:
__pyx_t_9 = ((__pyx_v_occ < 0.0) != 0);
if (__pyx_t_9) {
/* … */
}
+2610: occ = ws._occupancy
__pyx_t_11 = __pyx_v_ws->_occupancy;
__pyx_v_occ = __pyx_t_11;
2611:
+2612: nc: Py_ssize_t = ws._nthreads
__pyx_t_8 = __pyx_v_ws->_nthreads; __pyx_v_nc = __pyx_t_8;
+2613: p: Py_ssize_t = len(ws._processing)
__pyx_t_2 = __pyx_v_ws->_processing; __Pyx_INCREF(__pyx_t_2); if (unlikely(__pyx_t_2 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 2613, __pyx_L1_error) } __pyx_t_8 = PyDict_Size(__pyx_t_2); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2613, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_p = __pyx_t_8;
+2614: total_occupancy: double = self._total_occupancy
__pyx_t_11 = __pyx_v_self->_total_occupancy; __pyx_v_total_occupancy = __pyx_t_11;
+2615: avg: double = total_occupancy / total_nthreads
if (unlikely(__pyx_v_total_nthreads == 0)) {
PyErr_SetString(PyExc_ZeroDivisionError, "float division");
__PYX_ERR(0, 2615, __pyx_L1_error)
}
__pyx_v_avg = (__pyx_v_total_occupancy / ((double)__pyx_v_total_nthreads));
2616:
+2617: idle = self._idle
__pyx_t_2 = __pyx_v_self->_idle;
__Pyx_INCREF(__pyx_t_2);
__pyx_v_idle = __pyx_t_2;
__pyx_t_2 = 0;
+2618: saturated: set = self._saturated
__pyx_t_2 = __pyx_v_self->_saturated;
__Pyx_INCREF(__pyx_t_2);
__pyx_v_saturated = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
+2619: if p < nc or occ < nc * avg / 2:
__pyx_t_10 = ((__pyx_v_p < __pyx_v_nc) != 0);
if (!__pyx_t_10) {
} else {
__pyx_t_9 = __pyx_t_10;
goto __pyx_L8_bool_binop_done;
}
__pyx_t_10 = ((__pyx_v_occ < ((__pyx_v_nc * __pyx_v_avg) / 2.0)) != 0);
__pyx_t_9 = __pyx_t_10;
__pyx_L8_bool_binop_done:;
if (__pyx_t_9) {
/* … */
goto __pyx_L7;
}
+2620: idle[ws._address] = ws
if (unlikely(PyObject_SetItem(__pyx_v_idle, __pyx_v_ws->_address, ((PyObject *)__pyx_v_ws)) < 0)) __PYX_ERR(0, 2620, __pyx_L1_error)
+2621: saturated.discard(ws)
if (unlikely(__pyx_v_saturated == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "discard");
__PYX_ERR(0, 2621, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PySet_Discard(__pyx_v_saturated, ((PyObject *)__pyx_v_ws)); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 2621, __pyx_L1_error)
2622: else:
+2623: idle.pop(ws._address, None)
/*else*/ {
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_idle, __pyx_n_s_pop); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2623, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_1 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
__pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
if (likely(__pyx_t_1)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_4, function);
__pyx_t_6 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_ws->_address, Py_None};
__pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2623, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_ws->_address, Py_None};
__pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2623, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#endif
{
__pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2623, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (__pyx_t_1) {
__Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __pyx_t_1 = NULL;
}
__Pyx_INCREF(__pyx_v_ws->_address);
__Pyx_GIVEREF(__pyx_v_ws->_address);
PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_ws->_address);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, Py_None);
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2623, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2624:
+2625: if p > nc:
__pyx_t_9 = ((__pyx_v_p > __pyx_v_nc) != 0);
if (__pyx_t_9) {
/* … */
}
+2626: pending: double = occ * (p - nc) / (p * nc)
__pyx_t_11 = (__pyx_v_occ * (__pyx_v_p - __pyx_v_nc));
__pyx_t_8 = (__pyx_v_p * __pyx_v_nc);
if (unlikely(__pyx_t_8 == 0)) {
PyErr_SetString(PyExc_ZeroDivisionError, "float division");
__PYX_ERR(0, 2626, __pyx_L1_error)
}
__pyx_v_pending = (__pyx_t_11 / ((double)__pyx_t_8));
+2627: if 0.4 < pending > 1.9 * avg:
__pyx_t_9 = (0.4 < __pyx_v_pending);
if (__pyx_t_9) {
__pyx_t_9 = (__pyx_v_pending > (1.9 * __pyx_v_avg));
}
__pyx_t_10 = (__pyx_t_9 != 0);
if (__pyx_t_10) {
/* … */
}
+2628: saturated.add(ws)
if (unlikely(__pyx_v_saturated == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 2628, __pyx_L1_error)
}
__pyx_t_12 = PySet_Add(__pyx_v_saturated, ((PyObject *)__pyx_v_ws)); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 2628, __pyx_L1_error)
+2629: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
2630:
+2631: saturated.discard(ws)
if (unlikely(__pyx_v_saturated == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "discard");
__PYX_ERR(0, 2631, __pyx_L1_error)
}
__pyx_t_12 = __Pyx_PySet_Discard(__pyx_v_saturated, ((PyObject *)__pyx_v_ws)); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 2631, __pyx_L1_error)
}
__pyx_L7:;
2632:
2633: @ccall
+2634: def get_comm_cost(self, ts: TaskState, ws: WorkerState) -> double:
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_39get_comm_cost(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_11distributed_9scheduler_14SchedulerState_get_comm_cost(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts, struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws, int __pyx_skip_dispatch) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_dts = 0;
PyObject *__pyx_v_deps = 0;
Py_ssize_t __pyx_v_nbytes;
double __pyx_v_bandwidth;
double __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_comm_cost", 0);
/* Check if called by wrapper */
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_comm_cost); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2634, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_11distributed_9scheduler_14SchedulerState_39get_comm_cost)) {
__Pyx_INCREF(__pyx_t_1);
__pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_4)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_ts), ((PyObject *)__pyx_v_ws)};
__pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2634, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_ts), ((PyObject *)__pyx_v_ws)};
__pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2634, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#endif
{
__pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2634, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (__pyx_t_4) {
__Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
}
__Pyx_INCREF(((PyObject *)__pyx_v_ts));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ts));
PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, ((PyObject *)__pyx_v_ts));
__Pyx_INCREF(((PyObject *)__pyx_v_ws));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ws));
PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, ((PyObject *)__pyx_v_ws));
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2634, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2634, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = __pyx_t_7;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
__pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.get_comm_cost", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_dts);
__Pyx_XDECREF(__pyx_v_deps);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_39get_comm_cost(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_14SchedulerState_38get_comm_cost[] = "\n Get the estimated communication cost (in s.) to compute the task\n on the given worker.\n ";
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_39get_comm_cost(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_comm_cost (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ts,&__pyx_n_s_ws,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ts)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ws)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("get_comm_cost", 1, 2, 2, 1); __PYX_ERR(0, 2634, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_comm_cost") < 0)) __PYX_ERR(0, 2634, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)values[0]);
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)values[1]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("get_comm_cost", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2634, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.get_comm_cost", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ts), __pyx_ptype_11distributed_9scheduler_TaskState, 1, "ts", 0))) __PYX_ERR(0, 2634, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ws), __pyx_ptype_11distributed_9scheduler_WorkerState, 1, "ws", 0))) __PYX_ERR(0, 2634, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_38get_comm_cost(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), __pyx_v_ts, __pyx_v_ws);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_38get_comm_cost(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts, struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_comm_cost", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __pyx_f_11distributed_9scheduler_14SchedulerState_get_comm_cost(__pyx_v_self, __pyx_v_ts, __pyx_v_ws, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2634, __pyx_L1_error)
__pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2634, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.get_comm_cost", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
2635: """
2636: Get the estimated communication cost (in s.) to compute the task
2637: on the given worker.
2638: """
2639: dts: TaskState
+2640: deps: set = ts._dependencies - ws._has_what
__pyx_t_1 = PyNumber_Subtract(__pyx_v_ts->_dependencies, __pyx_v_ws->_has_what); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(PySet_CheckExact(__pyx_t_1))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "set", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 2640, __pyx_L1_error) __pyx_v_deps = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+2641: nbytes: Py_ssize_t = 0
__pyx_v_nbytes = 0;
+2642: bandwidth: double = self._bandwidth
__pyx_t_7 = __pyx_v_self->_bandwidth; __pyx_v_bandwidth = __pyx_t_7;
+2643: for dts in deps:
__pyx_t_8 = 0; __pyx_t_2 = __Pyx_set_iterator(__pyx_v_deps, 1, (&__pyx_t_9), (&__pyx_t_5)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_2; __pyx_t_2 = 0; while (1) { __pyx_t_10 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_8, &__pyx_t_2, __pyx_t_5); if (unlikely(__pyx_t_10 == 0)) break; if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 2643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2643, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_2)); __pyx_t_2 = 0;
+2644: nbytes += dts._nbytes
__pyx_v_nbytes = (__pyx_v_nbytes + __pyx_v_dts->_nbytes);
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2645: return nbytes / bandwidth
if (unlikely(__pyx_v_bandwidth == 0)) {
PyErr_SetString(PyExc_ZeroDivisionError, "float division");
__PYX_ERR(0, 2645, __pyx_L1_error)
}
__pyx_r = (((double)__pyx_v_nbytes) / __pyx_v_bandwidth);
goto __pyx_L0;
2646:
2647: @ccall
+2648: def get_task_duration(self, ts: TaskState, default: double = -1) -> double:
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_41get_task_duration(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_11distributed_9scheduler_14SchedulerState_get_task_duration(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts, int __pyx_skip_dispatch, struct __pyx_opt_args_11distributed_9scheduler_14SchedulerState_get_task_duration *__pyx_optional_args) {
double __pyx_v_default = ((double)-1.0);
double __pyx_v_duration;
PyObject *__pyx_v_s = 0;
double __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_task_duration", 0);
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v_default = __pyx_optional_args->__pyx_default;
}
}
/* Check if called by wrapper */
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_task_duration); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2648, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_11distributed_9scheduler_14SchedulerState_41get_task_duration)) {
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_default); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2648, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_t_1);
__pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_4, function);
__pyx_t_6 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[3] = {__pyx_t_5, ((PyObject *)__pyx_v_ts), __pyx_t_3};
__pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2648, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[3] = {__pyx_t_5, ((PyObject *)__pyx_v_ts), __pyx_t_3};
__pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2648, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} else
#endif
{
__pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2648, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (__pyx_t_5) {
__Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
}
__Pyx_INCREF(((PyObject *)__pyx_v_ts));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ts));
PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, ((PyObject *)__pyx_v_ts));
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_3);
__pyx_t_3 = 0;
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2648, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2648, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = __pyx_t_8;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
__pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.get_task_duration", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_s);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_41get_task_duration(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_14SchedulerState_40get_task_duration[] = "\n Get the estimated computation cost of the given task\n (not including any communication cost).\n ";
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_41get_task_duration(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
double __pyx_v_default;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_task_duration (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ts,&__pyx_n_s_default,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ts)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_default);
if (value) { values[1] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_task_duration") < 0)) __PYX_ERR(0, 2648, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)values[0]);
if (values[1]) {
__pyx_v_default = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_default == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2648, __pyx_L3_error)
} else {
__pyx_v_default = ((double)-1.0);
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("get_task_duration", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2648, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.get_task_duration", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ts), __pyx_ptype_11distributed_9scheduler_TaskState, 1, "ts", 0))) __PYX_ERR(0, 2648, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_40get_task_duration(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), __pyx_v_ts, __pyx_v_default);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_40get_task_duration(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts, double __pyx_v_default) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_task_duration", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_2.__pyx_n = 1;
__pyx_t_2.__pyx_default = __pyx_v_default;
__pyx_t_1 = __pyx_vtabptr_11distributed_9scheduler_SchedulerState->get_task_duration(__pyx_v_self, __pyx_v_ts, 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2648, __pyx_L1_error)
__pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2648, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.get_task_duration", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
struct __pyx_opt_args_11distributed_9scheduler_14SchedulerState_get_task_duration {
int __pyx_n;
double __pyx_default;
};
2649: """
2650: Get the estimated computation cost of the given task
2651: (not including any communication cost).
2652: """
+2653: duration: double = ts._prefix._duration_average
__pyx_t_8 = __pyx_v_ts->_prefix->_duration_average; __pyx_v_duration = __pyx_t_8;
+2654: if duration < 0:
__pyx_t_9 = ((__pyx_v_duration < 0.0) != 0);
if (__pyx_t_9) {
/* … */
}
+2655: s: set = self._unknown_durations[ts._prefix._name]
__pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_self->_unknown_durations, __pyx_v_ts->_prefix->_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(PySet_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "set", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 2655, __pyx_L1_error) __pyx_v_s = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+2656: s.add(ts)
if (unlikely(__pyx_v_s == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 2656, __pyx_L1_error)
}
__pyx_t_10 = PySet_Add(__pyx_v_s, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 2656, __pyx_L1_error)
+2657: if default < 0:
__pyx_t_9 = ((__pyx_v_default < 0.0) != 0);
if (__pyx_t_9) {
/* … */
goto __pyx_L4;
}
+2658: duration = UNKNOWN_TASK_DURATION
__pyx_v_duration = __pyx_v_11distributed_9scheduler_UNKNOWN_TASK_DURATION;
2659: else:
+2660: duration = default
/*else*/ {
__pyx_v_duration = __pyx_v_default;
}
__pyx_L4:;
2661:
+2662: return duration
__pyx_r = __pyx_v_duration; goto __pyx_L0;
2663:
2664: @ccall
2665: @exceptval(check=False)
+2666: def valid_workers(self, ts: TaskState) -> set:
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_43valid_workers(PyObject *__pyx_v_self, PyObject *__pyx_v_ts); /*proto*/
static PyObject *__pyx_f_11distributed_9scheduler_14SchedulerState_valid_workers(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts, int __pyx_skip_dispatch) {
PyObject *__pyx_v_s = 0;
PyObject *__pyx_v_hr = 0;
PyObject *__pyx_v_sl = 0;
PyObject *__pyx_v_ss = 0;
PyObject *__pyx_v_dw = 0;
PyObject *__pyx_v_ww = 0;
PyObject *__pyx_9genexpr24__pyx_v_w = NULL;
PyObject *__pyx_9genexpr25__pyx_v_h = NULL;
PyObject *__pyx_9genexpr26__pyx_v_h = NULL;
PyObject *__pyx_9genexpr27__pyx_v_resource = NULL;
PyObject *__pyx_9genexpr27__pyx_v_required = NULL;
PyObject *__pyx_9genexpr28__pyx_v_w = NULL;
PyObject *__pyx_9genexpr28__pyx_v_supplied = NULL;
PyObject *__pyx_9genexpr29__pyx_v_w = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("valid_workers", 0);
/* Check if called by wrapper */
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_valid_workers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2666, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_11distributed_9scheduler_14SchedulerState_43valid_workers)) {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_t_1);
__pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_4)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_ts)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_ts));
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2666, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (!(likely(PySet_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "set", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(0, 2666, __pyx_L1_error)
__pyx_r = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
__pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.valid_workers", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_s);
__Pyx_XDECREF(__pyx_v_hr);
__Pyx_XDECREF(__pyx_v_sl);
__Pyx_XDECREF(__pyx_v_ss);
__Pyx_XDECREF(__pyx_v_dw);
__Pyx_XDECREF(__pyx_v_ww);
__Pyx_XDECREF(__pyx_9genexpr24__pyx_v_w);
__Pyx_XDECREF(__pyx_9genexpr25__pyx_v_h);
__Pyx_XDECREF(__pyx_9genexpr26__pyx_v_h);
__Pyx_XDECREF(__pyx_9genexpr27__pyx_v_resource);
__Pyx_XDECREF(__pyx_9genexpr27__pyx_v_required);
__Pyx_XDECREF(__pyx_9genexpr28__pyx_v_w);
__Pyx_XDECREF(__pyx_9genexpr28__pyx_v_supplied);
__Pyx_XDECREF(__pyx_9genexpr29__pyx_v_w);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_43valid_workers(PyObject *__pyx_v_self, PyObject *__pyx_v_ts); /*proto*/
static char __pyx_doc_11distributed_9scheduler_14SchedulerState_42valid_workers[] = "Return set of currently valid workers for key\n\n If all workers are valid then this returns ``None``.\n This checks tracks the following state:\n\n * worker_restrictions\n * host_restrictions\n * resource_restrictions\n ";
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_43valid_workers(PyObject *__pyx_v_self, PyObject *__pyx_v_ts) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("valid_workers (wrapper)", 0);
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ts), __pyx_ptype_11distributed_9scheduler_TaskState, 1, "ts", 0))) __PYX_ERR(0, 2666, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_42valid_workers(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_ts));
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_42valid_workers(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("valid_workers", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __pyx_f_11distributed_9scheduler_14SchedulerState_valid_workers(__pyx_v_self, __pyx_v_ts, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2666, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.valid_workers", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
2667: """Return set of currently valid workers for key
2668:
2669: If all workers are valid then this returns ``None``.
2670: This checks tracks the following state:
2671:
2672: * worker_restrictions
2673: * host_restrictions
2674: * resource_restrictions
2675: """
+2676: s: set = None
__Pyx_INCREF(Py_None);
__pyx_v_s = ((PyObject*)Py_None);
2677:
+2678: if ts._worker_restrictions:
__pyx_t_5 = (__pyx_v_ts->_worker_restrictions != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_worker_restrictions) != 0);
if (__pyx_t_5) {
/* … */
}
+2679: s = {w for w in ts._worker_restrictions if w in self._workers_dv}
{ /* enter inner scope */
__pyx_t_1 = PySet_New(NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2679, __pyx_L6_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = 0;
__pyx_t_3 = __Pyx_set_iterator(__pyx_v_ts->_worker_restrictions, 1, (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2679, __pyx_L6_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_2);
__pyx_t_2 = __pyx_t_3;
__pyx_t_3 = 0;
while (1) {
__pyx_t_9 = __Pyx_set_iter_next(__pyx_t_2, __pyx_t_7, &__pyx_t_6, &__pyx_t_3, __pyx_t_8);
if (unlikely(__pyx_t_9 == 0)) break;
if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 2679, __pyx_L6_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_9genexpr24__pyx_v_w, __pyx_t_3);
__pyx_t_3 = 0;
if (unlikely(__pyx_v_self->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2679, __pyx_L6_error)
}
__pyx_t_5 = (__Pyx_PyDict_ContainsTF(__pyx_9genexpr24__pyx_v_w, __pyx_v_self->_workers_dv, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2679, __pyx_L6_error)
__pyx_t_10 = (__pyx_t_5 != 0);
if (__pyx_t_10) {
if (unlikely(PySet_Add(__pyx_t_1, (PyObject*)__pyx_9genexpr24__pyx_v_w))) __PYX_ERR(0, 2679, __pyx_L6_error)
}
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_9genexpr24__pyx_v_w); __pyx_9genexpr24__pyx_v_w = 0;
goto __pyx_L10_exit_scope;
__pyx_L6_error:;
__Pyx_XDECREF(__pyx_9genexpr24__pyx_v_w); __pyx_9genexpr24__pyx_v_w = 0;
goto __pyx_L1_error;
__pyx_L10_exit_scope:;
} /* exit inner scope */
__Pyx_DECREF_SET(__pyx_v_s, ((PyObject*)__pyx_t_1));
__pyx_t_1 = 0;
2680:
+2681: if ts._host_restrictions:
__pyx_t_10 = (__pyx_v_ts->_host_restrictions != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_host_restrictions) != 0);
if (__pyx_t_10) {
/* … */
}
2682: # Resolve the alias here rather than early, for the worker
2683: # may not be connected when host_restrictions is populated
+2684: hr: list = [self.coerce_hostname(h) for h in ts._host_restrictions]
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2684, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = 0;
__pyx_t_3 = __Pyx_set_iterator(__pyx_v_ts->_host_restrictions, 1, (&__pyx_t_6), (&__pyx_t_8)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2684, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_2);
__pyx_t_2 = __pyx_t_3;
__pyx_t_3 = 0;
while (1) {
__pyx_t_9 = __Pyx_set_iter_next(__pyx_t_2, __pyx_t_6, &__pyx_t_7, &__pyx_t_3, __pyx_t_8);
if (unlikely(__pyx_t_9 == 0)) break;
if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 2684, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_9genexpr25__pyx_v_h, __pyx_t_3);
__pyx_t_3 = 0;
__pyx_t_3 = ((struct __pyx_vtabstruct_11distributed_9scheduler_SchedulerState *)__pyx_v_self->__pyx_vtab)->coerce_hostname(__pyx_v_self, __pyx_9genexpr25__pyx_v_h, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2684, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 2684, __pyx_L14_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_9genexpr25__pyx_v_h); __pyx_9genexpr25__pyx_v_h = 0;
goto __pyx_L17_exit_scope;
__pyx_L14_error:;
__Pyx_XDECREF(__pyx_9genexpr25__pyx_v_h); __pyx_9genexpr25__pyx_v_h = 0;
goto __pyx_L1_error;
__pyx_L17_exit_scope:;
} /* exit inner scope */
__pyx_v_hr = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
2685: # XXX need HostState?
+2686: sl: list = [
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2686, __pyx_L20_error)
__Pyx_GOTREF(__pyx_t_1);
+2687: self._host_info[h]["addresses"] for h in hr if h in self._host_info
__pyx_t_2 = __pyx_v_hr; __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = 0; for (;;) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2687, __pyx_L20_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2687, __pyx_L20_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_9genexpr26__pyx_v_h, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_10 = (__Pyx_PySequence_ContainsTF(__pyx_9genexpr26__pyx_v_h, __pyx_v_self->_host_info, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 2687, __pyx_L20_error) __pyx_t_5 = (__pyx_t_10 != 0); if (__pyx_t_5) { __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->_host_info, __pyx_9genexpr26__pyx_v_h); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2687, __pyx_L20_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_addresses); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2687, __pyx_L20_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 2686, __pyx_L20_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_9genexpr26__pyx_v_h); __pyx_9genexpr26__pyx_v_h = 0; goto __pyx_L24_exit_scope; __pyx_L20_error:; __Pyx_XDECREF(__pyx_9genexpr26__pyx_v_h); __pyx_9genexpr26__pyx_v_h = 0; goto __pyx_L1_error; __pyx_L24_exit_scope:; } /* exit inner scope */ __pyx_v_sl = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
2688: ]
+2689: ss: set = set.union(*sl) if sl else set()
__pyx_t_5 = (PyList_GET_SIZE(__pyx_v_sl) != 0); if (__pyx_t_5) { __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)(&PySet_Type)), __pyx_n_s_union); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PySequence_Tuple(__pyx_v_sl); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(PySet_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "set", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 2689, __pyx_L1_error) __pyx_t_1 = __pyx_t_3; __pyx_t_3 = 0; } else { __pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __pyx_t_3; __pyx_t_3 = 0; } __pyx_v_ss = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+2690: if s is None:
__pyx_t_5 = (__pyx_v_s == ((PyObject*)Py_None));
__pyx_t_10 = (__pyx_t_5 != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L25;
}
+2691: s = ss
__Pyx_INCREF(__pyx_v_ss); __Pyx_DECREF_SET(__pyx_v_s, __pyx_v_ss);
2692: else:
+2693: s |= ss
/*else*/ {
__pyx_t_1 = PyNumber_InPlaceOr(__pyx_v_s, __pyx_v_ss); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2693, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF_SET(__pyx_v_s, ((PyObject*)__pyx_t_1));
__pyx_t_1 = 0;
}
__pyx_L25:;
2694:
+2695: if ts._resource_restrictions:
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_ts->_resource_restrictions); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 2695, __pyx_L1_error) if (__pyx_t_10) { /* … */ }
+2696: dw: dict = {
{ /* enter inner scope */
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2696, __pyx_L29_error)
__Pyx_GOTREF(__pyx_t_1);
+2697: resource: {
{ /* enter inner scope */
__pyx_t_2 = PySet_New(NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2697, __pyx_L34_error)
__Pyx_GOTREF(__pyx_t_2);
+2698: w
if (unlikely(PySet_Add(__pyx_t_2, (PyObject*)__pyx_9genexpr28__pyx_v_w))) __PYX_ERR(0, 2698, __pyx_L34_error)
+2699: for w, supplied in self._resources[resource].items()
__pyx_t_11 = 0;
__pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_v_self->_resources, __pyx_9genexpr27__pyx_v_resource); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2699, __pyx_L34_error)
__Pyx_GOTREF(__pyx_t_13);
if (unlikely(__pyx_t_13 == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 2699, __pyx_L34_error)
}
__pyx_t_14 = __Pyx_dict_iterator(__pyx_t_13, 0, __pyx_n_s_items, (&__pyx_t_12), (&__pyx_t_9)); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2699, __pyx_L34_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_14;
__pyx_t_14 = 0;
while (1) {
__pyx_t_15 = __Pyx_dict_iter_next(__pyx_t_4, __pyx_t_12, &__pyx_t_11, &__pyx_t_14, &__pyx_t_13, NULL, __pyx_t_9);
if (unlikely(__pyx_t_15 == 0)) break;
if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 2699, __pyx_L34_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_GOTREF(__pyx_t_13);
__Pyx_XDECREF_SET(__pyx_9genexpr28__pyx_v_w, __pyx_t_14);
__pyx_t_14 = 0;
__Pyx_XDECREF_SET(__pyx_9genexpr28__pyx_v_supplied, __pyx_t_13);
__pyx_t_13 = 0;
+2700: if supplied >= required
__pyx_t_13 = PyObject_RichCompare(__pyx_9genexpr28__pyx_v_supplied, __pyx_9genexpr27__pyx_v_required, Py_GE); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2700, __pyx_L34_error) __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 2700, __pyx_L34_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (__pyx_t_10) { /* … */ } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_9genexpr28__pyx_v_supplied); __pyx_9genexpr28__pyx_v_supplied = 0; __Pyx_XDECREF(__pyx_9genexpr28__pyx_v_w); __pyx_9genexpr28__pyx_v_w = 0; goto __pyx_L38_exit_scope; __pyx_L34_error:; __Pyx_XDECREF(__pyx_9genexpr28__pyx_v_supplied); __pyx_9genexpr28__pyx_v_supplied = 0; __Pyx_XDECREF(__pyx_9genexpr28__pyx_v_w); __pyx_9genexpr28__pyx_v_w = 0; goto __pyx_L29_error; __pyx_L38_exit_scope:; } /* exit inner scope */ if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_9genexpr27__pyx_v_resource, (PyObject*)__pyx_t_2))) __PYX_ERR(0, 2697, __pyx_L29_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_9genexpr27__pyx_v_required); __pyx_9genexpr27__pyx_v_required = 0; __Pyx_XDECREF(__pyx_9genexpr27__pyx_v_resource); __pyx_9genexpr27__pyx_v_resource = 0; goto __pyx_L39_exit_scope; __pyx_L29_error:; __Pyx_XDECREF(__pyx_9genexpr27__pyx_v_required); __pyx_9genexpr27__pyx_v_required = 0; __Pyx_XDECREF(__pyx_9genexpr27__pyx_v_resource); __pyx_9genexpr27__pyx_v_resource = 0; goto __pyx_L1_error; __pyx_L39_exit_scope:; } /* exit inner scope */ __pyx_v_dw = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
2701: }
+2702: for resource, required in ts._resource_restrictions.items()
__pyx_t_6 = 0;
if (unlikely(__pyx_v_ts->_resource_restrictions == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 2702, __pyx_L29_error)
}
__pyx_t_4 = __Pyx_dict_iterator(__pyx_v_ts->_resource_restrictions, 1, __pyx_n_s_items, (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2702, __pyx_L29_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_3);
__pyx_t_3 = __pyx_t_4;
__pyx_t_4 = 0;
while (1) {
__pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_3, __pyx_t_7, &__pyx_t_6, &__pyx_t_4, &__pyx_t_2, NULL, __pyx_t_8);
if (unlikely(__pyx_t_9 == 0)) break;
if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 2702, __pyx_L29_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GOTREF(__pyx_t_2);
__Pyx_XDECREF_SET(__pyx_9genexpr27__pyx_v_resource, __pyx_t_4);
__pyx_t_4 = 0;
__Pyx_XDECREF_SET(__pyx_9genexpr27__pyx_v_required, __pyx_t_2);
__pyx_t_2 = 0;
2703: }
2704:
+2705: ww: set = set.intersection(*dw.values())
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)(&PySet_Type)), __pyx_n_s_intersection); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyDict_Values(__pyx_v_dw); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(PySet_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "set", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 2705, __pyx_L1_error) __pyx_v_ww = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+2706: if s is None:
__pyx_t_10 = (__pyx_v_s == ((PyObject*)Py_None));
__pyx_t_5 = (__pyx_t_10 != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L40;
}
+2707: s = ww
__Pyx_INCREF(__pyx_v_ww); __Pyx_DECREF_SET(__pyx_v_s, __pyx_v_ww);
2708: else:
+2709: s &= ww
/*else*/ {
__pyx_t_3 = PyNumber_InPlaceAnd(__pyx_v_s, __pyx_v_ww); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2709, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF_SET(__pyx_v_s, ((PyObject*)__pyx_t_3));
__pyx_t_3 = 0;
}
__pyx_L40:;
2710:
+2711: if s is not None:
__pyx_t_5 = (__pyx_v_s != ((PyObject*)Py_None));
__pyx_t_10 = (__pyx_t_5 != 0);
if (__pyx_t_10) {
/* … */
}
+2712: s = {self._workers_dv[w] for w in s}
{ /* enter inner scope */
__pyx_t_3 = PySet_New(NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2712, __pyx_L44_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_7 = 0;
__pyx_t_1 = __Pyx_set_iterator(__pyx_v_s, 1, (&__pyx_t_6), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2712, __pyx_L44_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__pyx_t_2 = __pyx_t_1;
__pyx_t_1 = 0;
while (1) {
__pyx_t_9 = __Pyx_set_iter_next(__pyx_t_2, __pyx_t_6, &__pyx_t_7, &__pyx_t_1, __pyx_t_8);
if (unlikely(__pyx_t_9 == 0)) break;
if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 2712, __pyx_L44_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_9genexpr29__pyx_v_w, __pyx_t_1);
__pyx_t_1 = 0;
if (unlikely(__pyx_v_self->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2712, __pyx_L44_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->_workers_dv, __pyx_9genexpr29__pyx_v_w); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2712, __pyx_L44_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(PySet_Add(__pyx_t_3, (PyObject*)__pyx_t_1))) __PYX_ERR(0, 2712, __pyx_L44_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_9genexpr29__pyx_v_w); __pyx_9genexpr29__pyx_v_w = 0;
goto __pyx_L47_exit_scope;
__pyx_L44_error:;
__Pyx_XDECREF(__pyx_9genexpr29__pyx_v_w); __pyx_9genexpr29__pyx_v_w = 0;
goto __pyx_L1_error;
__pyx_L47_exit_scope:;
} /* exit inner scope */
__Pyx_DECREF_SET(__pyx_v_s, ((PyObject*)__pyx_t_3));
__pyx_t_3 = 0;
2713:
+2714: return s
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_s); __pyx_r = __pyx_v_s; goto __pyx_L0;
2715:
2716: @ccall
+2717: def consume_resources(self, ts: TaskState, ws: WorkerState):
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_45consume_resources(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_11distributed_9scheduler_14SchedulerState_consume_resources(CYTHON_UNUSED struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts, struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws, int __pyx_skip_dispatch) {
PyObject *__pyx_v_r = NULL;
PyObject *__pyx_v_required = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("consume_resources", 0);
/* Check if called by wrapper */
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_consume_resources); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2717, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_11distributed_9scheduler_14SchedulerState_45consume_resources)) {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_t_1);
__pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_4)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_ts), ((PyObject *)__pyx_v_ws)};
__pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2717, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_ts), ((PyObject *)__pyx_v_ws)};
__pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2717, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#endif
{
__pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2717, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (__pyx_t_4) {
__Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
}
__Pyx_INCREF(((PyObject *)__pyx_v_ts));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ts));
PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, ((PyObject *)__pyx_v_ts));
__Pyx_INCREF(((PyObject *)__pyx_v_ws));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ws));
PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, ((PyObject *)__pyx_v_ws));
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2717, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
__pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.consume_resources", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_r);
__Pyx_XDECREF(__pyx_v_required);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_45consume_resources(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_45consume_resources(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("consume_resources (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ts,&__pyx_n_s_ws,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ts)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ws)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("consume_resources", 1, 2, 2, 1); __PYX_ERR(0, 2717, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "consume_resources") < 0)) __PYX_ERR(0, 2717, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)values[0]);
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)values[1]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("consume_resources", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2717, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.consume_resources", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ts), __pyx_ptype_11distributed_9scheduler_TaskState, 1, "ts", 0))) __PYX_ERR(0, 2717, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ws), __pyx_ptype_11distributed_9scheduler_WorkerState, 1, "ws", 0))) __PYX_ERR(0, 2717, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_44consume_resources(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), __pyx_v_ts, __pyx_v_ws);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_44consume_resources(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts, struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("consume_resources", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __pyx_f_11distributed_9scheduler_14SchedulerState_consume_resources(__pyx_v_self, __pyx_v_ts, __pyx_v_ws, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2717, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.consume_resources", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+2718: if ts._resource_restrictions:
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_ts->_resource_restrictions); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2718, __pyx_L1_error) if (__pyx_t_7) { /* … */ }
+2719: for r, required in ts._resource_restrictions.items():
__pyx_t_8 = 0;
if (unlikely(__pyx_v_ts->_resource_restrictions == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 2719, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_dict_iterator(__pyx_v_ts->_resource_restrictions, 1, __pyx_n_s_items, (&__pyx_t_9), (&__pyx_t_5)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2719, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_2;
__pyx_t_2 = 0;
while (1) {
__pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_8, &__pyx_t_2, &__pyx_t_3, NULL, __pyx_t_5);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 2719, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_r, __pyx_t_2);
__pyx_t_2 = 0;
__Pyx_XDECREF_SET(__pyx_v_required, __pyx_t_3);
__pyx_t_3 = 0;
+2720: ws._used_resources[r] += required
if (unlikely(__pyx_v_ws->_used_resources == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2720, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_ws->_used_resources);
__pyx_t_11 = __pyx_v_ws->_used_resources;
__Pyx_INCREF(__pyx_v_r);
__pyx_t_3 = __pyx_v_r;
if (unlikely(__pyx_t_11 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2720, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_t_11, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2720, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_6 = PyNumber_InPlaceAdd(__pyx_t_2, __pyx_v_required); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2720, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(__pyx_t_11 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2720, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_11, __pyx_t_3, __pyx_t_6) < 0)) __PYX_ERR(0, 2720, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2721:
2722: @ccall
+2723: def release_resources(self, ts: TaskState, ws: WorkerState):
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_47release_resources(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_11distributed_9scheduler_14SchedulerState_release_resources(CYTHON_UNUSED struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts, struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws, int __pyx_skip_dispatch) {
PyObject *__pyx_v_r = NULL;
PyObject *__pyx_v_required = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("release_resources", 0);
/* Check if called by wrapper */
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_release_resources); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2723, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_11distributed_9scheduler_14SchedulerState_47release_resources)) {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_t_1);
__pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_4)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_ts), ((PyObject *)__pyx_v_ws)};
__pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2723, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_ts), ((PyObject *)__pyx_v_ws)};
__pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2723, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#endif
{
__pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2723, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (__pyx_t_4) {
__Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
}
__Pyx_INCREF(((PyObject *)__pyx_v_ts));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ts));
PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, ((PyObject *)__pyx_v_ts));
__Pyx_INCREF(((PyObject *)__pyx_v_ws));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ws));
PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, ((PyObject *)__pyx_v_ws));
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2723, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
__pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.release_resources", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_r);
__Pyx_XDECREF(__pyx_v_required);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_47release_resources(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_47release_resources(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("release_resources (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ts,&__pyx_n_s_ws,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ts)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ws)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("release_resources", 1, 2, 2, 1); __PYX_ERR(0, 2723, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "release_resources") < 0)) __PYX_ERR(0, 2723, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)values[0]);
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)values[1]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("release_resources", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2723, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.release_resources", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ts), __pyx_ptype_11distributed_9scheduler_TaskState, 1, "ts", 0))) __PYX_ERR(0, 2723, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ws), __pyx_ptype_11distributed_9scheduler_WorkerState, 1, "ws", 0))) __PYX_ERR(0, 2723, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_46release_resources(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), __pyx_v_ts, __pyx_v_ws);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_46release_resources(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts, struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("release_resources", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __pyx_f_11distributed_9scheduler_14SchedulerState_release_resources(__pyx_v_self, __pyx_v_ts, __pyx_v_ws, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2723, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.release_resources", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+2724: if ts._resource_restrictions:
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_ts->_resource_restrictions); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 2724, __pyx_L1_error) if (__pyx_t_7) { /* … */ }
+2725: for r, required in ts._resource_restrictions.items():
__pyx_t_8 = 0;
if (unlikely(__pyx_v_ts->_resource_restrictions == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 2725, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_dict_iterator(__pyx_v_ts->_resource_restrictions, 1, __pyx_n_s_items, (&__pyx_t_9), (&__pyx_t_5)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2725, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_2;
__pyx_t_2 = 0;
while (1) {
__pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_8, &__pyx_t_2, &__pyx_t_3, NULL, __pyx_t_5);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 2725, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_r, __pyx_t_2);
__pyx_t_2 = 0;
__Pyx_XDECREF_SET(__pyx_v_required, __pyx_t_3);
__pyx_t_3 = 0;
+2726: ws._used_resources[r] -= required
if (unlikely(__pyx_v_ws->_used_resources == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2726, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_ws->_used_resources);
__pyx_t_11 = __pyx_v_ws->_used_resources;
__Pyx_INCREF(__pyx_v_r);
__pyx_t_3 = __pyx_v_r;
if (unlikely(__pyx_t_11 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2726, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_t_11, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2726, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_6 = PyNumber_InPlaceSubtract(__pyx_t_2, __pyx_v_required); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2726, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(__pyx_t_11 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2726, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_t_11, __pyx_t_3, __pyx_t_6) < 0)) __PYX_ERR(0, 2726, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2727:
2728: @ccall
+2729: def coerce_hostname(self, host):
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_49coerce_hostname(PyObject *__pyx_v_self, PyObject *__pyx_v_host); /*proto*/
static PyObject *__pyx_f_11distributed_9scheduler_14SchedulerState_coerce_hostname(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, PyObject *__pyx_v_host, int __pyx_skip_dispatch) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("coerce_hostname", 0);
/* Check if called by wrapper */
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_coerce_hostname); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2729, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_11distributed_9scheduler_14SchedulerState_49coerce_hostname)) {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_t_1);
__pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_4)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_host) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_host);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2729, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
__pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.coerce_hostname", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_49coerce_hostname(PyObject *__pyx_v_self, PyObject *__pyx_v_host); /*proto*/
static char __pyx_doc_11distributed_9scheduler_14SchedulerState_48coerce_hostname[] = "\n Coerce the hostname of a worker.\n ";
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_49coerce_hostname(PyObject *__pyx_v_self, PyObject *__pyx_v_host) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("coerce_hostname (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_48coerce_hostname(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), ((PyObject *)__pyx_v_host));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_48coerce_hostname(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, PyObject *__pyx_v_host) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("coerce_hostname", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __pyx_f_11distributed_9scheduler_14SchedulerState_coerce_hostname(__pyx_v_self, __pyx_v_host, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2729, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.coerce_hostname", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
2730: """
2731: Coerce the hostname of a worker.
2732: """
+2733: if host in self._aliases:
if (unlikely(__pyx_v_self->_aliases == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2733, __pyx_L1_error)
}
__pyx_t_5 = (__Pyx_PyDict_ContainsTF(__pyx_v_host, __pyx_v_self->_aliases, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2733, __pyx_L1_error)
__pyx_t_6 = (__pyx_t_5 != 0);
if (__pyx_t_6) {
/* … */
}
+2734: return self._workers_dv[self._aliases[host]].host
__Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_self->_workers_dv == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2734, __pyx_L1_error) } if (unlikely(__pyx_v_self->_aliases == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 2734, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_self->_aliases, __pyx_v_host); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_self->_workers_dv, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_host); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
2735: else:
+2736: return host
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_v_host);
__pyx_r = __pyx_v_host;
goto __pyx_L0;
}
2737:
2738: @ccall
2739: @exceptval(check=False)
+2740: def worker_objective(self, ts: TaskState, ws: WorkerState) -> tuple:
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_51worker_objective(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_11distributed_9scheduler_14SchedulerState_worker_objective(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts, struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws, int __pyx_skip_dispatch) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_dts = 0;
Py_ssize_t __pyx_v_nbytes;
Py_ssize_t __pyx_v_comm_bytes;
double __pyx_v_bandwidth;
double __pyx_v_stack_time;
double __pyx_v_start_time;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("worker_objective", 0);
/* Check if called by wrapper */
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_worker_objective); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2740, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_11distributed_9scheduler_14SchedulerState_51worker_objective)) {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_t_1);
__pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_4)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_ts), ((PyObject *)__pyx_v_ws)};
__pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2740, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_ts), ((PyObject *)__pyx_v_ws)};
__pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2740, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#endif
{
__pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2740, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (__pyx_t_4) {
__Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
}
__Pyx_INCREF(((PyObject *)__pyx_v_ts));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ts));
PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, ((PyObject *)__pyx_v_ts));
__Pyx_INCREF(((PyObject *)__pyx_v_ws));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ws));
PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, ((PyObject *)__pyx_v_ws));
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2740, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(0, 2740, __pyx_L1_error)
__pyx_r = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
__pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.worker_objective", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_dts);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_51worker_objective(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_14SchedulerState_50worker_objective[] = "\n Objective function to determine which worker should get the task\n\n Minimize expected start time. If a tie then break with data storage.\n ";
static PyObject *__pyx_pw_11distributed_9scheduler_14SchedulerState_51worker_objective(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("worker_objective (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ts,&__pyx_n_s_ws,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ts)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ws)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("worker_objective", 1, 2, 2, 1); __PYX_ERR(0, 2740, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "worker_objective") < 0)) __PYX_ERR(0, 2740, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)values[0]);
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)values[1]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("worker_objective", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2740, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.worker_objective", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ts), __pyx_ptype_11distributed_9scheduler_TaskState, 1, "ts", 0))) __PYX_ERR(0, 2740, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ws), __pyx_ptype_11distributed_9scheduler_WorkerState, 1, "ws", 0))) __PYX_ERR(0, 2740, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_14SchedulerState_50worker_objective(((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_v_self), __pyx_v_ts, __pyx_v_ws);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_14SchedulerState_50worker_objective(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_self, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts, struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("worker_objective", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __pyx_f_11distributed_9scheduler_14SchedulerState_worker_objective(__pyx_v_self, __pyx_v_ts, __pyx_v_ws, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2740, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.SchedulerState.worker_objective", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
2741: """
2742: Objective function to determine which worker should get the task
2743:
2744: Minimize expected start time. If a tie then break with data storage.
2745: """
2746: dts: TaskState
2747: nbytes: Py_ssize_t
+2748: comm_bytes: Py_ssize_t = 0
__pyx_v_comm_bytes = 0;
+2749: for dts in ts._dependencies:
__pyx_t_7 = 0; __pyx_t_2 = __Pyx_set_iterator(__pyx_v_ts->_dependencies, 1, (&__pyx_t_8), (&__pyx_t_5)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_2; __pyx_t_2 = 0; while (1) { __pyx_t_9 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_8, &__pyx_t_7, &__pyx_t_2, __pyx_t_5); if (unlikely(__pyx_t_9 == 0)) break; if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 2749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 2749, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_2)); __pyx_t_2 = 0;
+2750: if ws not in dts._who_has:
if (unlikely(__pyx_v_dts->_who_has == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 2750, __pyx_L1_error)
}
__pyx_t_10 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ws), __pyx_v_dts->_who_has, Py_NE)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 2750, __pyx_L1_error)
__pyx_t_11 = (__pyx_t_10 != 0);
if (__pyx_t_11) {
/* … */
}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2751: nbytes = dts.get_nbytes()
__pyx_t_12 = __pyx_f_11distributed_9scheduler_9TaskState_get_nbytes(__pyx_v_dts, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2751, __pyx_L1_error)
__pyx_v_nbytes = __pyx_t_12;
+2752: comm_bytes += nbytes
__pyx_v_comm_bytes = (__pyx_v_comm_bytes + __pyx_v_nbytes);
2753:
+2754: bandwidth: double = self._bandwidth
__pyx_t_13 = __pyx_v_self->_bandwidth; __pyx_v_bandwidth = __pyx_t_13;
+2755: stack_time: double = ws._occupancy / ws._nthreads
if (unlikely(__pyx_v_ws->_nthreads == 0)) {
PyErr_SetString(PyExc_ZeroDivisionError, "float division");
__PYX_ERR(0, 2755, __pyx_L1_error)
}
__pyx_v_stack_time = (__pyx_v_ws->_occupancy / ((double)__pyx_v_ws->_nthreads));
+2756: start_time: double = stack_time + comm_bytes / bandwidth
if (unlikely(__pyx_v_bandwidth == 0)) {
PyErr_SetString(PyExc_ZeroDivisionError, "float division");
__PYX_ERR(0, 2756, __pyx_L1_error)
}
__pyx_v_start_time = (__pyx_v_stack_time + (((double)__pyx_v_comm_bytes) / __pyx_v_bandwidth));
2757:
+2758: if ts._actor:
__pyx_t_11 = (__pyx_v_ts->_actor != 0);
if (__pyx_t_11) {
/* … */
}
+2759: return (len(ws._actors), start_time, ws._nbytes)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_v_ws->_actors; __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 2759, __pyx_L1_error) } __pyx_t_8 = PySet_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2759, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_start_time); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_ws->_nbytes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_r = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L0;
2760: else:
+2761: return (start_time, ws._nbytes)
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__pyx_t_6 = PyFloat_FromDouble(__pyx_v_start_time); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2761, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_ws->_nbytes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2761, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2761, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
__pyx_t_6 = 0;
__pyx_t_3 = 0;
__pyx_r = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
goto __pyx_L0;
}
2762:
2763:
+2764: class Scheduler(SchedulerState, ServerNode):
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_ServerNode); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_16 = PyTuple_New(2); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_INCREF(((PyObject *)__pyx_ptype_11distributed_9scheduler_SchedulerState)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_11distributed_9scheduler_SchedulerState)); PyTuple_SET_ITEM(__pyx_t_16, 0, ((PyObject *)__pyx_ptype_11distributed_9scheduler_SchedulerState)); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = __Pyx_CalculateMetaclass(NULL, __pyx_t_16); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_14 = __Pyx_Py3MetaclassPrepare(__pyx_t_15, __pyx_t_16, __pyx_n_s_Scheduler, __pyx_n_s_Scheduler, (PyObject *) NULL, __pyx_n_s_distributed_scheduler, __pyx_kp_s_Dynamic_distributed_task_schedul); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); /* … */ __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_15, __pyx_n_s_Scheduler, __pyx_t_16, __pyx_t_14, NULL, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__Pyx_CyFunction_InitClassCell(__pyx_t_13, __pyx_t_9) < 0) __PYX_ERR(0, 2764, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_Scheduler, __pyx_t_9) < 0) __PYX_ERR(0, 2764, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
2765: """Dynamic distributed task scheduler
2766:
2767: The scheduler tracks the current state of workers, data, and computations.
2768: The scheduler listens for events and responds by controlling workers
2769: appropriately. It continuously tries to use the workers to execute an ever
2770: growing dask graph.
2771:
2772: All events are handled quickly, in linear time with respect to their input
2773: (which is often of constant size) and generally within a millisecond. To
2774: accomplish this the scheduler tracks a lot of state. Every operation
2775: maintains the consistency of this state.
2776:
2777: The scheduler communicates with the outside world through Comm objects.
2778: It maintains a consistent and valid view of the world even when listening
2779: to several clients at once.
2780:
2781: A Scheduler is typically started either with the ``dask-scheduler``
2782: executable::
2783:
2784: $ dask-scheduler
2785: Scheduler started at 127.0.0.1:8786
2786:
2787: Or within a LocalCluster a Client starts up without connection
2788: information::
2789:
2790: >>> c = Client() # doctest: +SKIP
2791: >>> c.cluster.scheduler # doctest: +SKIP
2792: Scheduler(...)
2793:
2794: Users typically do not interact with the scheduler directly but rather with
2795: the client object ``Client``.
2796:
2797: **State**
2798:
2799: The scheduler contains the following state variables. Each variable is
2800: listed along with what it stores and a brief description.
2801:
2802: * **tasks:** ``{task key: TaskState}``
2803: Tasks currently known to the scheduler
2804: * **unrunnable:** ``{TaskState}``
2805: Tasks in the "no-worker" state
2806:
2807: * **workers:** ``{worker key: WorkerState}``
2808: Workers currently connected to the scheduler
2809: * **idle:** ``{WorkerState}``:
2810: Set of workers that are not fully utilized
2811: * **saturated:** ``{WorkerState}``:
2812: Set of workers that are not over-utilized
2813:
2814: * **host_info:** ``{hostname: dict}``:
2815: Information about each worker host
2816:
2817: * **clients:** ``{client key: ClientState}``
2818: Clients currently connected to the scheduler
2819:
2820: * **services:** ``{str: port}``:
2821: Other services running on this scheduler, like Bokeh
2822: * **loop:** ``IOLoop``:
2823: The running Tornado IOLoop
2824: * **client_comms:** ``{client key: Comm}``
2825: For each client, a Comm object used to receive task requests and
2826: report task status updates.
2827: * **stream_comms:** ``{worker key: Comm}``
2828: For each worker, a Comm object from which we both accept stimuli and
2829: report results
2830: * **task_duration:** ``{key-prefix: time}``
2831: Time we expect certain functions to take, e.g. ``{'sum': 0.25}``
2832: """
2833:
+2834: default_port = 8786
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_default_port, __pyx_int_8786) < 0) __PYX_ERR(0, 2834, __pyx_L1_error)
+2835: _instances = weakref.WeakSet()
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_weakref); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_WeakSet); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_12 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_instances, __pyx_t_12) < 0) __PYX_ERR(0, 2835, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
2836:
+2837: def __init__(
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_1__init__ = {"__init__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_1__init__, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_loop = 0;
PyObject *__pyx_v_delete_interval = 0;
PyObject *__pyx_v_synchronize_worker_interval = 0;
PyObject *__pyx_v_services = 0;
PyObject *__pyx_v_service_kwargs = 0;
PyObject *__pyx_v_allowed_failures = 0;
PyObject *__pyx_v_extensions = 0;
PyObject *__pyx_v_validate = 0;
PyObject *__pyx_v_scheduler_file = 0;
PyObject *__pyx_v_security = 0;
PyObject *__pyx_v_worker_ttl = 0;
PyObject *__pyx_v_idle_timeout = 0;
PyObject *__pyx_v_interface = 0;
PyObject *__pyx_v_host = 0;
PyObject *__pyx_v_port = 0;
PyObject *__pyx_v_protocol = 0;
PyObject *__pyx_v_dashboard_address = 0;
PyObject *__pyx_v_dashboard = 0;
PyObject *__pyx_v_http_prefix = 0;
PyObject *__pyx_v_preload = 0;
PyObject *__pyx_v_preload_argv = 0;
PyObject *__pyx_v_plugins = 0;
PyObject *__pyx_v_kwargs = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
__pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
__Pyx_GOTREF(__pyx_v_kwargs);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_loop,&__pyx_n_s_delete_interval,&__pyx_n_s_synchronize_worker_interval,&__pyx_n_s_services,&__pyx_n_s_service_kwargs,&__pyx_n_s_allowed_failures,&__pyx_n_s_extensions,&__pyx_n_s_validate,&__pyx_n_s_scheduler_file,&__pyx_n_s_security,&__pyx_n_s_worker_ttl,&__pyx_n_s_idle_timeout,&__pyx_n_s_interface,&__pyx_n_s_host,&__pyx_n_s_port,&__pyx_n_s_protocol,&__pyx_n_s_dashboard_address,&__pyx_n_s_dashboard,&__pyx_n_s_http_prefix,&__pyx_n_s_preload,&__pyx_n_s_preload_argv,&__pyx_n_s_plugins,0};
PyObject* values[23] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_loop, PyObject *__pyx_v_delete_interval, PyObject *__pyx_v_synchronize_worker_interval, PyObject *__pyx_v_services, PyObject *__pyx_v_service_kwargs, PyObject *__pyx_v_allowed_failures, PyObject *__pyx_v_extensions, PyObject *__pyx_v_validate, PyObject *__pyx_v_scheduler_file, PyObject *__pyx_v_security, PyObject *__pyx_v_worker_ttl, PyObject *__pyx_v_idle_timeout, PyObject *__pyx_v_interface, PyObject *__pyx_v_host, PyObject *__pyx_v_port, PyObject *__pyx_v_protocol, PyObject *__pyx_v_dashboard_address, PyObject *__pyx_v_dashboard, PyObject *__pyx_v_http_prefix, PyObject *__pyx_v_preload, PyObject *__pyx_v_preload_argv, PyObject *__pyx_v_plugins, PyObject *__pyx_v_kwargs) {
PyObject *__pyx_v_http_server_modules = NULL;
PyObject *__pyx_v_show_dashboard = NULL;
int __pyx_v_missing_bokeh;
PyObject *__pyx_v_distributed = NULL;
PyObject *__pyx_v_routes = NULL;
PyObject *__pyx_v_tasks = NULL;
PyObject *__pyx_v_old_attr = NULL;
PyObject *__pyx_v_new_attr = NULL;
PyObject *__pyx_v_wrap = NULL;
PyObject *__pyx_v_func = NULL;
PyObject *__pyx_v_unrunnable = NULL;
PyObject *__pyx_v_clients = NULL;
PyObject *__pyx_v_workers = NULL;
PyObject *__pyx_v_host_info = NULL;
PyObject *__pyx_v_resources = NULL;
PyObject *__pyx_v_aliases = NULL;
PyObject *__pyx_v_worker_handlers = NULL;
PyObject *__pyx_v_client_handlers = NULL;
PyObject *__pyx_v_connection_limit = NULL;
PyObject *__pyx_v_pc = NULL;
PyObject *__pyx_v_ext = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__", 0);
__Pyx_INCREF(__pyx_v_allowed_failures);
__Pyx_INCREF(__pyx_v_extensions);
__Pyx_INCREF(__pyx_v_validate);
__Pyx_INCREF(__pyx_v_security);
__Pyx_INCREF(__pyx_v_worker_ttl);
__Pyx_INCREF(__pyx_v_idle_timeout);
__Pyx_INCREF(__pyx_v_preload);
__Pyx_INCREF(__pyx_v_preload_argv);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_http_server_modules);
__Pyx_XDECREF(__pyx_v_show_dashboard);
__Pyx_XDECREF(__pyx_v_distributed);
__Pyx_XDECREF(__pyx_v_routes);
__Pyx_XDECREF(__pyx_v_tasks);
__Pyx_XDECREF(__pyx_v_old_attr);
__Pyx_XDECREF(__pyx_v_new_attr);
__Pyx_XDECREF(__pyx_v_wrap);
__Pyx_XDECREF(__pyx_v_func);
__Pyx_XDECREF(__pyx_v_unrunnable);
__Pyx_XDECREF(__pyx_v_clients);
__Pyx_XDECREF(__pyx_v_workers);
__Pyx_XDECREF(__pyx_v_host_info);
__Pyx_XDECREF(__pyx_v_resources);
__Pyx_XDECREF(__pyx_v_aliases);
__Pyx_XDECREF(__pyx_v_worker_handlers);
__Pyx_XDECREF(__pyx_v_client_handlers);
__Pyx_XDECREF(__pyx_v_connection_limit);
__Pyx_XDECREF(__pyx_v_pc);
__Pyx_XDECREF(__pyx_v_ext);
__Pyx_XDECREF(__pyx_v_allowed_failures);
__Pyx_XDECREF(__pyx_v_extensions);
__Pyx_XDECREF(__pyx_v_validate);
__Pyx_XDECREF(__pyx_v_security);
__Pyx_XDECREF(__pyx_v_worker_ttl);
__Pyx_XDECREF(__pyx_v_idle_timeout);
__Pyx_XDECREF(__pyx_v_preload);
__Pyx_XDECREF(__pyx_v_preload_argv);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__155 = PyTuple_Pack(45, __pyx_n_s_self, __pyx_n_s_loop, __pyx_n_s_delete_interval, __pyx_n_s_synchronize_worker_interval, __pyx_n_s_services, __pyx_n_s_service_kwargs, __pyx_n_s_allowed_failures, __pyx_n_s_extensions, __pyx_n_s_validate, __pyx_n_s_scheduler_file, __pyx_n_s_security, __pyx_n_s_worker_ttl, __pyx_n_s_idle_timeout, __pyx_n_s_interface, __pyx_n_s_host, __pyx_n_s_port, __pyx_n_s_protocol, __pyx_n_s_dashboard_address, __pyx_n_s_dashboard, __pyx_n_s_http_prefix, __pyx_n_s_preload, __pyx_n_s_preload_argv, __pyx_n_s_plugins, __pyx_n_s_kwargs, __pyx_n_s_http_server_modules, __pyx_n_s_show_dashboard, __pyx_n_s_missing_bokeh, __pyx_n_s_distributed, __pyx_n_s_routes, __pyx_n_s_tasks, __pyx_n_s_old_attr, __pyx_n_s_new_attr, __pyx_n_s_wrap, __pyx_n_s_func, __pyx_n_s_unrunnable, __pyx_n_s_clients, __pyx_n_s_workers, __pyx_n_s_host_info, __pyx_n_s_resources, __pyx_n_s_aliases, __pyx_n_s_worker_handlers, __pyx_n_s_client_handlers, __pyx_n_s_connection_limit, __pyx_n_s_pc, __pyx_n_s_ext); if (unlikely(!__pyx_tuple__155)) __PYX_ERR(0, 2837, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__155);
__Pyx_GIVEREF(__pyx_tuple__155);
__pyx_codeobj__156 = (PyObject*)__Pyx_PyCode_New(23, 0, 45, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__155, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_init, 2837, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__156)) __PYX_ERR(0, 2837, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_1__init__, 0, __pyx_n_s_Scheduler___init, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__156)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2837, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_INCREF(__pyx_t_12);
PyList_Append(__pyx_t_13, __pyx_t_12);
__Pyx_GIVEREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__157);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_init, __pyx_t_12) < 0) __PYX_ERR(0, 2837, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__157 = PyTuple_Pack(22, ((PyObject *)Py_None), ((PyObject*)__pyx_kp_u_500ms), ((PyObject*)__pyx_kp_u_60s), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)__pyx_int_0), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject*)__pyx_kp_u__14), ((PyObject *)Py_None), ((PyObject*)__pyx_empty_tuple), ((PyObject*)__pyx_empty_tuple)); if (unlikely(!__pyx_tuple__157)) __PYX_ERR(0, 2837, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__157);
__Pyx_GIVEREF(__pyx_tuple__157);
2838: self,
+2839: loop=None,
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject*)__pyx_kp_u_500ms));
values[3] = ((PyObject *)((PyObject*)__pyx_kp_u_60s));
2840: delete_interval="500ms",
2841: synchronize_worker_interval="60s",
+2842: services=None,
values[4] = ((PyObject *)((PyObject *)Py_None));
+2843: service_kwargs=None,
values[5] = ((PyObject *)((PyObject *)Py_None));
+2844: allowed_failures=None,
values[6] = ((PyObject *)((PyObject *)Py_None));
+2845: extensions=None,
values[7] = ((PyObject *)((PyObject *)Py_None));
+2846: validate=None,
values[8] = ((PyObject *)((PyObject *)Py_None));
+2847: scheduler_file=None,
values[9] = ((PyObject *)((PyObject *)Py_None));
+2848: security=None,
values[10] = ((PyObject *)((PyObject *)Py_None));
+2849: worker_ttl=None,
values[11] = ((PyObject *)((PyObject *)Py_None));
+2850: idle_timeout=None,
values[12] = ((PyObject *)((PyObject *)Py_None));
+2851: interface=None,
values[13] = ((PyObject *)((PyObject *)Py_None));
+2852: host=None,
values[14] = ((PyObject *)((PyObject *)Py_None));
values[15] = ((PyObject *)((PyObject *)__pyx_int_0));
2853: port=0,
+2854: protocol=None,
values[16] = ((PyObject *)((PyObject *)Py_None));
+2855: dashboard_address=None,
values[17] = ((PyObject *)((PyObject *)Py_None));
+2856: dashboard=None,
values[18] = ((PyObject *)((PyObject *)Py_None));
values[19] = ((PyObject *)((PyObject*)__pyx_kp_u__14));
2857: http_prefix="/",
+2858: preload=None,
values[20] = ((PyObject *)((PyObject *)Py_None));
+2859: preload_argv=(),
values[21] = ((PyObject *)((PyObject*)__pyx_empty_tuple));
+2860: plugins=(),
values[22] = ((PyObject *)((PyObject*)__pyx_empty_tuple));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
CYTHON_FALLTHROUGH;
case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
CYTHON_FALLTHROUGH;
case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
CYTHON_FALLTHROUGH;
case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
CYTHON_FALLTHROUGH;
case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
CYTHON_FALLTHROUGH;
case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
CYTHON_FALLTHROUGH;
case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
CYTHON_FALLTHROUGH;
case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
CYTHON_FALLTHROUGH;
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loop);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_delete_interval);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_synchronize_worker_interval);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_services);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_service_kwargs);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allowed_failures);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_extensions);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_validate);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scheduler_file);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_security);
if (value) { values[10] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 11:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker_ttl);
if (value) { values[11] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 12:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_idle_timeout);
if (value) { values[12] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 13:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interface);
if (value) { values[13] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 14:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_host);
if (value) { values[14] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 15:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_port);
if (value) { values[15] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 16:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_protocol);
if (value) { values[16] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 17:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dashboard_address);
if (value) { values[17] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 18:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dashboard);
if (value) { values[18] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 19:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_http_prefix);
if (value) { values[19] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 20:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_preload);
if (value) { values[20] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 21:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_preload_argv);
if (value) { values[21] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 22:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_plugins);
if (value) { values[22] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 2837, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
CYTHON_FALLTHROUGH;
case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
CYTHON_FALLTHROUGH;
case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
CYTHON_FALLTHROUGH;
case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
CYTHON_FALLTHROUGH;
case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
CYTHON_FALLTHROUGH;
case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
CYTHON_FALLTHROUGH;
case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
CYTHON_FALLTHROUGH;
case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
CYTHON_FALLTHROUGH;
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_loop = values[1];
__pyx_v_delete_interval = values[2];
__pyx_v_synchronize_worker_interval = values[3];
__pyx_v_services = values[4];
__pyx_v_service_kwargs = values[5];
__pyx_v_allowed_failures = values[6];
__pyx_v_extensions = values[7];
__pyx_v_validate = values[8];
__pyx_v_scheduler_file = values[9];
__pyx_v_security = values[10];
__pyx_v_worker_ttl = values[11];
__pyx_v_idle_timeout = values[12];
__pyx_v_interface = values[13];
__pyx_v_host = values[14];
__pyx_v_port = values[15];
__pyx_v_protocol = values[16];
__pyx_v_dashboard_address = values[17];
__pyx_v_dashboard = values[18];
__pyx_v_http_prefix = values[19];
__pyx_v_preload = values[20];
__pyx_v_preload_argv = values[21];
__pyx_v_plugins = values[22];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 23, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2837, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler___init__(__pyx_self, __pyx_v_self, __pyx_v_loop, __pyx_v_delete_interval, __pyx_v_synchronize_worker_interval, __pyx_v_services, __pyx_v_service_kwargs, __pyx_v_allowed_failures, __pyx_v_extensions, __pyx_v_validate, __pyx_v_scheduler_file, __pyx_v_security, __pyx_v_worker_ttl, __pyx_v_idle_timeout, __pyx_v_interface, __pyx_v_host, __pyx_v_port, __pyx_v_protocol, __pyx_v_dashboard_address, __pyx_v_dashboard, __pyx_v_http_prefix, __pyx_v_preload, __pyx_v_preload_argv, __pyx_v_plugins, __pyx_v_kwargs);
2861: **kwargs,
2862: ):
+2863: self._setup_logging(logger)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_setup_logging); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2863, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_logger); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2863, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2863, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2864:
2865: # Attributes
+2866: if allowed_failures is None:
__pyx_t_5 = (__pyx_v_allowed_failures == Py_None);
__pyx_t_6 = (__pyx_t_5 != 0);
if (__pyx_t_6) {
/* … */
}
+2867: allowed_failures = dask.config.get("distributed.scheduler.allowed-failures")
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_dask); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_config); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_u_distributed_scheduler_allowed_fa) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_u_distributed_scheduler_allowed_fa); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_allowed_failures, __pyx_t_1); __pyx_t_1 = 0;
+2868: self.allowed_failures = allowed_failures
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_allowed_failures, __pyx_v_allowed_failures) < 0) __PYX_ERR(0, 2868, __pyx_L1_error)
+2869: if validate is None:
__pyx_t_6 = (__pyx_v_validate == Py_None);
__pyx_t_5 = (__pyx_t_6 != 0);
if (__pyx_t_5) {
/* … */
}
+2870: validate = dask.config.get("distributed.scheduler.validate")
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_dask); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_config); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_u_distributed_scheduler_validate) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_u_distributed_scheduler_validate); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_validate, __pyx_t_1); __pyx_t_1 = 0;
+2871: self.proc = psutil.Process()
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_psutil); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Process); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_proc, __pyx_t_1) < 0) __PYX_ERR(0, 2871, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2872: self.delete_interval = parse_timedelta(delete_interval, default="ms")
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_parse_timedelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_delete_interval); __Pyx_GIVEREF(__pyx_v_delete_interval); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_delete_interval); __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_default, __pyx_n_u_ms) < 0) __PYX_ERR(0, 2872, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_delete_interval, __pyx_t_4) < 0) __PYX_ERR(0, 2872, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2873: self.synchronize_worker_interval = parse_timedelta(
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_parse_timedelta); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); /* … */ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_synchronize_worker_interval); __Pyx_GIVEREF(__pyx_v_synchronize_worker_interval); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_synchronize_worker_interval); /* … */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_synchronize_worker_interval, __pyx_t_1) < 0) __PYX_ERR(0, 2873, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2874: synchronize_worker_interval, default="ms"
__pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2874, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_default, __pyx_n_u_ms) < 0) __PYX_ERR(0, 2874, __pyx_L1_error)
2875: )
+2876: self.digests = None
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_digests, Py_None) < 0) __PYX_ERR(0, 2876, __pyx_L1_error)
+2877: self.service_specs = services or {}
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_services); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2877, __pyx_L1_error) if (!__pyx_t_5) { } else { __Pyx_INCREF(__pyx_v_services); __pyx_t_1 = __pyx_v_services; goto __pyx_L5_bool_binop_done; } __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = __pyx_t_3; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_L5_bool_binop_done:; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_service_specs, __pyx_t_1) < 0) __PYX_ERR(0, 2877, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2878: self.service_kwargs = service_kwargs or {}
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_service_kwargs); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2878, __pyx_L1_error) if (!__pyx_t_5) { } else { __Pyx_INCREF(__pyx_v_service_kwargs); __pyx_t_1 = __pyx_v_service_kwargs; goto __pyx_L7_bool_binop_done; } __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = __pyx_t_3; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_L7_bool_binop_done:; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_service_kwargs, __pyx_t_1) < 0) __PYX_ERR(0, 2878, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2879: self.services = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_services, __pyx_t_1) < 0) __PYX_ERR(0, 2879, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2880: self.scheduler_file = scheduler_file
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_scheduler_file, __pyx_v_scheduler_file) < 0) __PYX_ERR(0, 2880, __pyx_L1_error)
+2881: worker_ttl = worker_ttl or dask.config.get("distributed.scheduler.worker-ttl")
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_worker_ttl); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2881, __pyx_L1_error) if (!__pyx_t_5) { } else { __Pyx_INCREF(__pyx_v_worker_ttl); __pyx_t_1 = __pyx_v_worker_ttl; goto __pyx_L9_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_dask); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_config); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_kp_u_distributed_scheduler_worker_ttl) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_u_distributed_scheduler_worker_ttl); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = __pyx_t_3; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_L9_bool_binop_done:; __Pyx_DECREF_SET(__pyx_v_worker_ttl, __pyx_t_1); __pyx_t_1 = 0;
+2882: self.worker_ttl = parse_timedelta(worker_ttl) if worker_ttl else None
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_worker_ttl); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2882, __pyx_L1_error) if (__pyx_t_5) { __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_parse_timedelta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v_worker_ttl) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_worker_ttl); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_1 = __pyx_t_3; __pyx_t_3 = 0; } else { __Pyx_INCREF(Py_None); __pyx_t_1 = Py_None; } if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_worker_ttl, __pyx_t_1) < 0) __PYX_ERR(0, 2882, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2883: idle_timeout = idle_timeout or dask.config.get(
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_idle_timeout); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2883, __pyx_L1_error) if (!__pyx_t_5) { } else { __Pyx_INCREF(__pyx_v_idle_timeout); __pyx_t_1 = __pyx_v_idle_timeout; goto __pyx_L11_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_dask); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_config); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_kp_u_distributed_scheduler_idle_timeo) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_u_distributed_scheduler_idle_timeo); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = __pyx_t_3; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_L11_bool_binop_done:; __Pyx_DECREF_SET(__pyx_v_idle_timeout, __pyx_t_1); __pyx_t_1 = 0;
2884: "distributed.scheduler.idle-timeout"
2885: )
+2886: if idle_timeout:
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_idle_timeout); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2886, __pyx_L1_error) if (__pyx_t_5) { /* … */ goto __pyx_L13; }
+2887: self.idle_timeout = parse_timedelta(idle_timeout)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_parse_timedelta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_idle_timeout) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_idle_timeout); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_idle_timeout, __pyx_t_1) < 0) __PYX_ERR(0, 2887, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2888: else:
+2889: self.idle_timeout = None
/*else*/ {
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_idle_timeout, Py_None) < 0) __PYX_ERR(0, 2889, __pyx_L1_error)
}
__pyx_L13:;
+2890: self.idle_since = time()
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_time); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_idle_since, __pyx_t_1) < 0) __PYX_ERR(0, 2890, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2891: self.time_started = self.idle_since # compatibility for dask-gateway
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_idle_since); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_time_started, __pyx_t_1) < 0) __PYX_ERR(0, 2891, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2892: self._lock = asyncio.Lock()
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_Lock); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_lock, __pyx_t_1) < 0) __PYX_ERR(0, 2892, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2893: self.bandwidth_workers = defaultdict(float)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_defaultdict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)(&PyFloat_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)(&PyFloat_Type))); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_bandwidth_workers, __pyx_t_1) < 0) __PYX_ERR(0, 2893, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2894: self.bandwidth_types = defaultdict(float)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_defaultdict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)(&PyFloat_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)(&PyFloat_Type))); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_bandwidth_types, __pyx_t_1) < 0) __PYX_ERR(0, 2894, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2895:
+2896: if not preload:
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_preload); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2896, __pyx_L1_error) __pyx_t_6 = ((!__pyx_t_5) != 0); if (__pyx_t_6) { /* … */ }
+2897: preload = dask.config.get("distributed.scheduler.preload")
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_dask); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_config); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_u_distributed_scheduler_preload) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_u_distributed_scheduler_preload); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_preload, __pyx_t_1); __pyx_t_1 = 0;
+2898: if not preload_argv:
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_preload_argv); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2898, __pyx_L1_error) __pyx_t_5 = ((!__pyx_t_6) != 0); if (__pyx_t_5) { /* … */ }
+2899: preload_argv = dask.config.get("distributed.scheduler.preload-argv")
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_dask); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_config); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_u_distributed_scheduler_preload_ar) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_u_distributed_scheduler_preload_ar); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_preload_argv, __pyx_t_1); __pyx_t_1 = 0;
+2900: self.preloads = preloading.process_preloads(self, preload, preload_argv)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_preloading); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_process_preloads); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_v_self, __pyx_v_preload, __pyx_v_preload_argv}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2900, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_v_self, __pyx_v_preload, __pyx_v_preload_argv}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2900, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_4 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_7, __pyx_v_self); __Pyx_INCREF(__pyx_v_preload); __Pyx_GIVEREF(__pyx_v_preload); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_7, __pyx_v_preload); __Pyx_INCREF(__pyx_v_preload_argv); __Pyx_GIVEREF(__pyx_v_preload_argv); PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_7, __pyx_v_preload_argv); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_preloads, __pyx_t_1) < 0) __PYX_ERR(0, 2900, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2901:
+2902: if isinstance(security, dict):
__pyx_t_5 = PyDict_Check(__pyx_v_security);
__pyx_t_6 = (__pyx_t_5 != 0);
if (__pyx_t_6) {
/* … */
}
+2903: security = Security(**security)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Security); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_security == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); __PYX_ERR(0, 2903, __pyx_L1_error) } if (likely(PyDict_CheckExact(__pyx_v_security))) { __pyx_t_3 = PyDict_Copy(__pyx_v_security); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } else { __pyx_t_3 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_security, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_security, __pyx_t_4); __pyx_t_4 = 0;
+2904: self.security = security or Security()
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_security); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2904, __pyx_L1_error) if (!__pyx_t_6) { } else { __Pyx_INCREF(__pyx_v_security); __pyx_t_4 = __pyx_v_security; goto __pyx_L17_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Security); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = __pyx_t_3; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_L17_bool_binop_done:; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_security, __pyx_t_4) < 0) __PYX_ERR(0, 2904, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2905: assert isinstance(self.security, Security)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_security); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2905, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Security); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2905, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = PyObject_IsInstance(__pyx_t_4, __pyx_t_3); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 2905, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!(__pyx_t_6 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 2905, __pyx_L1_error)
}
}
#endif
+2906: self.connection_args = self.security.get_connection_args("scheduler")
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_security); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_get_connection_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, __pyx_n_u_scheduler) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_n_u_scheduler); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_connection_args, __pyx_t_3) < 0) __PYX_ERR(0, 2906, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+2907: self.connection_args["handshake_overrides"] = { # common denominator
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_connection_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_handshake_overrides, __pyx_t_3) < 0)) __PYX_ERR(0, 2907, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+2908: "pickle-protocol": 4
__pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2908, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_kp_u_pickle_protocol, __pyx_int_4) < 0) __PYX_ERR(0, 2908, __pyx_L1_error)
2909: }
2910:
+2911: self._start_address = addresses_from_user_args(
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_addresses_from_user_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* … */ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_start_address, __pyx_t_4) < 0) __PYX_ERR(0, 2911, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2912: host=host,
__pyx_t_1 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_host, __pyx_v_host) < 0) __PYX_ERR(0, 2912, __pyx_L1_error)
+2913: port=port,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_port, __pyx_v_port) < 0) __PYX_ERR(0, 2912, __pyx_L1_error)
+2914: interface=interface,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_interface, __pyx_v_interface) < 0) __PYX_ERR(0, 2912, __pyx_L1_error)
+2915: protocol=protocol,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_protocol, __pyx_v_protocol) < 0) __PYX_ERR(0, 2912, __pyx_L1_error)
+2916: security=security,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_security, __pyx_v_security) < 0) __PYX_ERR(0, 2912, __pyx_L1_error)
+2917: default_port=self.default_port,
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_default_port); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_default_port, __pyx_t_4) < 0) __PYX_ERR(0, 2912, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
2918: )
2919:
+2920: http_server_modules = dask.config.get("distributed.scheduler.http.routes")
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_dask); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_config); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_kp_u_distributed_scheduler_http_route) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_kp_u_distributed_scheduler_http_route); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_http_server_modules = __pyx_t_4; __pyx_t_4 = 0;
+2921: show_dashboard = dashboard or (dashboard is None and dashboard_address)
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_dashboard); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2921, __pyx_L1_error) if (!__pyx_t_6) { } else { __Pyx_INCREF(__pyx_v_dashboard); __pyx_t_4 = __pyx_v_dashboard; goto __pyx_L19_bool_binop_done; } __pyx_t_6 = (__pyx_v_dashboard == Py_None); if (__pyx_t_6) { } else { __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L19_bool_binop_done; } __Pyx_INCREF(__pyx_v_dashboard_address); __pyx_t_4 = __pyx_v_dashboard_address; __pyx_L19_bool_binop_done:; __pyx_v_show_dashboard = __pyx_t_4; __pyx_t_4 = 0;
+2922: missing_bokeh = False
__pyx_v_missing_bokeh = 0;
2923: # install vanilla route if show_dashboard but bokeh is not installed
+2924: if show_dashboard:
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_show_dashboard); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2924, __pyx_L1_error) if (__pyx_t_6) { /* … */ }
+2925: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
goto __pyx_L28_try_end;
__pyx_L23_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
goto __pyx_L1_error;
__pyx_L24_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
__pyx_L28_try_end:;
}
+2926: import distributed.dashboard.scheduler
__pyx_t_4 = __Pyx_Import(__pyx_n_s_distributed_dashboard_scheduler, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2926, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_distributed = __pyx_t_4; __pyx_t_4 = 0;
+2927: except ImportError:
__pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError); if (__pyx_t_7) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_3) < 0) __PYX_ERR(0, 2927, __pyx_L25_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_3);
+2928: missing_bokeh = True
__pyx_v_missing_bokeh = 1;
+2929: http_server_modules.append("distributed.http.scheduler.missing_bokeh")
__pyx_t_11 = __Pyx_PyObject_Append(__pyx_v_http_server_modules, __pyx_kp_u_distributed_http_scheduler_missi); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 2929, __pyx_L25_except_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L24_exception_handled; } goto __pyx_L25_except_error; __pyx_L25_except_error:;
+2930: routes = get_handlers(
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_get_handlers); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* … */ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_routes = __pyx_t_4; __pyx_t_4 = 0;
+2931: server=self, modules=http_server_modules, prefix=http_prefix
__pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_server, __pyx_v_self) < 0) __PYX_ERR(0, 2931, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_modules, __pyx_v_http_server_modules) < 0) __PYX_ERR(0, 2931, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_prefix, __pyx_v_http_prefix) < 0) __PYX_ERR(0, 2931, __pyx_L1_error)
2932: )
+2933: self.start_http_server(routes, dashboard_address, default_port=8787)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_start_http_server); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_routes); __Pyx_GIVEREF(__pyx_v_routes); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_routes); __Pyx_INCREF(__pyx_v_dashboard_address); __Pyx_GIVEREF(__pyx_v_dashboard_address); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_dashboard_address); __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_default_port, __pyx_int_8787) < 0) __PYX_ERR(0, 2933, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2934: if show_dashboard and not missing_bokeh:
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_show_dashboard); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2934, __pyx_L1_error) if (__pyx_t_5) { } else { __pyx_t_6 = __pyx_t_5; goto __pyx_L32_bool_binop_done; } __pyx_t_5 = ((!(__pyx_v_missing_bokeh != 0)) != 0); __pyx_t_6 = __pyx_t_5; __pyx_L32_bool_binop_done:; if (__pyx_t_6) { /* … */ }
+2935: distributed.dashboard.scheduler.connect(
if (unlikely(!__pyx_v_distributed)) { __Pyx_RaiseUnboundLocalError("distributed"); __PYX_ERR(0, 2935, __pyx_L1_error) }
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_distributed, __pyx_n_s_dashboard); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2935, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_scheduler); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2935, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_connect); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2935, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
/* … */
__pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2935, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
__Pyx_INCREF(__pyx_v_self);
__Pyx_GIVEREF(__pyx_v_self);
PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_self);
__pyx_t_3 = 0;
__pyx_t_1 = 0;
/* … */
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2935, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+2936: self.http_application, self.http_server, self, prefix=http_prefix
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_http_application); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_http_server); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_prefix, __pyx_v_http_prefix) < 0) __PYX_ERR(0, 2936, __pyx_L1_error)
2937: )
2938:
2939: # Communication state
+2940: self.loop = loop or IOLoop.current()
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_loop); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2940, __pyx_L1_error) if (!__pyx_t_6) { } else { __Pyx_INCREF(__pyx_v_loop); __pyx_t_3 = __pyx_v_loop; goto __pyx_L34_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_IOLoop); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_current); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_L34_bool_binop_done:; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_loop, __pyx_t_3) < 0) __PYX_ERR(0, 2940, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+2941: self.client_comms = dict()
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_client_comms, __pyx_t_3) < 0) __PYX_ERR(0, 2941, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+2942: self.stream_comms = dict()
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2942, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_stream_comms, __pyx_t_3) < 0) __PYX_ERR(0, 2942, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+2943: self._worker_coroutines = []
__pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2943, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_worker_coroutines, __pyx_t_3) < 0) __PYX_ERR(0, 2943, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+2944: self._ipython_kernel = None
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_ipython_kernel, Py_None) < 0) __PYX_ERR(0, 2944, __pyx_L1_error)
2945:
2946: # Task state
+2947: tasks = dict()
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_tasks = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+2948: for old_attr, new_attr, wrap in [
__pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_tuple__15); __Pyx_GIVEREF(__pyx_tuple__15); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_tuple__15); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __Pyx_INCREF(__pyx_tuple__16); __Pyx_GIVEREF(__pyx_tuple__16); PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_tuple__16); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __pyx_t_3; __Pyx_INCREF(__pyx_t_2); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (__pyx_t_12 >= 4) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_12); __Pyx_INCREF(__pyx_t_3); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 2948, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif if (likely(__pyx_t_3 != Py_None)) { PyObject* sequence = __pyx_t_3; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2948, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_13 = PyTuple_GET_ITEM(sequence, 2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_13); #else __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_13 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 2948, __pyx_L1_error) } __Pyx_XDECREF_SET(__pyx_v_old_attr, __pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_new_attr, __pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF_SET(__pyx_v_wrap, __pyx_t_13); __pyx_t_13 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2949: ("priority", "priority", None),
__pyx_tuple__15 = PyTuple_Pack(3, __pyx_n_u_priority, __pyx_n_u_priority, Py_None); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(0, 2949, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__15); __Pyx_GIVEREF(__pyx_tuple__15);
+2950: ("dependencies", "dependencies", _legacy_task_key_set),
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_legacy_task_key_set); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_dependencies); __Pyx_GIVEREF(__pyx_n_u_dependencies); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_dependencies); __Pyx_INCREF(__pyx_n_u_dependencies); __Pyx_GIVEREF(__pyx_n_u_dependencies); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_dependencies); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_3); __pyx_t_3 = 0;
+2951: ("dependents", "dependents", _legacy_task_key_set),
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_legacy_task_key_set); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_u_dependents); __Pyx_GIVEREF(__pyx_n_u_dependents); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_u_dependents); __Pyx_INCREF(__pyx_n_u_dependents); __Pyx_GIVEREF(__pyx_n_u_dependents); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_dependents); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_3); __pyx_t_3 = 0;
+2952: ("retries", "retries", None),
__pyx_tuple__16 = PyTuple_Pack(3, __pyx_n_u_retries, __pyx_n_u_retries, Py_None); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 2952, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__16); __Pyx_GIVEREF(__pyx_tuple__16);
2953: ]:
+2954: func = operator.attrgetter(new_attr)
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_operator); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_attrgetter); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_13, __pyx_v_new_attr) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_new_attr); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF_SET(__pyx_v_func, __pyx_t_3); __pyx_t_3 = 0;
+2955: if wrap is not None:
__pyx_t_6 = (__pyx_v_wrap != Py_None);
__pyx_t_5 = (__pyx_t_6 != 0);
if (__pyx_t_5) {
/* … */
}
+2956: func = compose(wrap, func)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_compose); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_13 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_v_wrap, __pyx_v_func}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2956, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_v_wrap, __pyx_v_func}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2956, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif { __pyx_t_1 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_13) { __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13); __pyx_t_13 = NULL; } __Pyx_INCREF(__pyx_v_wrap); __Pyx_GIVEREF(__pyx_v_wrap); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_7, __pyx_v_wrap); __Pyx_INCREF(__pyx_v_func); __Pyx_GIVEREF(__pyx_v_func); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_7, __pyx_v_func); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_func, __pyx_t_3); __pyx_t_3 = 0;
+2957: setattr(self, old_attr, _StateLegacyMapping(tasks, func))
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_StateLegacyMapping); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_tasks, __pyx_v_func}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2957, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_tasks, __pyx_v_func}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2957, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif { __pyx_t_13 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_tasks); __Pyx_GIVEREF(__pyx_v_tasks); PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_7, __pyx_v_tasks); __Pyx_INCREF(__pyx_v_func); __Pyx_GIVEREF(__pyx_v_func); PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_7, __pyx_v_func); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_13, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_11 = PyObject_SetAttr(__pyx_v_self, __pyx_v_old_attr, __pyx_t_3); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 2957, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
2958:
+2959: for old_attr, new_attr, wrap in [
__pyx_t_2 = PyTuple_New(13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_tuple__17); __Pyx_GIVEREF(__pyx_tuple__17); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_tuple__17); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_t_1); __Pyx_INCREF(__pyx_tuple__18); __Pyx_GIVEREF(__pyx_tuple__18); PyTuple_SET_ITEM(__pyx_t_2, 5, __pyx_tuple__18); __Pyx_INCREF(__pyx_tuple__19); __Pyx_GIVEREF(__pyx_tuple__19); PyTuple_SET_ITEM(__pyx_t_2, 6, __pyx_tuple__19); __Pyx_INCREF(__pyx_tuple__20); __Pyx_GIVEREF(__pyx_tuple__20); PyTuple_SET_ITEM(__pyx_t_2, 7, __pyx_tuple__20); __Pyx_INCREF(__pyx_tuple__21); __Pyx_GIVEREF(__pyx_tuple__21); PyTuple_SET_ITEM(__pyx_t_2, 8, __pyx_tuple__21); __Pyx_INCREF(__pyx_tuple__22); __Pyx_GIVEREF(__pyx_tuple__22); PyTuple_SET_ITEM(__pyx_t_2, 9, __pyx_tuple__22); __Pyx_INCREF(__pyx_tuple__23); __Pyx_GIVEREF(__pyx_tuple__23); PyTuple_SET_ITEM(__pyx_t_2, 10, __pyx_tuple__23); __Pyx_INCREF(__pyx_tuple__24); __Pyx_GIVEREF(__pyx_tuple__24); PyTuple_SET_ITEM(__pyx_t_2, 11, __pyx_tuple__24); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_2, 12, __pyx_t_14); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_13 = 0; __pyx_t_1 = 0; __pyx_t_14 = 0; __pyx_t_14 = __pyx_t_2; __Pyx_INCREF(__pyx_t_14); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (__pyx_t_12 >= 13) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_12); __Pyx_INCREF(__pyx_t_2); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 2959, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_14, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif if (likely(__pyx_t_2 != Py_None)) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2959, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(__pyx_t_4); #else __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 2959, __pyx_L1_error) } __Pyx_XDECREF_SET(__pyx_v_old_attr, __pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_new_attr, __pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF_SET(__pyx_v_wrap, __pyx_t_4); __pyx_t_4 = 0; /* … */ } __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+2960: ("nbytes", "nbytes", None),
__pyx_tuple__17 = PyTuple_Pack(3, __pyx_n_u_nbytes, __pyx_n_u_nbytes, Py_None); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(0, 2960, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__17); __Pyx_GIVEREF(__pyx_tuple__17);
+2961: ("who_wants", "who_wants", _legacy_client_key_set),
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_legacy_client_key_set); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_n_u_who_wants); __Pyx_GIVEREF(__pyx_n_u_who_wants); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_who_wants); __Pyx_INCREF(__pyx_n_u_who_wants); __Pyx_GIVEREF(__pyx_n_u_who_wants); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_n_u_who_wants); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __pyx_t_2 = 0;
+2962: ("who_has", "who_has", _legacy_worker_key_set),
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_legacy_worker_key_set); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_n_u_who_has); __Pyx_GIVEREF(__pyx_n_u_who_has); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_n_u_who_has); __Pyx_INCREF(__pyx_n_u_who_has); __Pyx_GIVEREF(__pyx_n_u_who_has); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_n_u_who_has); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2); __pyx_t_2 = 0;
+2963: ("waiting", "waiting_on", _legacy_task_key_set),
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_legacy_task_key_set); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_13 = PyTuple_New(3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_INCREF(__pyx_n_u_waiting); __Pyx_GIVEREF(__pyx_n_u_waiting); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_n_u_waiting); __Pyx_INCREF(__pyx_n_u_waiting_on); __Pyx_GIVEREF(__pyx_n_u_waiting_on); PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_n_u_waiting_on); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_2); __pyx_t_2 = 0;
+2964: ("waiting_data", "waiters", _legacy_task_key_set),
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_legacy_task_key_set); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_waiting_data); __Pyx_GIVEREF(__pyx_n_u_waiting_data); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_waiting_data); __Pyx_INCREF(__pyx_n_u_waiters); __Pyx_GIVEREF(__pyx_n_u_waiters); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_waiters); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_2); __pyx_t_2 = 0;
+2965: ("rprocessing", "processing_on", None),
__pyx_tuple__18 = PyTuple_Pack(3, __pyx_n_u_rprocessing, __pyx_n_u_processing_on, Py_None); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 2965, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__18); __Pyx_GIVEREF(__pyx_tuple__18);
+2966: ("host_restrictions", "host_restrictions", None),
__pyx_tuple__19 = PyTuple_Pack(3, __pyx_n_u_host_restrictions, __pyx_n_u_host_restrictions, Py_None); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 2966, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__19); __Pyx_GIVEREF(__pyx_tuple__19);
+2967: ("worker_restrictions", "worker_restrictions", None),
__pyx_tuple__20 = PyTuple_Pack(3, __pyx_n_u_worker_restrictions, __pyx_n_u_worker_restrictions, Py_None); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 2967, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__20); __Pyx_GIVEREF(__pyx_tuple__20);
+2968: ("resource_restrictions", "resource_restrictions", None),
__pyx_tuple__21 = PyTuple_Pack(3, __pyx_n_u_resource_restrictions, __pyx_n_u_resource_restrictions, Py_None); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 2968, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__21); __Pyx_GIVEREF(__pyx_tuple__21);
+2969: ("suspicious_tasks", "suspicious", None),
__pyx_tuple__22 = PyTuple_Pack(3, __pyx_n_u_suspicious_tasks, __pyx_n_u_suspicious, Py_None); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(0, 2969, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__22); __Pyx_GIVEREF(__pyx_tuple__22);
+2970: ("exceptions", "exception", None),
__pyx_tuple__23 = PyTuple_Pack(3, __pyx_n_u_exceptions, __pyx_n_u_exception, Py_None); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 2970, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__23); __Pyx_GIVEREF(__pyx_tuple__23);
+2971: ("tracebacks", "traceback", None),
__pyx_tuple__24 = PyTuple_Pack(3, __pyx_n_u_tracebacks, __pyx_n_u_traceback, Py_None); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 2971, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__24); __Pyx_GIVEREF(__pyx_tuple__24);
+2972: ("exceptions_blame", "exception_blame", _task_key_or_none),
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_task_key_or_none); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = PyTuple_New(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF(__pyx_n_u_exceptions_blame); __Pyx_GIVEREF(__pyx_n_u_exceptions_blame); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_u_exceptions_blame); __Pyx_INCREF(__pyx_n_u_exception_blame); __Pyx_GIVEREF(__pyx_n_u_exception_blame); PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_n_u_exception_blame); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_2); __pyx_t_2 = 0;
2973: ]:
+2974: func = operator.attrgetter(new_attr)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_operator); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_attrgetter); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_4, __pyx_v_new_attr) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_v_new_attr); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF_SET(__pyx_v_func, __pyx_t_2); __pyx_t_2 = 0;
+2975: if wrap is not None:
__pyx_t_5 = (__pyx_v_wrap != Py_None);
__pyx_t_6 = (__pyx_t_5 != 0);
if (__pyx_t_6) {
/* … */
}
+2976: func = compose(wrap, func)
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_compose); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_4 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_13)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_wrap, __pyx_v_func}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2976, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_wrap, __pyx_v_func}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2976, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_1 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_v_wrap); __Pyx_GIVEREF(__pyx_v_wrap); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_7, __pyx_v_wrap); __Pyx_INCREF(__pyx_v_func); __Pyx_GIVEREF(__pyx_v_func); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_7, __pyx_v_func); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF_SET(__pyx_v_func, __pyx_t_2); __pyx_t_2 = 0;
+2977: setattr(self, old_attr, _OptionalStateLegacyMapping(tasks, func))
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_OptionalStateLegacyMapping); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_1 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_13)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_tasks, __pyx_v_func}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2977, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_tasks, __pyx_v_func}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2977, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_4 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_tasks); __Pyx_GIVEREF(__pyx_v_tasks); PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_7, __pyx_v_tasks); __Pyx_INCREF(__pyx_v_func); __Pyx_GIVEREF(__pyx_v_func); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_7, __pyx_v_func); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_11 = PyObject_SetAttr(__pyx_v_self, __pyx_v_old_attr, __pyx_t_2); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 2977, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2978:
+2979: for old_attr, new_attr, wrap in [
__pyx_t_14 = __pyx_tuple__26; __Pyx_INCREF(__pyx_t_14); __pyx_t_12 = 0; for (;;) { if (__pyx_t_12 >= 1) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_12); __Pyx_INCREF(__pyx_t_2); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 2979, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_14, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif if (likely(__pyx_t_2 != Py_None)) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2979, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 2); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); #else __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 2979, __pyx_L1_error) } __Pyx_XDECREF_SET(__pyx_v_old_attr, __pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF_SET(__pyx_v_new_attr, __pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF_SET(__pyx_v_wrap, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; /* … */ __pyx_tuple__26 = PyTuple_Pack(1, __pyx_tuple__25); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 2979, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__26); __Pyx_GIVEREF(__pyx_tuple__26);
+2980: ("loose_restrictions", "loose_restrictions", None)
__pyx_tuple__25 = PyTuple_Pack(3, __pyx_n_u_loose_restrictions, __pyx_n_u_loose_restrictions, Py_None); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 2980, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__25); __Pyx_GIVEREF(__pyx_tuple__25);
2981: ]:
+2982: func = operator.attrgetter(new_attr)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_operator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_attrgetter); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_1, __pyx_v_new_attr) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_new_attr); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF_SET(__pyx_v_func, __pyx_t_2); __pyx_t_2 = 0;
+2983: if wrap is not None:
__pyx_t_6 = (__pyx_v_wrap != Py_None);
__pyx_t_5 = (__pyx_t_6 != 0);
if (__pyx_t_5) {
/* … */
}
+2984: func = compose(wrap, func)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_compose); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_wrap, __pyx_v_func}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2984, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_wrap, __pyx_v_func}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2984, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_13 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_wrap); __Pyx_GIVEREF(__pyx_v_wrap); PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_7, __pyx_v_wrap); __Pyx_INCREF(__pyx_v_func); __Pyx_GIVEREF(__pyx_v_func); PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_7, __pyx_v_func); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_13, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_func, __pyx_t_2); __pyx_t_2 = 0;
+2985: setattr(self, old_attr, _StateLegacySet(tasks, func))
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_StateLegacySet); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_13 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_v_tasks, __pyx_v_func}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2985, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_v_tasks, __pyx_v_func}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2985, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_1 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_13) { __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13); __pyx_t_13 = NULL; } __Pyx_INCREF(__pyx_v_tasks); __Pyx_GIVEREF(__pyx_v_tasks); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_7, __pyx_v_tasks); __Pyx_INCREF(__pyx_v_func); __Pyx_GIVEREF(__pyx_v_func); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_7, __pyx_v_func); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_11 = PyObject_SetAttr(__pyx_v_self, __pyx_v_old_attr, __pyx_t_2); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 2985, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2986:
+2987: self.generation = 0
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_generation, __pyx_int_0) < 0) __PYX_ERR(0, 2987, __pyx_L1_error)
+2988: self._last_client = None
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_last_client, Py_None) < 0) __PYX_ERR(0, 2988, __pyx_L1_error)
+2989: self._last_time = 0
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_last_time, __pyx_int_0) < 0) __PYX_ERR(0, 2989, __pyx_L1_error)
+2990: unrunnable = set()
__pyx_t_14 = PySet_New(0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_v_unrunnable = ((PyObject*)__pyx_t_14); __pyx_t_14 = 0;
2991:
+2992: self.datasets = dict()
__pyx_t_14 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2992, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_datasets, __pyx_t_14) < 0) __PYX_ERR(0, 2992, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
2993:
2994: # Prefix-keyed containers
2995:
2996: # Client state
+2997: clients = dict()
__pyx_t_14 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_v_clients = ((PyObject*)__pyx_t_14); __pyx_t_14 = 0;
+2998: for old_attr, new_attr, wrap in [
__pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_t_14; __Pyx_INCREF(__pyx_t_2); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; for (;;) { if (__pyx_t_12 >= 1) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_12); __Pyx_INCREF(__pyx_t_14); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 2998, __pyx_L1_error) #else __pyx_t_14 = PySequence_ITEM(__pyx_t_2, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); #endif if (likely(__pyx_t_14 != Py_None)) { PyObject* sequence = __pyx_t_14; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 2998, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_13 = PyTuple_GET_ITEM(sequence, 2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_13); #else __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_13 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); #endif __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 2998, __pyx_L1_error) } __Pyx_XDECREF_SET(__pyx_v_old_attr, __pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF_SET(__pyx_v_new_attr, __pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_wrap, __pyx_t_13); __pyx_t_13 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2999: ("wants_what", "wants_what", _legacy_task_key_set)
__Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_legacy_task_key_set); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_u_wants_what); __Pyx_GIVEREF(__pyx_n_u_wants_what); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_u_wants_what); __Pyx_INCREF(__pyx_n_u_wants_what); __Pyx_GIVEREF(__pyx_n_u_wants_what); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_wants_what); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_14); __pyx_t_14 = 0;
3000: ]:
+3001: func = operator.attrgetter(new_attr)
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_operator); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_attrgetter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_14 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_13, __pyx_v_new_attr) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_new_attr); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_func, __pyx_t_14); __pyx_t_14 = 0;
+3002: if wrap is not None:
__pyx_t_5 = (__pyx_v_wrap != Py_None);
__pyx_t_6 = (__pyx_t_5 != 0);
if (__pyx_t_6) {
/* … */
}
+3003: func = compose(wrap, func)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_compose); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_13 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_v_wrap, __pyx_v_func}; __pyx_t_14 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3003, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_GOTREF(__pyx_t_14); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_v_wrap, __pyx_v_func}; __pyx_t_14 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3003, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_GOTREF(__pyx_t_14); } else #endif { __pyx_t_4 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_13) { __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_13); __pyx_t_13 = NULL; } __Pyx_INCREF(__pyx_v_wrap); __Pyx_GIVEREF(__pyx_v_wrap); PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_7, __pyx_v_wrap); __Pyx_INCREF(__pyx_v_func); __Pyx_GIVEREF(__pyx_v_func); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_7, __pyx_v_func); __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_func, __pyx_t_14); __pyx_t_14 = 0;
+3004: setattr(self, old_attr, _StateLegacyMapping(clients, func))
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_StateLegacyMapping); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_clients, __pyx_v_func}; __pyx_t_14 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3004, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_14); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_clients, __pyx_v_func}; __pyx_t_14 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3004, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_14); } else #endif { __pyx_t_13 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_v_clients); __Pyx_GIVEREF(__pyx_v_clients); PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_7, __pyx_v_clients); __Pyx_INCREF(__pyx_v_func); __Pyx_GIVEREF(__pyx_v_func); PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_7, __pyx_v_func); __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_13, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_11 = PyObject_SetAttr(__pyx_v_self, __pyx_v_old_attr, __pyx_t_14); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 3004, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
3005:
3006: # Worker state
+3007: workers = sortedcontainers.SortedDict()
__Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_sortedcontainers); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_SortedDict); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_2 = (__pyx_t_14) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_14) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_workers = __pyx_t_2; __pyx_t_2 = 0;
+3008: for old_attr, new_attr, wrap in [
__pyx_t_2 = PyTuple_New(8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_tuple__27); __Pyx_GIVEREF(__pyx_tuple__27); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_tuple__27); __Pyx_INCREF(__pyx_tuple__28); __Pyx_GIVEREF(__pyx_tuple__28); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_tuple__28); __Pyx_INCREF(__pyx_tuple__29); __Pyx_GIVEREF(__pyx_tuple__29); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_tuple__29); __Pyx_INCREF(__pyx_tuple__30); __Pyx_GIVEREF(__pyx_tuple__30); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_tuple__30); __Pyx_INCREF(__pyx_tuple__31); __Pyx_GIVEREF(__pyx_tuple__31); PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_tuple__31); __Pyx_INCREF(__pyx_tuple__32); __Pyx_GIVEREF(__pyx_tuple__32); PyTuple_SET_ITEM(__pyx_t_2, 5, __pyx_tuple__32); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 6, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_2, 7, __pyx_t_14); __pyx_t_1 = 0; __pyx_t_14 = 0; __pyx_t_14 = __pyx_t_2; __Pyx_INCREF(__pyx_t_14); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (__pyx_t_12 >= 8) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_12); __Pyx_INCREF(__pyx_t_2); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 3008, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_14, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif if (likely(__pyx_t_2 != Py_None)) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 3008, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(__pyx_t_4); #else __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 3008, __pyx_L1_error) } __Pyx_XDECREF_SET(__pyx_v_old_attr, __pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_new_attr, __pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF_SET(__pyx_v_wrap, __pyx_t_4); __pyx_t_4 = 0; /* … */ } __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+3009: ("nthreads", "nthreads", None),
__pyx_tuple__27 = PyTuple_Pack(3, __pyx_n_u_nthreads, __pyx_n_u_nthreads, Py_None); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 3009, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__27); __Pyx_GIVEREF(__pyx_tuple__27);
+3010: ("worker_bytes", "nbytes", None),
__pyx_tuple__28 = PyTuple_Pack(3, __pyx_n_u_worker_bytes, __pyx_n_u_nbytes, Py_None); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(0, 3010, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__28); __Pyx_GIVEREF(__pyx_tuple__28);
+3011: ("worker_resources", "resources", None),
__pyx_tuple__29 = PyTuple_Pack(3, __pyx_n_u_worker_resources, __pyx_n_u_resources, Py_None); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 3011, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__29); __Pyx_GIVEREF(__pyx_tuple__29);
+3012: ("used_resources", "used_resources", None),
__pyx_tuple__30 = PyTuple_Pack(3, __pyx_n_u_used_resources, __pyx_n_u_used_resources, Py_None); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(0, 3012, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__30); __Pyx_GIVEREF(__pyx_tuple__30);
+3013: ("occupancy", "occupancy", None),
__pyx_tuple__31 = PyTuple_Pack(3, __pyx_n_u_occupancy, __pyx_n_u_occupancy, Py_None); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 3013, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__31); __Pyx_GIVEREF(__pyx_tuple__31);
+3014: ("worker_info", "metrics", None),
__pyx_tuple__32 = PyTuple_Pack(3, __pyx_n_u_worker_info, __pyx_n_u_metrics, Py_None); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(0, 3014, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__32); __Pyx_GIVEREF(__pyx_tuple__32);
+3015: ("processing", "processing", _legacy_task_key_dict),
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_legacy_task_key_dict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_processing_2); __Pyx_GIVEREF(__pyx_n_u_processing_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_processing_2); __Pyx_INCREF(__pyx_n_u_processing_2); __Pyx_GIVEREF(__pyx_n_u_processing_2); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_processing_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_2); __pyx_t_2 = 0;
+3016: ("has_what", "has_what", _legacy_task_key_set),
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_legacy_task_key_set); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = PyTuple_New(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF(__pyx_n_u_has_what); __Pyx_GIVEREF(__pyx_n_u_has_what); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_u_has_what); __Pyx_INCREF(__pyx_n_u_has_what); __Pyx_GIVEREF(__pyx_n_u_has_what); PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_n_u_has_what); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_2); __pyx_t_2 = 0;
3017: ]:
+3018: func = operator.attrgetter(new_attr)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_operator); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_attrgetter); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_4, __pyx_v_new_attr) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_v_new_attr); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF_SET(__pyx_v_func, __pyx_t_2); __pyx_t_2 = 0;
+3019: if wrap is not None:
__pyx_t_6 = (__pyx_v_wrap != Py_None);
__pyx_t_5 = (__pyx_t_6 != 0);
if (__pyx_t_5) {
/* … */
}
+3020: func = compose(wrap, func)
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_compose); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_4 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_13)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_wrap, __pyx_v_func}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3020, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_wrap, __pyx_v_func}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3020, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_1 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_v_wrap); __Pyx_GIVEREF(__pyx_v_wrap); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_7, __pyx_v_wrap); __Pyx_INCREF(__pyx_v_func); __Pyx_GIVEREF(__pyx_v_func); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_7, __pyx_v_func); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF_SET(__pyx_v_func, __pyx_t_2); __pyx_t_2 = 0;
+3021: setattr(self, old_attr, _StateLegacyMapping(workers, func))
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_StateLegacyMapping); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_1 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_13)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_workers, __pyx_v_func}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3021, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_workers, __pyx_v_func}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3021, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_4 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_workers); __Pyx_GIVEREF(__pyx_v_workers); PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_7, __pyx_v_workers); __Pyx_INCREF(__pyx_v_func); __Pyx_GIVEREF(__pyx_v_func); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_7, __pyx_v_func); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_11 = PyObject_SetAttr(__pyx_v_self, __pyx_v_old_attr, __pyx_t_2); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 3021, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3022:
+3023: host_info = defaultdict(dict)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_defaultdict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_14 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_13, ((PyObject *)(&PyDict_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)(&PyDict_Type))); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_host_info = __pyx_t_14; __pyx_t_14 = 0;
+3024: resources = defaultdict(dict)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_defaultdict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_14 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_13, ((PyObject *)(&PyDict_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)(&PyDict_Type))); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_resources = __pyx_t_14; __pyx_t_14 = 0;
+3025: aliases = dict()
__pyx_t_14 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_v_aliases = ((PyObject*)__pyx_t_14); __pyx_t_14 = 0;
3026:
+3027: self._task_state_collections = [unrunnable]
__pyx_t_14 = PyList_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF(__pyx_v_unrunnable); __Pyx_GIVEREF(__pyx_v_unrunnable); PyList_SET_ITEM(__pyx_t_14, 0, __pyx_v_unrunnable); if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_task_state_collections, __pyx_t_14) < 0) __PYX_ERR(0, 3027, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
3028:
+3029: self._worker_collections = [
__pyx_t_14 = PyList_New(4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3029, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF(__pyx_v_workers); __Pyx_GIVEREF(__pyx_v_workers); PyList_SET_ITEM(__pyx_t_14, 0, __pyx_v_workers); __Pyx_INCREF(__pyx_v_host_info); __Pyx_GIVEREF(__pyx_v_host_info); PyList_SET_ITEM(__pyx_t_14, 1, __pyx_v_host_info); __Pyx_INCREF(__pyx_v_resources); __Pyx_GIVEREF(__pyx_v_resources); PyList_SET_ITEM(__pyx_t_14, 2, __pyx_v_resources); __Pyx_INCREF(__pyx_v_aliases); __Pyx_GIVEREF(__pyx_v_aliases); PyList_SET_ITEM(__pyx_t_14, 3, __pyx_v_aliases); if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_worker_collections, __pyx_t_14) < 0) __PYX_ERR(0, 3029, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
3030: workers,
3031: host_info,
3032: resources,
3033: aliases,
3034: ]
3035:
+3036: self.plugins = list(plugins)
__pyx_t_14 = PySequence_List(__pyx_v_plugins); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_plugins, __pyx_t_14) < 0) __PYX_ERR(0, 3036, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+3037: self.transition_log = deque(
__Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_deque); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); /* … */ __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_transition_log, __pyx_t_13) < 0) __PYX_ERR(0, 3037, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+3038: maxlen=dask.config.get("distributed.scheduler.transition-log-length")
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_dask); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_config); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_get); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_13 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_1, __pyx_kp_u_distributed_scheduler_transition) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_u_distributed_scheduler_transition); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_maxlen, __pyx_t_13) < 0) __PYX_ERR(0, 3038, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
3039: )
+3040: self.log = deque(
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_deque); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); /* … */ __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_log, __pyx_t_14) < 0) __PYX_ERR(0, 3040, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+3041: maxlen=dask.config.get("distributed.scheduler.transition-log-length")
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_dask); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_config); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_get); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_14 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_1, __pyx_kp_u_distributed_scheduler_transition) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_u_distributed_scheduler_transition); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_maxlen, __pyx_t_14) < 0) __PYX_ERR(0, 3041, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
3042: )
+3043: self.events = defaultdict(lambda: deque(maxlen=100000))
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_8__init___lambda4(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_8__init___lambda4 = {"lambda4", (PyCFunction)__pyx_pw_11distributed_9scheduler_9Scheduler_8__init___lambda4, METH_NOARGS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_8__init___lambda4(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("lambda4 (wrapper)", 0);
__pyx_r = __pyx_lambda_funcdef_lambda4(__pyx_self);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_lambda_funcdef_lambda4(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("lambda4", 0);
__Pyx_XDECREF(__pyx_r);
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_deque); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_maxlen, __pyx_int_100000) < 0) __PYX_ERR(0, 3043, __pyx_L1_error)
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.__init__.lambda4", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_defaultdict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_8__init___lambda4, 0, __pyx_n_s_Scheduler___init___locals_lambda, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_4)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
}
}
__pyx_t_14 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_13) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_13);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_events, __pyx_t_14) < 0) __PYX_ERR(0, 3043, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+3044: self.event_counts = defaultdict(int)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_defaultdict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_14 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_13, ((PyObject *)(&PyInt_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)(&PyInt_Type))); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_event_counts, __pyx_t_14) < 0) __PYX_ERR(0, 3044, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+3045: self.worker_plugins = []
__pyx_t_14 = PyList_New(0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_worker_plugins, __pyx_t_14) < 0) __PYX_ERR(0, 3045, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
3046:
3047: worker_handlers = {
+3048: "task-finished": self.handle_task_finished,
__pyx_t_14 = __Pyx_PyDict_NewPresized(10); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_handle_task_finished); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_kp_u_task_finished, __pyx_t_2) < 0) __PYX_ERR(0, 3048, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3049: "task-erred": self.handle_task_erred,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_handle_task_erred); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_kp_u_task_erred, __pyx_t_2) < 0) __PYX_ERR(0, 3048, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3050: "release": self.handle_release_data,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_handle_release_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_release, __pyx_t_2) < 0) __PYX_ERR(0, 3048, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3051: "release-worker-data": self.release_worker_data,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_release_worker_data_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3051, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_kp_u_release_worker_data, __pyx_t_2) < 0) __PYX_ERR(0, 3048, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3052: "add-keys": self.add_keys,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_add_keys_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_kp_u_add_keys, __pyx_t_2) < 0) __PYX_ERR(0, 3048, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3053: "missing-data": self.handle_missing_data,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_handle_missing_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_kp_u_missing_data, __pyx_t_2) < 0) __PYX_ERR(0, 3048, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3054: "long-running": self.handle_long_running,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_handle_long_running); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_kp_u_long_running, __pyx_t_2) < 0) __PYX_ERR(0, 3048, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3055: "reschedule": self.reschedule,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reschedule); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_reschedule, __pyx_t_2) < 0) __PYX_ERR(0, 3048, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3056: "keep-alive": lambda *args, **kwargs: None,
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_8__init___1lambda5(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_8__init___1lambda5 = {"lambda5", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_8__init___1lambda5, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_8__init___1lambda5(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
CYTHON_UNUSED PyObject *__pyx_v_args = 0;
CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("lambda5 (wrapper)", 0);
if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "lambda5", 1))) return NULL;
__Pyx_INCREF(__pyx_args);
__pyx_v_args = __pyx_args;
__pyx_r = __pyx_lambda_funcdef_lambda5(__pyx_self, __pyx_v_args, __pyx_v_kwargs);
/* function exit code */
__Pyx_XDECREF(__pyx_v_args);
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_lambda_funcdef_lambda5(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("lambda5", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_8__init___1lambda5, 0, __pyx_n_s_Scheduler___init___locals_lambda, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3056, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_t_14, __pyx_kp_u_keep_alive, __pyx_t_2) < 0) __PYX_ERR(0, 3048, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3057: "log-event": self.log_worker_event,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_log_worker_event); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_kp_u_log_event, __pyx_t_2) < 0) __PYX_ERR(0, 3048, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_worker_handlers = ((PyObject*)__pyx_t_14); __pyx_t_14 = 0;
3058: }
3059:
3060: client_handlers = {
+3061: "update-graph": self.update_graph,
__pyx_t_14 = __Pyx_PyDict_NewPresized(9); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_update_graph_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_kp_u_update_graph, __pyx_t_2) < 0) __PYX_ERR(0, 3061, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3062: "update-graph-hlg": self.update_graph_hlg,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_update_graph_hlg_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_kp_u_update_graph_hlg, __pyx_t_2) < 0) __PYX_ERR(0, 3061, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3063: "client-desires-keys": self.client_desires_keys,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_client_desires_keys_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3063, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_kp_u_client_desires_keys, __pyx_t_2) < 0) __PYX_ERR(0, 3061, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3064: "update-data": self.update_data,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_update_data_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_kp_u_update_data, __pyx_t_2) < 0) __PYX_ERR(0, 3061, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3065: "report-key": self.report_on_key,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_report_on_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_kp_u_report_key, __pyx_t_2) < 0) __PYX_ERR(0, 3061, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3066: "client-releases-keys": self.client_releases_keys,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_client_releases_keys_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_kp_u_client_releases_keys, __pyx_t_2) < 0) __PYX_ERR(0, 3061, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3067: "heartbeat-client": self.client_heartbeat,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_client_heartbeat); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_kp_u_heartbeat_client, __pyx_t_2) < 0) __PYX_ERR(0, 3061, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3068: "close-client": self.remove_client,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_remove_client); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_kp_u_close_client, __pyx_t_2) < 0) __PYX_ERR(0, 3061, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3069: "restart": self.restart,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_restart); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_restart, __pyx_t_2) < 0) __PYX_ERR(0, 3061, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_client_handlers = ((PyObject*)__pyx_t_14); __pyx_t_14 = 0;
3070: }
3071:
+3072: self.handlers = {
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_handlers, __pyx_t_14) < 0) __PYX_ERR(0, 3072, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+3073: "register-client": self.add_client,
__pyx_t_14 = __Pyx_PyDict_NewPresized(44); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_add_client); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_kp_u_register_client, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3074: "scatter": self.scatter,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_scatter); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_scatter, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3075: "register-worker": self.add_worker,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_add_worker); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_kp_u_register_worker, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3076: "unregister": self.remove_worker,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_remove_worker); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_unregister, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3077: "gather": self.gather,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_gather); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3077, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_gather, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3078: "cancel": self.stimulus_cancel,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_stimulus_cancel); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_cancel, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3079: "retry": self.stimulus_retry,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_stimulus_retry); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_retry, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3080: "feed": self.feed,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_feed); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3080, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_feed, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3081: "terminate": self.close,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_close); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_terminate, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3082: "broadcast": self.broadcast,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_broadcast); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3082, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_broadcast, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3083: "proxy": self.proxy,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_proxy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_proxy, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3084: "ncores": self.get_ncores,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_get_ncores); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_ncores, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3085: "has_what": self.get_has_what,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_get_has_what); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_has_what, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3086: "who_has": self.get_who_has,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_get_who_has); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_who_has, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3087: "processing": self.get_processing,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_get_processing); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_processing_2, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3088: "call_stack": self.get_call_stack,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_get_call_stack); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_call_stack, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3089: "profile": self.get_profile,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_get_profile); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_profile, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3090: "performance_report": self.performance_report,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_performance_report); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_performance_report, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3091: "get_logs": self.get_logs,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_get_logs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_get_logs, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3092: "logs": self.get_logs,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_get_logs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_logs, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3093: "worker_logs": self.get_worker_logs,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_get_worker_logs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_worker_logs, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3094: "log_event": self.log_worker_event,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_log_worker_event); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_log_event_2, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3095: "events": self.get_events,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_get_events); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_events, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3096: "nbytes": self.get_nbytes,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_get_nbytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_nbytes, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3097: "versions": self.versions,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_versions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_versions, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3098: "add_keys": self.add_keys,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_add_keys_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3098, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_add_keys_2, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3099: "rebalance": self.rebalance,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_rebalance); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_rebalance, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3100: "replicate": self.replicate,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_replicate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_replicate, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3101: "start_ipython": self.start_ipython,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_start_ipython); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_start_ipython, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3102: "run_function": self.run_function,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_run_function); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_run_function, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3103: "update_data": self.update_data,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_update_data_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_update_data_2, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3104: "set_resources": self.add_resources,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_add_resources); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_set_resources, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3105: "retire_workers": self.retire_workers,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_retire_workers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_retire_workers, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3106: "get_metadata": self.get_metadata,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_get_metadata); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_get_metadata, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3107: "set_metadata": self.set_metadata,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_metadata); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_set_metadata, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3108: "heartbeat_worker": self.heartbeat_worker,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_heartbeat_worker); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_heartbeat_worker, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3109: "get_task_status": self.get_task_status,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_get_task_status); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_get_task_status, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3110: "get_task_stream": self.get_task_stream,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_get_task_stream); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_get_task_stream, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3111: "register_worker_plugin": self.register_worker_plugin,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_register_worker_plugin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_register_worker_plugin, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3112: "adaptive_target": self.adaptive_target,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_adaptive_target); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_adaptive_target, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3113: "workers_to_close": self.workers_to_close,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_workers_to_close); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_workers_to_close, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3114: "subscribe_worker_status": self.subscribe_worker_status,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_subscribe_worker_status); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_subscribe_worker_status, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3115: "start_task_metadata": self.start_task_metadata,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_start_task_metadata); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_start_task_metadata, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3116: "stop_task_metadata": self.stop_task_metadata,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_stop_task_metadata); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_n_u_stop_task_metadata, __pyx_t_2) < 0) __PYX_ERR(0, 3073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3117: }
3118:
+3119: self._transitions = {
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_transitions, __pyx_t_14) < 0) __PYX_ERR(0, 3119, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+3120: ("released", "waiting"): self.transition_released_waiting,
__pyx_t_14 = __Pyx_PyDict_NewPresized(15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition_released_waiting); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_tuple__33, __pyx_t_2) < 0) __PYX_ERR(0, 3120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__33 = PyTuple_Pack(2, __pyx_n_u_released, __pyx_n_u_waiting); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 3120, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__33); __Pyx_GIVEREF(__pyx_tuple__33);
+3121: ("waiting", "released"): self.transition_waiting_released,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition_waiting_released); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_tuple__34, __pyx_t_2) < 0) __PYX_ERR(0, 3120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__34 = PyTuple_Pack(2, __pyx_n_u_waiting, __pyx_n_u_released); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(0, 3121, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__34); __Pyx_GIVEREF(__pyx_tuple__34);
+3122: ("waiting", "processing"): self.transition_waiting_processing,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition_waiting_processing); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_tuple__35, __pyx_t_2) < 0) __PYX_ERR(0, 3120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__35 = PyTuple_Pack(2, __pyx_n_u_waiting, __pyx_n_u_processing_2); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 3122, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__35); __Pyx_GIVEREF(__pyx_tuple__35);
+3123: ("waiting", "memory"): self.transition_waiting_memory,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition_waiting_memory); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_tuple__36, __pyx_t_2) < 0) __PYX_ERR(0, 3120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__36 = PyTuple_Pack(2, __pyx_n_u_waiting, __pyx_n_u_memory_2); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(0, 3123, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__36); __Pyx_GIVEREF(__pyx_tuple__36);
+3124: ("processing", "released"): self.transition_processing_released,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition_processing_released); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_tuple__37, __pyx_t_2) < 0) __PYX_ERR(0, 3120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__37 = PyTuple_Pack(2, __pyx_n_u_processing_2, __pyx_n_u_released); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 3124, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__37); __Pyx_GIVEREF(__pyx_tuple__37);
+3125: ("processing", "memory"): self.transition_processing_memory,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition_processing_memory); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_tuple__38, __pyx_t_2) < 0) __PYX_ERR(0, 3120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__38 = PyTuple_Pack(2, __pyx_n_u_processing_2, __pyx_n_u_memory_2); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(0, 3125, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__38); __Pyx_GIVEREF(__pyx_tuple__38);
+3126: ("processing", "erred"): self.transition_processing_erred,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition_processing_erred); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_tuple__39, __pyx_t_2) < 0) __PYX_ERR(0, 3120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__39 = PyTuple_Pack(2, __pyx_n_u_processing_2, __pyx_n_u_erred); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(0, 3126, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__39); __Pyx_GIVEREF(__pyx_tuple__39);
+3127: ("no-worker", "released"): self.transition_no_worker_released,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition_no_worker_released); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_tuple__40, __pyx_t_2) < 0) __PYX_ERR(0, 3120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__40 = PyTuple_Pack(2, __pyx_kp_u_no_worker, __pyx_n_u_released); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(0, 3127, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__40); __Pyx_GIVEREF(__pyx_tuple__40);
+3128: ("no-worker", "waiting"): self.transition_no_worker_waiting,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition_no_worker_waiting); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_tuple__41, __pyx_t_2) < 0) __PYX_ERR(0, 3120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__41 = PyTuple_Pack(2, __pyx_kp_u_no_worker, __pyx_n_u_waiting); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(0, 3128, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__41); __Pyx_GIVEREF(__pyx_tuple__41);
+3129: ("released", "forgotten"): self.transition_released_forgotten,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition_released_forgotten); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_tuple__42, __pyx_t_2) < 0) __PYX_ERR(0, 3120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__42 = PyTuple_Pack(2, __pyx_n_u_released, __pyx_n_u_forgotten); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(0, 3129, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__42); __Pyx_GIVEREF(__pyx_tuple__42);
+3130: ("memory", "forgotten"): self.transition_memory_forgotten,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition_memory_forgotten); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_tuple__43, __pyx_t_2) < 0) __PYX_ERR(0, 3120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__43 = PyTuple_Pack(2, __pyx_n_u_memory_2, __pyx_n_u_forgotten); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(0, 3130, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__43); __Pyx_GIVEREF(__pyx_tuple__43);
+3131: ("erred", "forgotten"): self.transition_released_forgotten,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition_released_forgotten); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_tuple__44, __pyx_t_2) < 0) __PYX_ERR(0, 3120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__44 = PyTuple_Pack(2, __pyx_n_u_erred, __pyx_n_u_forgotten); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(0, 3131, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__44); __Pyx_GIVEREF(__pyx_tuple__44);
+3132: ("erred", "released"): self.transition_erred_released,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition_erred_released); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_tuple__45, __pyx_t_2) < 0) __PYX_ERR(0, 3120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__45 = PyTuple_Pack(2, __pyx_n_u_erred, __pyx_n_u_released); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(0, 3132, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__45); __Pyx_GIVEREF(__pyx_tuple__45);
+3133: ("memory", "released"): self.transition_memory_released,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition_memory_released); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_tuple__46, __pyx_t_2) < 0) __PYX_ERR(0, 3120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__46 = PyTuple_Pack(2, __pyx_n_u_memory_2, __pyx_n_u_released); if (unlikely(!__pyx_tuple__46)) __PYX_ERR(0, 3133, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__46); __Pyx_GIVEREF(__pyx_tuple__46);
+3134: ("released", "erred"): self.transition_released_erred,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition_released_erred); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_14, __pyx_tuple__47, __pyx_t_2) < 0) __PYX_ERR(0, 3120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__47 = PyTuple_Pack(2, __pyx_n_u_released, __pyx_n_u_erred); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(0, 3134, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__47); __Pyx_GIVEREF(__pyx_tuple__47);
3135: }
3136:
+3137: connection_limit = get_fileno_limit() / 2
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_get_fileno_limit); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_14 = (__pyx_t_13) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_13) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_TrueDivideObjC(__pyx_t_14, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_v_connection_limit = __pyx_t_2; __pyx_t_2 = 0;
3138:
+3139: super().__init__(
__pyx_t_2 = __Pyx_CyFunction_GetClassObj(__pyx_self); if (!__pyx_t_2) { PyErr_SetString(PyExc_SystemError, "super(): empty __class__ cell"); __PYX_ERR(0, 3139, __pyx_L1_error) } __Pyx_INCREF(__pyx_t_2); __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_2); __Pyx_INCREF(__pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_v_self); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_14, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+3140: aliases=aliases,
__pyx_t_13 = __Pyx_PyDict_NewPresized(14); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_aliases, __pyx_v_aliases) < 0) __PYX_ERR(0, 3140, __pyx_L1_error)
+3141: handlers=self.handlers,
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_handlers); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_handlers, __pyx_t_4) < 0) __PYX_ERR(0, 3140, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+3142: stream_handlers=merge(worker_handlers, client_handlers),
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_merge); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_worker_handlers, __pyx_v_client_handlers}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3142, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_worker_handlers, __pyx_v_client_handlers}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3142, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif { __pyx_t_15 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_worker_handlers); __Pyx_GIVEREF(__pyx_v_worker_handlers); PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_7, __pyx_v_worker_handlers); __Pyx_INCREF(__pyx_v_client_handlers); __Pyx_GIVEREF(__pyx_v_client_handlers); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_7, __pyx_v_client_handlers); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_15, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_stream_handlers, __pyx_t_4) < 0) __PYX_ERR(0, 3140, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+3143: io_loop=self.loop,
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_loop); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_io_loop, __pyx_t_4) < 0) __PYX_ERR(0, 3140, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+3144: connection_limit=connection_limit,
if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_connection_limit, __pyx_v_connection_limit) < 0) __PYX_ERR(0, 3140, __pyx_L1_error)
+3145: deserialize=False,
if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_deserialize, Py_False) < 0) __PYX_ERR(0, 3140, __pyx_L1_error)
+3146: connection_args=self.connection_args,
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_connection_args); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_connection_args, __pyx_t_4) < 0) __PYX_ERR(0, 3140, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+3147: clients=clients,
if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_clients, __pyx_v_clients) < 0) __PYX_ERR(0, 3140, __pyx_L1_error)
+3148: workers=workers,
if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_workers, __pyx_v_workers) < 0) __PYX_ERR(0, 3140, __pyx_L1_error)
+3149: host_info=host_info,
if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_host_info, __pyx_v_host_info) < 0) __PYX_ERR(0, 3140, __pyx_L1_error)
+3150: resources=resources,
if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_resources, __pyx_v_resources) < 0) __PYX_ERR(0, 3140, __pyx_L1_error)
+3151: tasks=tasks,
if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_tasks, __pyx_v_tasks) < 0) __PYX_ERR(0, 3140, __pyx_L1_error)
+3152: unrunnable=unrunnable,
if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_unrunnable, __pyx_v_unrunnable) < 0) __PYX_ERR(0, 3140, __pyx_L1_error)
+3153: validate=validate,
if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_validate, __pyx_v_validate) < 0) __PYX_ERR(0, 3140, __pyx_L1_error) __pyx_t_2 = __pyx_t_13; __pyx_t_13 = 0;
+3154: **kwargs,
if (__Pyx_MergeKeywords(__pyx_t_2, __pyx_v_kwargs) < 0) __PYX_ERR(0, 3154, __pyx_L1_error)
3155: )
3156:
+3157: if self.worker_ttl:
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_worker_ttl); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3157, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (__pyx_t_5) { /* … */ }
+3158: pc = PeriodicCallback(self.check_worker_ttl, self.worker_ttl)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_PeriodicCallback); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_check_worker_ttl); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_worker_ttl); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_14, __pyx_t_4}; __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3158, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_14, __pyx_t_4}; __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3158, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { __pyx_t_15 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_7, __pyx_t_14); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_7, __pyx_t_4); __pyx_t_14 = 0; __pyx_t_4 = 0; __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_15, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_pc = __pyx_t_13; __pyx_t_13 = 0;
+3159: self.periodic_callbacks["worker-ttl"] = pc
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_periodic_callbacks); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (unlikely(PyObject_SetItem(__pyx_t_13, __pyx_kp_u_worker_ttl_2, __pyx_v_pc) < 0)) __PYX_ERR(0, 3159, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
3160:
+3161: if self.idle_timeout:
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_idle_timeout); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3161, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (__pyx_t_5) { /* … */ }
+3162: pc = PeriodicCallback(self.check_idle, self.idle_timeout / 4)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_PeriodicCallback); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_check_idle); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_idle_timeout); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_14 = __Pyx_PyInt_TrueDivideObjC(__pyx_t_4, __pyx_int_4, 4, 0, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_15, __pyx_t_14}; __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3162, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_15, __pyx_t_14}; __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3162, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } else #endif { __pyx_t_1 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_7, __pyx_t_15); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_7, __pyx_t_14); __pyx_t_15 = 0; __pyx_t_14 = 0; __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF_SET(__pyx_v_pc, __pyx_t_13); __pyx_t_13 = 0;
+3163: self.periodic_callbacks["idle-timeout"] = pc
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_periodic_callbacks); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (unlikely(PyObject_SetItem(__pyx_t_13, __pyx_kp_u_idle_timeout_2, __pyx_v_pc) < 0)) __PYX_ERR(0, 3163, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
3164:
+3165: if extensions is None:
__pyx_t_5 = (__pyx_v_extensions == Py_None);
__pyx_t_6 = (__pyx_t_5 != 0);
if (__pyx_t_6) {
/* … */
}
+3166: extensions = list(DEFAULT_EXTENSIONS)
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_DEFAULT_EXTENSIONS); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_2 = PySequence_List(__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF_SET(__pyx_v_extensions, __pyx_t_2); __pyx_t_2 = 0;
+3167: if dask.config.get("distributed.scheduler.work-stealing"):
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_dask); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_config); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_get); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_1, __pyx_kp_u_distributed_scheduler_work_steal) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_u_distributed_scheduler_work_steal); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3167, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_6) { /* … */ }
+3168: extensions.append(WorkStealing)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_WorkStealing); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_11 = __Pyx_PyObject_Append(__pyx_v_extensions, __pyx_t_2); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 3168, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3169: for ext in extensions:
if (likely(PyList_CheckExact(__pyx_v_extensions)) || PyTuple_CheckExact(__pyx_v_extensions)) { __pyx_t_2 = __pyx_v_extensions; __Pyx_INCREF(__pyx_t_2); __pyx_t_12 = 0; __pyx_t_16 = NULL; } else { __pyx_t_12 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_extensions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3169, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_16)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_13 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_12); __Pyx_INCREF(__pyx_t_13); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 3169, __pyx_L1_error) #else __pyx_t_13 = PySequence_ITEM(__pyx_t_2, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); #endif } else { if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_12); __Pyx_INCREF(__pyx_t_13); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 3169, __pyx_L1_error) #else __pyx_t_13 = PySequence_ITEM(__pyx_t_2, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); #endif } } else { __pyx_t_13 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_13)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 3169, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_13); } __Pyx_XDECREF_SET(__pyx_v_ext, __pyx_t_13); __pyx_t_13 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3170: ext(self)
__Pyx_INCREF(__pyx_v_ext); __pyx_t_1 = __pyx_v_ext; __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_13 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_14, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_self); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
3171:
+3172: setproctitle("dask-scheduler [not started]")
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_setproctitle); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_1, __pyx_kp_u_dask_scheduler_not_started) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_u_dask_scheduler_not_started); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3173: Scheduler._instances.add(self)
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_Scheduler); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_instances); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_add); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_1, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_v_self); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3174: self.rpc.allow_offload = False
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_rpc); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_allow_offload, Py_False) < 0) __PYX_ERR(0, 3174, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3175: self.status = Status.undefined
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Status); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_undefined); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_status, __pyx_t_13) < 0) __PYX_ERR(0, 3175, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
3176:
3177: ##################
3178: # Administration #
3179: ##################
3180:
+3181: def __repr__(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_3__repr__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_3__repr__ = {"__repr__", (PyCFunction)__pyx_pw_11distributed_9scheduler_9Scheduler_3__repr__, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_3__repr__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_2__repr__(__pyx_self, ((PyObject *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_2__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__repr__", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__158 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_parent); if (unlikely(!__pyx_tuple__158)) __PYX_ERR(0, 3181, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__158);
__Pyx_GIVEREF(__pyx_tuple__158);
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_3__repr__, 0, __pyx_n_s_Scheduler___repr, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__159)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3181, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_repr, __pyx_t_12) < 0) __PYX_ERR(0, 3181, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_codeobj__159 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__158, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_repr, 3181, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__159)) __PYX_ERR(0, 3181, __pyx_L1_error)
+3182: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+3183: return '<Scheduler: "%s" processes: %d cores: %d>' % (
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; __Pyx_INCREF(__pyx_kp_u_Scheduler_2); __pyx_t_2 += 13; __Pyx_GIVEREF(__pyx_kp_u_Scheduler_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_Scheduler_2); /* … */ __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_1, 7, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0;
+3184: self.address,
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_address); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_4), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_processes); __pyx_t_2 += 13; __Pyx_GIVEREF(__pyx_kp_u_processes); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u_processes);
+3185: len(parent._workers),
__pyx_t_5 = __pyx_v_parent->_workers; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = PyObject_Length(__pyx_t_5); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 3185, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_6, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_cores); __pyx_t_2 += 8; __Pyx_GIVEREF(__pyx_kp_u_cores); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_kp_u_cores);
+3186: parent._total_nthreads,
__pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_parent->_total_nthreads, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u__3); __pyx_t_2 += 1; __Pyx_GIVEREF(__pyx_kp_u__3); PyTuple_SET_ITEM(__pyx_t_1, 6, __pyx_kp_u__3);
3187: )
3188:
+3189: def identity(self, comm=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_5identity(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_4identity[] = " Basic information about ourselves and our cluster ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_5identity = {"identity", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_5identity, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_4identity};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_5identity(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("identity (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,0};
PyObject* values[2] = {0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "identity") < 0)) __PYX_ERR(0, 3189, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("identity", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3189, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.identity", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_4identity(__pyx_self, __pyx_v_self, __pyx_v_comm);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_4identity(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_v_d = NULL;
PyObject *__pyx_9genexpr30__pyx_v_key = NULL;
PyObject *__pyx_9genexpr30__pyx_v_v = NULL;
PyObject *__pyx_9genexpr31__pyx_v_worker = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("identity", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.identity", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_v_d);
__Pyx_XDECREF(__pyx_9genexpr30__pyx_v_key);
__Pyx_XDECREF(__pyx_9genexpr30__pyx_v_v);
__Pyx_XDECREF(__pyx_9genexpr31__pyx_v_worker);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__160 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_parent, __pyx_n_s_d, __pyx_n_s_key, __pyx_n_s_v, __pyx_n_s_worker); if (unlikely(!__pyx_tuple__160)) __PYX_ERR(0, 3189, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__160);
__Pyx_GIVEREF(__pyx_tuple__160);
__pyx_codeobj__161 = (PyObject*)__Pyx_PyCode_New(2, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__160, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_identity, 3189, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__161)) __PYX_ERR(0, 3189, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_5identity, 0, __pyx_n_s_Scheduler_identity, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__161)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3189, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__162);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_identity, __pyx_t_12) < 0) __PYX_ERR(0, 3189, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__162 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__162)) __PYX_ERR(0, 3189, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__162);
__Pyx_GIVEREF(__pyx_tuple__162);
3190: """ Basic information about ourselves and our cluster """
+3191: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
3192: d = {
+3193: "type": type(self).__name__,
__pyx_t_1 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_self)), __pyx_n_s_name_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_type, __pyx_t_2) < 0) __PYX_ERR(0, 3193, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3194: "id": str(self.id),
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_id, __pyx_t_3) < 0) __PYX_ERR(0, 3193, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3195: "address": self.address,
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_address); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_address, __pyx_t_3) < 0) __PYX_ERR(0, 3193, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; { /* enter inner scope */
+3196: "services": {key: v.port for (key, v) in self.services.items()},
__pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3196, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 0; __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_services); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3196, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_t_7 == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); __PYX_ERR(0, 3196, __pyx_L5_error) } __pyx_t_8 = __Pyx_dict_iterator(__pyx_t_7, 0, __pyx_n_s_items, (&__pyx_t_5), (&__pyx_t_6)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3196, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = __pyx_t_8; __pyx_t_8 = 0; while (1) { __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_5, &__pyx_t_4, &__pyx_t_8, &__pyx_t_7, NULL, __pyx_t_6); if (unlikely(__pyx_t_9 == 0)) break; if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 3196, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_7); __Pyx_XDECREF_SET(__pyx_9genexpr30__pyx_v_key, __pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF_SET(__pyx_9genexpr30__pyx_v_v, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_9genexpr30__pyx_v_v, __pyx_n_s_port); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3196, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(PyDict_SetItem(__pyx_t_3, (PyObject*)__pyx_9genexpr30__pyx_v_key, (PyObject*)__pyx_t_7))) __PYX_ERR(0, 3196, __pyx_L5_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_9genexpr30__pyx_v_key); __pyx_9genexpr30__pyx_v_key = 0; __Pyx_XDECREF(__pyx_9genexpr30__pyx_v_v); __pyx_9genexpr30__pyx_v_v = 0; goto __pyx_L8_exit_scope; __pyx_L5_error:; __Pyx_XDECREF(__pyx_9genexpr30__pyx_v_key); __pyx_9genexpr30__pyx_v_key = 0; __Pyx_XDECREF(__pyx_9genexpr30__pyx_v_v); __pyx_9genexpr30__pyx_v_v = 0; goto __pyx_L1_error; __pyx_L8_exit_scope:; } /* exit inner scope */ if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_services, __pyx_t_3) < 0) __PYX_ERR(0, 3193, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3197: "started": self.time_started,
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_time_started); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_started, __pyx_t_3) < 0) __PYX_ERR(0, 3193, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; { /* enter inner scope */
+3198: "workers": {
__pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3198, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_3);
+3199: worker.address: worker.identity() for worker in parent._workers.values()
__pyx_t_5 = 0;
if (unlikely(__pyx_v_parent->_workers == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
__PYX_ERR(0, 3199, __pyx_L11_error)
}
__pyx_t_7 = __Pyx_dict_iterator(__pyx_v_parent->_workers, 0, __pyx_n_s_values, (&__pyx_t_4), (&__pyx_t_6)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3199, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_2);
__pyx_t_2 = __pyx_t_7;
__pyx_t_7 = 0;
while (1) {
__pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_4, &__pyx_t_5, NULL, &__pyx_t_7, NULL, __pyx_t_6);
if (unlikely(__pyx_t_9 == 0)) break;
if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 3199, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_XDECREF_SET(__pyx_9genexpr31__pyx_v_worker, __pyx_t_7);
__pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_9genexpr31__pyx_v_worker, __pyx_n_s_address); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3199, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_9genexpr31__pyx_v_worker, __pyx_n_s_identity); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3199, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_11 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
__pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10);
if (likely(__pyx_t_11)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
__Pyx_INCREF(__pyx_t_11);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_10, function);
}
}
__pyx_t_8 = (__pyx_t_11) ? __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_11) : __Pyx_PyObject_CallNoArg(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3199, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (unlikely(PyDict_SetItem(__pyx_t_3, (PyObject*)__pyx_t_7, (PyObject*)__pyx_t_8))) __PYX_ERR(0, 3199, __pyx_L11_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_9genexpr31__pyx_v_worker); __pyx_9genexpr31__pyx_v_worker = 0;
goto __pyx_L14_exit_scope;
__pyx_L11_error:;
__Pyx_XDECREF(__pyx_9genexpr31__pyx_v_worker); __pyx_9genexpr31__pyx_v_worker = 0;
goto __pyx_L1_error;
__pyx_L14_exit_scope:;
} /* exit inner scope */
if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_workers, __pyx_t_3) < 0) __PYX_ERR(0, 3193, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_d = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
3200: },
3201: }
+3202: return d
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_d); __pyx_r = __pyx_v_d; goto __pyx_L0;
3203:
+3204: def get_worker_service_addr(self, worker, service_name, protocol=False):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_7get_worker_service_addr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_6get_worker_service_addr[] = "\n Get the (host, port) address of the named service on the *worker*.\n Returns None if the service doesn't exist.\n\n Parameters\n ----------\n worker : address\n service_name : str\n Common services include 'bokeh' and 'nanny'\n protocol : boolean\n Whether or not to include a full address with protocol (True)\n or just a (host, port) pair\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_7get_worker_service_addr = {"get_worker_service_addr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_7get_worker_service_addr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_6get_worker_service_addr};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_7get_worker_service_addr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_worker = 0;
PyObject *__pyx_v_service_name = 0;
PyObject *__pyx_v_protocol = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_worker_service_addr (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_worker,&__pyx_n_s_service_name,&__pyx_n_s_protocol,0};
PyObject* values[4] = {0,0,0,0};
values[3] = ((PyObject *)((PyObject *)Py_False));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("get_worker_service_addr", 0, 3, 4, 1); __PYX_ERR(0, 3204, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_service_name)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("get_worker_service_addr", 0, 3, 4, 2); __PYX_ERR(0, 3204, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_protocol);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_worker_service_addr") < 0)) __PYX_ERR(0, 3204, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_worker = values[1];
__pyx_v_service_name = values[2];
__pyx_v_protocol = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("get_worker_service_addr", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3204, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_worker_service_addr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_6get_worker_service_addr(__pyx_self, __pyx_v_self, __pyx_v_worker, __pyx_v_service_name, __pyx_v_protocol);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_6get_worker_service_addr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_worker, PyObject *__pyx_v_service_name, PyObject *__pyx_v_protocol) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_v_port = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_worker_service_addr", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_worker_service_addr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF(__pyx_v_port);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_10generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__163 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_worker, __pyx_n_s_service_name, __pyx_n_s_protocol, __pyx_n_s_parent, __pyx_n_s_ws, __pyx_n_s_port); if (unlikely(!__pyx_tuple__163)) __PYX_ERR(0, 3204, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__163);
__Pyx_GIVEREF(__pyx_tuple__163);
__pyx_codeobj__164 = (PyObject*)__Pyx_PyCode_New(4, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__163, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_get_worker_service_addr, 3204, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__164)) __PYX_ERR(0, 3204, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_7get_worker_service_addr, 0, __pyx_n_s_Scheduler_get_worker_service_add, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__164)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3204, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__165);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_get_worker_service_addr, __pyx_t_12) < 0) __PYX_ERR(0, 3204, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__165 = PyTuple_Pack(1, ((PyObject *)Py_False)); if (unlikely(!__pyx_tuple__165)) __PYX_ERR(0, 3204, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__165);
__Pyx_GIVEREF(__pyx_tuple__165);
3205: """
3206: Get the (host, port) address of the named service on the *worker*.
3207: Returns None if the service doesn't exist.
3208:
3209: Parameters
3210: ----------
3211: worker : address
3212: service_name : str
3213: Common services include 'bokeh' and 'nanny'
3214: protocol : boolean
3215: Whether or not to include a full address with protocol (True)
3216: or just a (host, port) pair
3217: """
+3218: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+3219: ws: WorkerState = parent._workers[worker]
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_parent->_workers, __pyx_v_worker); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 3219, __pyx_L1_error) __pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1); __pyx_t_1 = 0;
+3220: port = ws._services.get(service_name)
if (unlikely(__pyx_v_ws->_services == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 3220, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_ws->_services, __pyx_v_service_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_port = __pyx_t_1;
__pyx_t_1 = 0;
+3221: if port is None:
__pyx_t_2 = (__pyx_v_port == Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
}
+3222: return None
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
+3223: elif protocol:
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_protocol); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3223, __pyx_L1_error) if (__pyx_t_3) { /* … */ }
+3224: return "%(protocol)s://%(host)s:%(port)d" % {
__Pyx_XDECREF(__pyx_r); /* … */ __pyx_t_5 = PyUnicode_Format(__pyx_kp_u_protocol_s_host_s_port_d, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0;
+3225: "protocol": ws._address.split("://")[0],
__pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_ws->_address == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "split"); __PYX_ERR(0, 3225, __pyx_L1_error) } __pyx_t_4 = PyUnicode_Split(__pyx_v_ws->_address, __pyx_kp_u__48, -1L); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_GetItemInt_List(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_protocol, __pyx_t_5) < 0) __PYX_ERR(0, 3225, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3226: "host": ws.host,
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_ws), __pyx_n_s_host); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_host, __pyx_t_5) < 0) __PYX_ERR(0, 3225, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3227: "port": port,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_port, __pyx_v_port) < 0) __PYX_ERR(0, 3225, __pyx_L1_error)
3228: }
3229: else:
+3230: return ws.host, port
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_ws), __pyx_n_s_host); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_5);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5);
__Pyx_INCREF(__pyx_v_port);
__Pyx_GIVEREF(__pyx_v_port);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_port);
__pyx_t_5 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
}
3231:
+3232: async def start(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_9start(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_8start[] = " Clear out old state and restart all running coroutines ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_9start = {"start", (PyCFunction)__pyx_pw_11distributed_9scheduler_9Scheduler_9start, METH_O, __pyx_doc_11distributed_9scheduler_9Scheduler_8start};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_9start(PyObject *__pyx_self, PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("start (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_8start(__pyx_self, ((PyObject *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_8start(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_9_start *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("start", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_9_start *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_9_start(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_9_start, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_9_start *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 3232, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_10generator1, __pyx_codeobj__49, (PyObject *) __pyx_cur_scope, __pyx_n_s_start, __pyx_n_s_Scheduler_start, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 3232, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
gen->classobj = __Pyx_CyFunction_GetClassObj(__pyx_self);
__Pyx_INCREF(gen->classobj);
__Pyx_GIVEREF(gen->classobj);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.start", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_10generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("start", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3232, __pyx_L1_error)
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_AddTraceback("start", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_13generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__166 = PyTuple_Pack(13, __pyx_n_s_self, __pyx_n_s_c, __pyx_n_s_addr, __pyx_n_s_listen_ip, __pyx_n_s_listener, __pyx_n_s_k, __pyx_n_s_v, __pyx_n_s_f, __pyx_n_s_fn, __pyx_n_s_del_scheduler_file, __pyx_n_s_del_scheduler_file, __pyx_n_s_preload, __pyx_n_s_plugin); if (unlikely(!__pyx_tuple__166)) __PYX_ERR(0, 3232, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__166);
__Pyx_GIVEREF(__pyx_tuple__166);
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_9start, 0, __pyx_n_s_Scheduler_start, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3232, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_INCREF(__pyx_t_12);
PyList_Append(__pyx_t_13, __pyx_t_12);
__Pyx_GIVEREF(__pyx_t_12);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_start, __pyx_t_12) < 0) __PYX_ERR(0, 3232, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_codeobj__49 = (PyObject*)__Pyx_PyCode_New(1, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__166, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_start, 3232, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__49)) __PYX_ERR(0, 3232, __pyx_L1_error)
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_9_start {
PyObject_HEAD
PyObject *__pyx_v_addr;
PyObject *__pyx_v_c;
PyObject *__pyx_v_del_scheduler_file;
PyObject *__pyx_v_f;
PyObject *__pyx_v_fn;
PyObject *__pyx_v_k;
PyObject *__pyx_v_listen_ip;
PyObject *__pyx_v_listener;
PyObject *__pyx_9genexpr32__pyx_v_plugin;
PyObject *__pyx_v_preload;
PyObject *__pyx_v_self;
PyObject *__pyx_v_v;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
PyObject *(*__pyx_t_2)(PyObject *);
};
3233: """ Clear out old state and restart all running coroutines """
+3234: await super().start()
__pyx_t_2 = __pyx_generator->classobj;
if (!__pyx_t_2) { PyErr_SetString(PyExc_SystemError, "super(): empty __class__ cell"); __PYX_ERR(0, 3234, __pyx_L1_error) }
__Pyx_INCREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_cur_scope->__pyx_v_self);
__pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_start); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_2)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XGOTREF(__pyx_r);
if (likely(__pyx_r)) {
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, awaiting value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L4_resume_from_await:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3234, __pyx_L1_error)
} else {
PyObject* exc_type = __Pyx_PyErr_Occurred();
if (exc_type) {
if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
else __PYX_ERR(0, 3234, __pyx_L1_error)
}
}
+3235: assert self.status != Status.running
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3235, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Status); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3235, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_running); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3235, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3235, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3235, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_4)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 3235, __pyx_L1_error)
}
}
#endif
3236:
+3237: enable_gc_diagnosis()
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_enable_gc_diagnosis); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3238:
+3239: self.clear_task_state()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_clear_task_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3240:
+3241: with suppress(AttributeError):
/*with:*/ {
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_suppress); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3241, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_1)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
}
}
__pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_builtin_AttributeError) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_builtin_AttributeError);
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3241, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3241, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_enter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3241, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
if (likely(__pyx_t_6)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_1, function);
}
}
__pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3241, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
/*try:*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
goto __pyx_L14_try_end;
__pyx_L9_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.start", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_1) < 0) __PYX_ERR(0, 3241, __pyx_L11_except_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3241, __pyx_L11_except_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3241, __pyx_L11_except_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_12);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (__pyx_t_4 < 0) __PYX_ERR(0, 3241, __pyx_L11_except_error)
__pyx_t_13 = ((!(__pyx_t_4 != 0)) != 0);
if (__pyx_t_13) {
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_3, __pyx_t_1);
__pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_1 = 0;
__PYX_ERR(0, 3241, __pyx_L11_except_error)
}
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L10_exception_handled;
}
__pyx_L11_except_error:;
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
goto __pyx_L1_error;
__pyx_L10_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
__pyx_L14_try_end:;
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_5) {
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3241, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
goto __pyx_L8;
}
__pyx_L8:;
}
goto __pyx_L20;
__pyx_L5_error:;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
goto __pyx_L1_error;
__pyx_L20:;
}
+3242: for c in self._worker_coroutines:
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_worker_coroutines); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3242, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3); if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { __pyx_t_2 = __pyx_t_3; __Pyx_INCREF(__pyx_t_2); __pyx_t_10 = 0; __pyx_t_11 = NULL; } else { __pyx_t_10 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3242, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_11 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3242, __pyx_L9_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 3242, __pyx_L9_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3242, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 3242, __pyx_L9_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3242, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_11(__pyx_t_2); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 3242, __pyx_L9_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_c); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_c, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3243: c.cancel()
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_c, __pyx_n_s_cancel); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3243, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3243, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3244:
+3245: for addr in self._start_address:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_start_address); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_10 = 0; __pyx_t_11 = NULL; } else { __pyx_t_10 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_11 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3245, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 3245, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 3245, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_11(__pyx_t_3); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 3245, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_addr); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_addr, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3246: await self.listen(
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_listen); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_addr); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_addr); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_cur_scope->__pyx_v_addr); /* … */ __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_14); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_0 = __pyx_t_3; __pyx_cur_scope->__pyx_t_1 = __pyx_t_10; __pyx_cur_scope->__pyx_t_2 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L23_resume_from_await:; __pyx_t_3 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_10 = __pyx_cur_scope->__pyx_t_1; __pyx_t_11 = __pyx_cur_scope->__pyx_t_2; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3246, __pyx_L1_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 3246, __pyx_L1_error) } }
3247: addr,
+3248: allow_offload=False,
__pyx_t_14 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); if (PyDict_SetItem(__pyx_t_14, __pyx_n_s_allow_offload, Py_False) < 0) __PYX_ERR(0, 3248, __pyx_L1_error)
+3249: handshake_overrides={"pickle-protocol": 4, "compression": None},
__pyx_t_15 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (PyDict_SetItem(__pyx_t_15, __pyx_kp_u_pickle_protocol, __pyx_int_4) < 0) __PYX_ERR(0, 3249, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_15, __pyx_n_u_compression, Py_None) < 0) __PYX_ERR(0, 3249, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_14, __pyx_n_s_handshake_overrides, __pyx_t_15) < 0) __PYX_ERR(0, 3248, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_6 = __pyx_t_14; __pyx_t_14 = 0;
+3250: **self.security.get_listen_args("scheduler"),
__pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_security); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_get_listen_args); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); } } __pyx_t_14 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_15, __pyx_n_u_scheduler) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_n_u_scheduler); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(__pyx_t_14 == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); __PYX_ERR(0, 3250, __pyx_L1_error) } if (__Pyx_MergeKeywords(__pyx_t_6, __pyx_t_14) < 0) __PYX_ERR(0, 3250, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
3251: )
+3252: self.ip = get_address_host(self.listen_address)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_get_address_host); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_listen_address); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_14 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_1, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_2); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_ip, __pyx_t_14) < 0) __PYX_ERR(0, 3252, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+3253: listen_ip = self.ip
__pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_ip); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_listen_ip); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_listen_ip, __pyx_t_14); __Pyx_GIVEREF(__pyx_t_14); __pyx_t_14 = 0;
3254:
+3255: if listen_ip == "0.0.0.0":
__pyx_t_13 = (__Pyx_PyUnicode_Equals(__pyx_cur_scope->__pyx_v_listen_ip, __pyx_kp_u_0_0_0_0, Py_EQ)); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3255, __pyx_L1_error) if (__pyx_t_13) { /* … */ }
+3256: listen_ip = ""
__Pyx_INCREF(__pyx_kp_u__50); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_listen_ip); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_listen_ip, __pyx_kp_u__50); __Pyx_GIVEREF(__pyx_kp_u__50);
3257:
+3258: if self.address.startswith("inproc://"):
__pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_address); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_3 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_14, __pyx_kp_u_inproc) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_kp_u_inproc); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3258, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_13) { /* … */ }
+3259: listen_ip = "localhost"
__Pyx_INCREF(__pyx_n_u_localhost); __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_listen_ip); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_listen_ip, __pyx_n_u_localhost); __Pyx_GIVEREF(__pyx_n_u_localhost);
3260:
3261: # Services listen on all addresses
+3262: self.start_services(listen_ip)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_start_services); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(!__pyx_cur_scope->__pyx_v_listen_ip)) { __Pyx_RaiseUnboundLocalError("listen_ip"); __PYX_ERR(0, 3262, __pyx_L1_error) } __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_3 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_14, __pyx_cur_scope->__pyx_v_listen_ip) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_cur_scope->__pyx_v_listen_ip); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3263:
+3264: for listener in self.listeners:
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_listeners); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { __pyx_t_6 = __pyx_t_3; __Pyx_INCREF(__pyx_t_6); __pyx_t_10 = 0; __pyx_t_11 = NULL; } else { __pyx_t_10 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_11 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3264, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_6))) { if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 3264, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 3264, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_11(__pyx_t_6); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 3264, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_listener); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_listener, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+3265: logger.info(" Scheduler at: %25s", listener.contact_address)
__Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_logger); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_info); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_listener, __pyx_n_s_contact_address); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_1 = NULL; __pyx_t_17 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_17 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_kp_u_Scheduler_at_25s, __pyx_t_14}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3265, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_kp_u_Scheduler_at_25s, __pyx_t_14}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3265, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } else #endif { __pyx_t_16 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_kp_u_Scheduler_at_25s); __Pyx_GIVEREF(__pyx_kp_u_Scheduler_at_25s); PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_17, __pyx_kp_u_Scheduler_at_25s); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_17, __pyx_t_14); __pyx_t_14 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_16, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3266: for k, v in self.services.items():
__pyx_t_10 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_services); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_t_3 == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); __PYX_ERR(0, 3266, __pyx_L1_error) } __pyx_t_2 = __Pyx_dict_iterator(__pyx_t_3, 0, __pyx_n_s_items, (&__pyx_t_18), (&__pyx_t_17)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = __pyx_t_2; __pyx_t_2 = 0; while (1) { __pyx_t_19 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_18, &__pyx_t_10, &__pyx_t_2, &__pyx_t_3, NULL, __pyx_t_17); if (unlikely(__pyx_t_19 == 0)) break; if (unlikely(__pyx_t_19 == -1)) __PYX_ERR(0, 3266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_k); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_k, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_v); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_v, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0;
+3267: logger.info("%11s at: %25s", k, "%s:%d" % (listen_ip, v.port))
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logger); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_info); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_20 = 0; __pyx_t_21 = 127; if (unlikely(!__pyx_cur_scope->__pyx_v_listen_ip)) { __Pyx_RaiseUnboundLocalError("listen_ip"); __PYX_ERR(0, 3267, __pyx_L1_error) } __pyx_t_14 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_cur_scope->__pyx_v_listen_ip), __pyx_empty_unicode); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_21 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_14) > __pyx_t_21) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_14) : __pyx_t_21; __pyx_t_20 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_14); __pyx_t_14 = 0; __Pyx_INCREF(__pyx_kp_u__51); __pyx_t_20 += 1; __Pyx_GIVEREF(__pyx_kp_u__51); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_kp_u__51); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_v, __pyx_n_s_port); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_1 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_t_14), __pyx_n_u_d); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_21 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_21) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_21; __pyx_t_20 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_2, 3, __pyx_t_20, __pyx_t_21); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_19 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_16))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); __pyx_t_19 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_16)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_kp_u_11s_at_25s, __pyx_cur_scope->__pyx_v_k, __pyx_t_1}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_19, 3+__pyx_t_19); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3267, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_16)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_kp_u_11s_at_25s, __pyx_cur_scope->__pyx_v_k, __pyx_t_1}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_19, 3+__pyx_t_19); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3267, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { __pyx_t_14 = PyTuple_New(3+__pyx_t_19); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_kp_u_11s_at_25s); __Pyx_GIVEREF(__pyx_kp_u_11s_at_25s); PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_19, __pyx_kp_u_11s_at_25s); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_k); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_k); PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_19, __pyx_cur_scope->__pyx_v_k); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_19, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_14, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
3268:
+3269: self.loop.add_callback(self.reevaluate_occupancy)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_loop); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_add_callback); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_reevaluate_occupancy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); } } __pyx_t_6 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_14, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_t_3); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
3270:
+3271: if self.scheduler_file:
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_scheduler_file); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3271, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_13) { /* … */ }
+3272: with open(self.scheduler_file, "w") as f:
/*with:*/ {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_scheduler_file); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3272, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_16 = PyTuple_New(2); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3272, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_6);
__Pyx_INCREF(__pyx_n_u_w);
__Pyx_GIVEREF(__pyx_n_u_w);
PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_n_u_w);
__pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_open, __pyx_t_16, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3272, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_6, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3272, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_6, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3272, __pyx_L31_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_14 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_14 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_14)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_14);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_16 = (__pyx_t_14) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_14) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3272, __pyx_L31_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __pyx_t_16;
__pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/*try:*/ {
{
/*try:*/ {
__Pyx_GIVEREF(__pyx_t_3);
__pyx_cur_scope->__pyx_v_f = __pyx_t_3;
__pyx_t_3 = 0;
/* … */
}
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
goto __pyx_L40_try_end;
__pyx_L35_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.start", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_14, &__pyx_t_3, &__pyx_t_16) < 0) __PYX_ERR(0, 3272, __pyx_L37_except_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_6 = PyTuple_Pack(3, __pyx_t_14, __pyx_t_3, __pyx_t_16); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3272, __pyx_L37_except_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3272, __pyx_L37_except_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_12);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (__pyx_t_13 < 0) __PYX_ERR(0, 3272, __pyx_L37_except_error)
__pyx_t_4 = ((!(__pyx_t_13 != 0)) != 0);
if (__pyx_t_4) {
__Pyx_GIVEREF(__pyx_t_14);
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_ErrRestoreWithState(__pyx_t_14, __pyx_t_3, __pyx_t_16);
__pyx_t_14 = 0; __pyx_t_3 = 0; __pyx_t_16 = 0;
__PYX_ERR(0, 3272, __pyx_L37_except_error)
}
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
goto __pyx_L36_exception_handled;
}
__pyx_L37_except_error:;
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_9, __pyx_t_8, __pyx_t_7);
goto __pyx_L1_error;
__pyx_L36_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_9, __pyx_t_8, __pyx_t_7);
__pyx_L40_try_end:;
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_5) {
__pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3272, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
goto __pyx_L34;
}
__pyx_L34:;
}
goto __pyx_L44;
__pyx_L31_error:;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
goto __pyx_L1_error;
__pyx_L44:;
}
+3273: json.dump(self.identity(), f, indent=2)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_json); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3273, __pyx_L35_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_dump); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3273, __pyx_L35_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_identity); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3273, __pyx_L35_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); } } __pyx_t_3 = (__pyx_t_14) ? __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_t_14) : __Pyx_PyObject_CallNoArg(__pyx_t_16); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3273, __pyx_L35_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = PyTuple_New(2); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3273, __pyx_L35_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_3); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_f); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_f); PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_cur_scope->__pyx_v_f); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3273, __pyx_L35_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_indent, __pyx_int_2) < 0) __PYX_ERR(0, 3273, __pyx_L35_error) __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_16, __pyx_t_3); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3273, __pyx_L35_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
3274:
+3275: fn = self.scheduler_file # remove file when we close the process
__pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_scheduler_file); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_GIVEREF(__pyx_t_16); __pyx_cur_scope->__pyx_v_fn = __pyx_t_16; __pyx_t_16 = 0;
3276:
+3277: def del_scheduler_file():
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_5start_1del_scheduler_file(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_5start_1del_scheduler_file = {"del_scheduler_file", (PyCFunction)__pyx_pw_11distributed_9scheduler_9Scheduler_5start_1del_scheduler_file, METH_NOARGS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_5start_1del_scheduler_file(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("del_scheduler_file (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_5start_del_scheduler_file(__pyx_self);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_5start_del_scheduler_file(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_9_start *__pyx_cur_scope;
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_9_start *__pyx_outer_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("del_scheduler_file", 0);
__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_9_start *) __Pyx_CyFunction_GetClosure(__pyx_self);
__pyx_cur_scope = __pyx_outer_scope;
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.start.del_scheduler_file", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_16 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_5start_1del_scheduler_file, 0, __pyx_n_s_Scheduler_start_locals_del_sched, ((PyObject*)__pyx_cur_scope), __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3277, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_GIVEREF(__pyx_t_16);
__pyx_cur_scope->__pyx_v_del_scheduler_file = __pyx_t_16;
__pyx_t_16 = 0;
/* … */
__pyx_codeobj__52 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_del_scheduler_file, 3277, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__52)) __PYX_ERR(0, 3277, __pyx_L1_error)
+3278: if os.path.exists(fn):
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_exists); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_cur_scope->__pyx_v_fn)) { __Pyx_RaiseClosureNameError("fn"); __PYX_ERR(0, 3278, __pyx_L1_error) } __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_cur_scope->__pyx_v_fn) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_cur_scope->__pyx_v_fn); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3278, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_4) { /* … */ }
+3279: os.remove(fn)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_remove); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_cur_scope->__pyx_v_fn)) { __Pyx_RaiseClosureNameError("fn"); __PYX_ERR(0, 3279, __pyx_L1_error) } __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_cur_scope->__pyx_v_fn) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_cur_scope->__pyx_v_fn); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3280:
+3281: weakref.finalize(self, del_scheduler_file)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_weakref); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_finalize); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_17 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); __pyx_t_17 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_14)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_self, __pyx_cur_scope->__pyx_v_del_scheduler_file}; __pyx_t_16 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3281, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_16); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_self, __pyx_cur_scope->__pyx_v_del_scheduler_file}; __pyx_t_16 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3281, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_16); } else #endif { __pyx_t_6 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_17, __pyx_cur_scope->__pyx_v_self); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_del_scheduler_file); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_del_scheduler_file); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_17, __pyx_cur_scope->__pyx_v_del_scheduler_file); __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_6, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
3282:
+3283: for preload in self.preloads:
__pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_preloads); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (likely(PyList_CheckExact(__pyx_t_16)) || PyTuple_CheckExact(__pyx_t_16)) { __pyx_t_14 = __pyx_t_16; __Pyx_INCREF(__pyx_t_14); __pyx_t_18 = 0; __pyx_t_11 = NULL; } else { __pyx_t_18 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_16); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_11 = Py_TYPE(__pyx_t_14)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3283, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_14))) { if (__pyx_t_18 >= PyList_GET_SIZE(__pyx_t_14)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_16 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_18); __Pyx_INCREF(__pyx_t_16); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 3283, __pyx_L1_error) #else __pyx_t_16 = PySequence_ITEM(__pyx_t_14, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); #endif } else { if (__pyx_t_18 >= PyTuple_GET_SIZE(__pyx_t_14)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_16 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_18); __Pyx_INCREF(__pyx_t_16); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 3283, __pyx_L1_error) #else __pyx_t_16 = PySequence_ITEM(__pyx_t_14, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); #endif } } else { __pyx_t_16 = __pyx_t_11(__pyx_t_14); if (unlikely(!__pyx_t_16)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 3283, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_16); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_preload); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_preload, __pyx_t_16); __Pyx_GIVEREF(__pyx_t_16); __pyx_t_16 = 0; /* … */ } __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+3284: await preload.start()
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_preload, __pyx_n_s_start); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_16 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_6); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_16); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __pyx_cur_scope->__pyx_t_2 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_t_14); __pyx_cur_scope->__pyx_t_0 = __pyx_t_14; __pyx_cur_scope->__pyx_t_1 = __pyx_t_18; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 3; return __pyx_r; __pyx_L47_resume_from_await:; __pyx_t_11 = __pyx_cur_scope->__pyx_t_2; __pyx_t_14 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_14); __pyx_t_18 = __pyx_cur_scope->__pyx_t_1; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3284, __pyx_L1_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 3284, __pyx_L1_error) } }
3285:
+3286: await asyncio.gather(*[plugin.start(self) for plugin in self.plugins])
__Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_gather); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; { /* enter inner scope */ __pyx_t_14 = PyList_New(0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_plugins); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) { __pyx_t_3 = __pyx_t_6; __Pyx_INCREF(__pyx_t_3); __pyx_t_18 = 0; __pyx_t_11 = NULL; } else { __pyx_t_18 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_11 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3286, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_18 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_18); __Pyx_INCREF(__pyx_t_6); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 3286, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif } else { if (__pyx_t_18 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_18); __Pyx_INCREF(__pyx_t_6); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 3286, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif } } else { __pyx_t_6 = __pyx_t_11(__pyx_t_3); if (unlikely(!__pyx_t_6)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 3286, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_6); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr32__pyx_v_plugin); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr32__pyx_v_plugin, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_9genexpr32__pyx_v_plugin, __pyx_n_s_start); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_6 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_cur_scope->__pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_cur_scope->__pyx_v_self); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_14, (PyObject*)__pyx_t_6))) __PYX_ERR(0, 3286, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } /* exit inner scope */ __pyx_t_3 = PySequence_Tuple(__pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_3, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_14); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 4; return __pyx_r; __pyx_L50_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3286, __pyx_L1_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 3286, __pyx_L1_error) } }
3287:
+3288: self.start_periodic_callbacks()
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_start_periodic_callbacks); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_14 = (__pyx_t_16) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_16) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
3289:
+3290: setproctitle("dask-scheduler [%s]" % (self.address,))
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_setproctitle); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_16 = PyTuple_New(3); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_18 = 0; __pyx_t_21 = 127; __Pyx_INCREF(__pyx_kp_u_dask_scheduler); __pyx_t_18 += 16; __Pyx_GIVEREF(__pyx_kp_u_dask_scheduler); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_kp_u_dask_scheduler); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_address); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Unicode(__pyx_t_6), __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_21 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_21) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_21; __pyx_t_18 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_1); __pyx_t_1 = 0; __Pyx_INCREF(__pyx_kp_u__53); __pyx_t_18 += 1; __Pyx_GIVEREF(__pyx_kp_u__53); PyTuple_SET_ITEM(__pyx_t_16, 2, __pyx_kp_u__53); __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_16, 3, __pyx_t_18, __pyx_t_21); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_14 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_16, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+3291: return self
__Pyx_XDECREF(__pyx_r); __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_cur_scope->__pyx_v_self); goto __pyx_L0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
3292:
+3293: async def close(self, comm=None, fast=False, close_workers=False):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_12close(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_11close[] = "Send cleanup signal to all coroutines then wait until finished\n\n See Also\n --------\n Scheduler.cleanup\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_12close = {"close", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_12close, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_11close};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_12close(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_comm = 0;
CYTHON_UNUSED PyObject *__pyx_v_fast = 0;
PyObject *__pyx_v_close_workers = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("close (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_fast,&__pyx_n_s_close_workers,0};
PyObject* values[4] = {0,0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_False));
values[3] = ((PyObject *)((PyObject *)Py_False));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fast);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close_workers);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "close") < 0)) __PYX_ERR(0, 3293, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_fast = values[2];
__pyx_v_close_workers = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("close", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3293, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_11close(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_fast, __pyx_v_close_workers);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_11close(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_comm, CYTHON_UNUSED PyObject *__pyx_v_fast, PyObject *__pyx_v_close_workers) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_10_close *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("close", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_10_close *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_10_close(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_10_close, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_10_close *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 3293, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_comm = __pyx_v_comm;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm);
__pyx_cur_scope->__pyx_v_fast = __pyx_v_fast;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_fast);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_fast);
__pyx_cur_scope->__pyx_v_close_workers = __pyx_v_close_workers;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_close_workers);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_close_workers);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_13generator2, __pyx_codeobj__54, (PyObject *) __pyx_cur_scope, __pyx_n_s_close, __pyx_n_s_Scheduler_close, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 3293, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
gen->classobj = __Pyx_CyFunction_GetClassObj(__pyx_self);
__Pyx_INCREF(gen->classobj);
__Pyx_GIVEREF(gen->classobj);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_13generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("close", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3293, __pyx_L1_error)
/* … */
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("close", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_16generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__167 = PyTuple_Pack(14, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_fast, __pyx_n_s_close_workers, __pyx_n_s_parent, __pyx_n_s_preload, __pyx_n_s_worker, __pyx_n_s_i, __pyx_n_s_pc, __pyx_n_s_ext, __pyx_n_s_futures, __pyx_n_s_w, __pyx_n_s_future, __pyx_n_s_plugin); if (unlikely(!__pyx_tuple__167)) __PYX_ERR(0, 3293, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__167);
__Pyx_GIVEREF(__pyx_tuple__167);
__pyx_codeobj__54 = (PyObject*)__Pyx_PyCode_New(4, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__167, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_close, 3293, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__54)) __PYX_ERR(0, 3293, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_12close, 0, __pyx_n_s_Scheduler_close, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3293, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_INCREF(__pyx_t_12);
PyList_Append(__pyx_t_13, __pyx_t_12);
__Pyx_GIVEREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__168);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_close, __pyx_t_12) < 0) __PYX_ERR(0, 3293, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__168 = PyTuple_Pack(3, ((PyObject *)Py_None), ((PyObject *)Py_False), ((PyObject *)Py_False)); if (unlikely(!__pyx_tuple__168)) __PYX_ERR(0, 3293, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__168);
__Pyx_GIVEREF(__pyx_tuple__168);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_10_close {
PyObject_HEAD
PyObject *__pyx_v_close_workers;
PyObject *__pyx_v_comm;
PyObject *__pyx_v_ext;
PyObject *__pyx_v_fast;
PyObject *__pyx_v_future;
PyObject *__pyx_v_futures;
long __pyx_v_i;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent;
PyObject *__pyx_v_pc;
PyObject *__pyx_9genexpr33__pyx_v_plugin;
PyObject *__pyx_v_preload;
PyObject *__pyx_v_self;
PyObject *__pyx_v_w;
PyObject *__pyx_v_worker;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
PyObject *(*__pyx_t_2)(PyObject *);
long __pyx_t_3;
};
3294: """Send cleanup signal to all coroutines then wait until finished
3295:
3296: See Also
3297: --------
3298: Scheduler.cleanup
3299: """
+3300: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_cur_scope->__pyx_v_self; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1); __pyx_t_1 = 0;
+3301: if self.status in (Status.closing, Status.closed, Status.closing_gracefully):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Status); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_closing); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3301, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3301, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!__pyx_t_5) { } else { __pyx_t_2 = __pyx_t_5; goto __pyx_L5_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Status); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_closed); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3301, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3301, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!__pyx_t_5) { } else { __pyx_t_2 = __pyx_t_5; goto __pyx_L5_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Status); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_closing_gracefully); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3301, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3301, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_5; __pyx_L5_bool_binop_done:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_5 = (__pyx_t_2 != 0); if (__pyx_t_5) { /* … */ }
+3302: await self.finished()
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_finished); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L8_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3302, __pyx_L1_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 3302, __pyx_L1_error) } }
+3303: return
__Pyx_XDECREF(__pyx_r);
__pyx_r = NULL;
goto __pyx_L0;
+3304: self.status = Status.closing
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_closing); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_status, __pyx_t_3) < 0) __PYX_ERR(0, 3304, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3305:
+3306: logger.info("Scheduler closing...")
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_logger); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_1, __pyx_kp_u_Scheduler_closing) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_u_Scheduler_closing); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3307: setproctitle("dask-scheduler [closing]")
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_setproctitle); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_1, __pyx_kp_u_dask_scheduler_closing) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_u_dask_scheduler_closing); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3308:
+3309: for preload in self.preloads:
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_preloads); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3309, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (likely(!__pyx_t_7)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3309, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3309, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_7(__pyx_t_4); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 3309, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_preload); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_preload, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+3310: await preload.teardown()
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_preload, __pyx_n_s_teardown); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_3 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_0 = __pyx_t_4; __pyx_cur_scope->__pyx_t_1 = __pyx_t_6; __pyx_cur_scope->__pyx_t_2 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L11_resume_from_await:; __pyx_t_4 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_6 = __pyx_cur_scope->__pyx_t_1; __pyx_t_7 = __pyx_cur_scope->__pyx_t_2; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3310, __pyx_L1_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 3310, __pyx_L1_error) } }
3311:
+3312: if close_workers:
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_close_workers); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3312, __pyx_L1_error) if (__pyx_t_5) { /* … */ }
+3313: await self.broadcast(msg={"op": "close_gracefully"}, nanny=True)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_broadcast); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_op, __pyx_n_u_close_gracefully) < 0) __PYX_ERR(0, 3313, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_msg, __pyx_t_1) < 0) __PYX_ERR(0, 3313, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_nanny, Py_True) < 0) __PYX_ERR(0, 3313, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 3; return __pyx_r; __pyx_L13_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3313, __pyx_L1_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 3313, __pyx_L1_error) } }
+3314: for worker in parent._workers:
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_parent->_workers)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_parent->_workers)) { __pyx_t_1 = __pyx_cur_scope->__pyx_v_parent->_workers; __Pyx_INCREF(__pyx_t_1); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { __pyx_t_6 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_parent->_workers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3314, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_7)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3314, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3314, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_7(__pyx_t_1); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 3314, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_worker); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_worker, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3315: self.worker_send(worker, {"op": "close"})
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_worker_send); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (PyDict_SetItem(__pyx_t_8, __pyx_n_u_op, __pyx_n_u_close) < 0) __PYX_ERR(0, 3315, __pyx_L1_error) __pyx_t_9 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_cur_scope->__pyx_v_worker, __pyx_t_8}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3315, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_cur_scope->__pyx_v_worker, __pyx_t_8}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3315, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif { __pyx_t_11 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(__pyx_cur_scope->__pyx_v_worker); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_worker); PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_cur_scope->__pyx_v_worker); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_11, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3316: for i in range(20): # wait a second for send signals to clear
for (__pyx_t_12 = 0; __pyx_t_12 < 20; __pyx_t_12+=1) {
__pyx_cur_scope->__pyx_v_i = __pyx_t_12;
+3317: if parent._workers:
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_parent->_workers); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3317, __pyx_L1_error) if (__pyx_t_5) { /* … */ goto __pyx_L18; }
+3318: await asyncio.sleep(0.05)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_sleep); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_float_0_05) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_float_0_05); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __pyx_cur_scope->__pyx_t_3 = __pyx_t_12; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 4; return __pyx_r; __pyx_L19_resume_from_await:; __pyx_t_12 = __pyx_cur_scope->__pyx_t_3; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3318, __pyx_L1_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 3318, __pyx_L1_error) } }
3319: else:
+3320: break
/*else*/ {
goto __pyx_L17_break;
}
__pyx_L18:;
}
__pyx_L17_break:;
3321:
+3322: await asyncio.gather(*[plugin.close() for plugin in self.plugins])
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_gather); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; { /* enter inner scope */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_plugins); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { __pyx_t_11 = __pyx_t_3; __Pyx_INCREF(__pyx_t_11); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { __pyx_t_6 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_7 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3322, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (likely(!__pyx_t_7)) { if (likely(PyList_CheckExact(__pyx_t_11))) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_11)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3322, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_11, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_11)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3322, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_11, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_7(__pyx_t_11); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 3322, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr33__pyx_v_plugin); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr33__pyx_v_plugin, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_9genexpr33__pyx_v_plugin, __pyx_n_s_close); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_3 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 3322, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } /* exit inner scope */ __pyx_t_11 = PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 5; return __pyx_r; __pyx_L22_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3322, __pyx_L1_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 3322, __pyx_L1_error) } }
3323:
+3324: for pc in self.periodic_callbacks.values():
__pyx_t_6 = 0; __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_periodic_callbacks); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (unlikely(__pyx_t_11 == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values"); __PYX_ERR(0, 3324, __pyx_L1_error) } __pyx_t_4 = __Pyx_dict_iterator(__pyx_t_11, 0, __pyx_n_s_values, (&__pyx_t_13), (&__pyx_t_10)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_4; __pyx_t_4 = 0; while (1) { __pyx_t_14 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_13, &__pyx_t_6, NULL, &__pyx_t_4, NULL, __pyx_t_10); if (unlikely(__pyx_t_14 == 0)) break; if (unlikely(__pyx_t_14 == -1)) __PYX_ERR(0, 3324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_pc); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_pc, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0;
+3325: pc.stop()
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_pc, __pyx_n_s_stop); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_11); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3326: self.periodic_callbacks.clear()
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_periodic_callbacks); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_clear); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_11); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3327:
+3328: self.stop_services()
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_stop_services); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_11); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3329:
+3330: for ext in parent._extensions.values():
__pyx_t_13 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_extensions == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
__PYX_ERR(0, 3330, __pyx_L1_error)
}
__pyx_t_11 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_parent->_extensions, 1, __pyx_n_s_values, (&__pyx_t_6), (&__pyx_t_10)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3330, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_11;
__pyx_t_11 = 0;
while (1) {
__pyx_t_14 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_6, &__pyx_t_13, NULL, &__pyx_t_11, NULL, __pyx_t_10);
if (unlikely(__pyx_t_14 == 0)) break;
if (unlikely(__pyx_t_14 == -1)) __PYX_ERR(0, 3330, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_ext);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_ext, __pyx_t_11);
__Pyx_GIVEREF(__pyx_t_11);
__pyx_t_11 = 0;
+3331: with suppress(AttributeError):
/*with:*/ {
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_suppress); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3331, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_4, function);
}
}
__pyx_t_11 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_builtin_AttributeError) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_builtin_AttributeError);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3331, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_15 = __Pyx_PyObject_LookupSpecial(__pyx_t_11, __pyx_n_s_exit); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3331, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_11, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3331, __pyx_L27_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_8 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_8)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_8);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_4 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3331, __pyx_L27_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
/*try:*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
goto __pyx_L40_try_end;
__pyx_L33_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_4, &__pyx_t_3) < 0) __PYX_ERR(0, 3331, __pyx_L35_except_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_8 = PyTuple_Pack(3, __pyx_t_11, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3331, __pyx_L35_except_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_8, NULL);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 3331, __pyx_L35_except_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_19);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
if (__pyx_t_5 < 0) __PYX_ERR(0, 3331, __pyx_L35_except_error)
__pyx_t_2 = ((!(__pyx_t_5 != 0)) != 0);
if (__pyx_t_2) {
__Pyx_GIVEREF(__pyx_t_11);
__Pyx_GIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ErrRestoreWithState(__pyx_t_11, __pyx_t_4, __pyx_t_3);
__pyx_t_11 = 0; __pyx_t_4 = 0; __pyx_t_3 = 0;
__PYX_ERR(0, 3331, __pyx_L35_except_error)
}
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
goto __pyx_L34_exception_handled;
}
__pyx_L35_except_error:;
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18);
goto __pyx_L1_error;
__pyx_L34_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18);
__pyx_L40_try_end:;
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_15) {
__pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3331, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
}
goto __pyx_L32;
}
__pyx_L32:;
}
goto __pyx_L44;
__pyx_L27_error:;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
goto __pyx_L1_error;
__pyx_L44:;
}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3332: ext.teardown()
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_ext, __pyx_n_s_teardown); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3332, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_11 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3332, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+3333: logger.info("Scheduler closing all comms")
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_logger); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_kp_u_Scheduler_closing_all_comms) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_u_Scheduler_closing_all_comms); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3334:
+3335: futures = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_futures = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+3336: for w, comm in list(self.stream_comms.items()):
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_stream_comms); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_items); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PySequence_List(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3336, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { PyObject* sequence = __pyx_t_3; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 3336, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_11 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_4 = PyList_GET_ITEM(sequence, 0); __pyx_t_11 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_11); #else __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_20 = Py_TYPE(__pyx_t_8)->tp_iternext; index = 0; __pyx_t_4 = __pyx_t_20(__pyx_t_8); if (unlikely(!__pyx_t_4)) goto __pyx_L47_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); index = 1; __pyx_t_11 = __pyx_t_20(__pyx_t_8); if (unlikely(!__pyx_t_11)) goto __pyx_L47_unpacking_failed; __Pyx_GOTREF(__pyx_t_11); if (__Pyx_IternextUnpackEndCheck(__pyx_t_20(__pyx_t_8), 2) < 0) __PYX_ERR(0, 3336, __pyx_L1_error) __pyx_t_20 = NULL; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L48_unpacking_done; __pyx_L47_unpacking_failed:; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_20 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 3336, __pyx_L1_error) __pyx_L48_unpacking_done:; } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_w); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_w, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_comm); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_comm, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_11); __pyx_t_11 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3337: if not comm.closed():
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_comm, __pyx_n_s_closed); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_11); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3337, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = ((!__pyx_t_2) != 0); if (__pyx_t_5) { /* … */ }
+3338: comm.send({"op": "close", "report": False})
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_comm, __pyx_n_s_send); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_u_op, __pyx_n_u_close) < 0) __PYX_ERR(0, 3338, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_4, __pyx_n_u_report, Py_False) < 0) __PYX_ERR(0, 3338, __pyx_L1_error) __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_3 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_8, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_4); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3339: comm.send({"op": "close-stream"})
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_comm, __pyx_n_s_send); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_u_op, __pyx_kp_u_close_stream) < 0) __PYX_ERR(0, 3339, __pyx_L1_error) __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_3 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_8, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_4); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3340: with suppress(AttributeError):
/*with:*/ {
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_suppress); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3340, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_11);
if (likely(__pyx_t_4)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_11, function);
}
}
__pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_4, __pyx_builtin_AttributeError) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_builtin_AttributeError);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3340, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_15 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_exit); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3340, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3340, __pyx_L50_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_8 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
__pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
if (likely(__pyx_t_8)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
__Pyx_INCREF(__pyx_t_8);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_4, function);
}
}
__pyx_t_11 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3340, __pyx_L50_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
/*try:*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
goto __pyx_L63_try_end;
__pyx_L56_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_11, &__pyx_t_4) < 0) __PYX_ERR(0, 3340, __pyx_L58_except_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_t_11);
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_8 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_11, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3340, __pyx_L58_except_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_8, NULL);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 3340, __pyx_L58_except_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_19);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
if (__pyx_t_5 < 0) __PYX_ERR(0, 3340, __pyx_L58_except_error)
__pyx_t_2 = ((!(__pyx_t_5 != 0)) != 0);
if (__pyx_t_2) {
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_11, __pyx_t_4);
__pyx_t_3 = 0; __pyx_t_11 = 0; __pyx_t_4 = 0;
__PYX_ERR(0, 3340, __pyx_L58_except_error)
}
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L57_exception_handled;
}
__pyx_L58_except_error:;
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_ExceptionReset(__pyx_t_18, __pyx_t_17, __pyx_t_16);
goto __pyx_L1_error;
__pyx_L57_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_ExceptionReset(__pyx_t_18, __pyx_t_17, __pyx_t_16);
__pyx_L63_try_end:;
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_15) {
__pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3340, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
}
goto __pyx_L55;
}
__pyx_L55:;
}
goto __pyx_L67;
__pyx_L50_error:;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
goto __pyx_L1_error;
__pyx_L67:;
}
+3341: futures.append(comm.close())
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_comm, __pyx_n_s_close); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3341, __pyx_L56_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_11); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3341, __pyx_L56_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_21 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_futures, __pyx_t_3); if (unlikely(__pyx_t_21 == ((int)-1))) __PYX_ERR(0, 3341, __pyx_L56_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3342:
+3343: for future in futures: # TODO: do all at once
__pyx_t_1 = __pyx_cur_scope->__pyx_v_futures; __Pyx_INCREF(__pyx_t_1); __pyx_t_6 = 0; for (;;) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3343, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_future); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_future, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3344: await future
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_future); __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __pyx_cur_scope->__pyx_t_1 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 6; return __pyx_r; __pyx_L70_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_6 = __pyx_cur_scope->__pyx_t_1; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3344, __pyx_L1_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 3344, __pyx_L1_error) } }
3345:
+3346: for comm in self.client_comms.values():
__pyx_t_6 = 0; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_client_comms); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(__pyx_t_4 == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values"); __PYX_ERR(0, 3346, __pyx_L1_error) } __pyx_t_11 = __Pyx_dict_iterator(__pyx_t_4, 0, __pyx_n_s_values, (&__pyx_t_13), (&__pyx_t_10)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_11; __pyx_t_11 = 0; while (1) { __pyx_t_14 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_13, &__pyx_t_6, NULL, &__pyx_t_11, NULL, __pyx_t_10); if (unlikely(__pyx_t_14 == 0)) break; if (unlikely(__pyx_t_14 == -1)) __PYX_ERR(0, 3346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_comm); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_comm, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_11); __pyx_t_11 = 0;
+3347: comm.abort()
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_comm, __pyx_n_s_abort); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_11 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3348:
+3349: await self.rpc.close()
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_rpc); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_close); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_11) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 7; return __pyx_r; __pyx_L73_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3349, __pyx_L1_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 3349, __pyx_L1_error) } }
3350:
+3351: self.status = Status.closed
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_closed); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_status, __pyx_t_4) < 0) __PYX_ERR(0, 3351, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+3352: self.stop()
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_stop); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_4 = (__pyx_t_11) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_11) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+3353: await super().close()
__pyx_t_1 = __pyx_generator->classobj;
if (!__pyx_t_1) { PyErr_SetString(PyExc_SystemError, "super(): empty __class__ cell"); __PYX_ERR(0, 3353, __pyx_L1_error) }
__Pyx_INCREF(__pyx_t_1);
__pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3353, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_1);
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_cur_scope->__pyx_v_self);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3353, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_close); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3353, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
__pyx_t_1 = PyMethod_GET_SELF(__pyx_t_11);
if (likely(__pyx_t_1)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_11, function);
}
}
__pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3353, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XGOTREF(__pyx_r);
if (likely(__pyx_r)) {
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, awaiting value */
__pyx_generator->resume_label = 8;
return __pyx_r;
__pyx_L74_resume_from_await:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3353, __pyx_L1_error)
} else {
PyObject* exc_type = __Pyx_PyErr_Occurred();
if (exc_type) {
if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
else __PYX_ERR(0, 3353, __pyx_L1_error)
}
}
3354:
+3355: setproctitle("dask-scheduler [closed]")
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_setproctitle); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_1, __pyx_kp_u_dask_scheduler_closed) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_u_dask_scheduler_closed); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+3356: disable_gc_diagnosis()
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_disable_gc_diagnosis); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_11); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
3357:
+3358: async def close_worker(self, comm=None, worker=None, safe=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_15close_worker(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_14close_worker[] = "Remove a worker from the cluster\n\n This both removes the worker from our local state and also sends a\n signal to the worker to shut down. This works regardless of whether or\n not the worker has a nanny process restarting it\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_15close_worker = {"close_worker", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_15close_worker, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_14close_worker};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_15close_worker(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_worker = 0;
PyObject *__pyx_v_safe = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("close_worker (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_worker,&__pyx_n_s_safe,0};
PyObject* values[4] = {0,0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_safe);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "close_worker") < 0)) __PYX_ERR(0, 3358, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_worker = values[2];
__pyx_v_safe = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("close_worker", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3358, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.close_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_14close_worker(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_worker, __pyx_v_safe);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_14close_worker(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_worker, PyObject *__pyx_v_safe) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_11_close_worker *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("close_worker", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_11_close_worker *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_11_close_worker(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_11_close_worker, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_11_close_worker *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 3358, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_comm = __pyx_v_comm;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm);
__pyx_cur_scope->__pyx_v_worker = __pyx_v_worker;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_worker);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_worker);
__pyx_cur_scope->__pyx_v_safe = __pyx_v_safe;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_safe);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_safe);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_16generator3, __pyx_codeobj__55, (PyObject *) __pyx_cur_scope, __pyx_n_s_close_worker, __pyx_n_s_Scheduler_close_worker, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 3358, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.close_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_16generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("close_worker", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3358, __pyx_L1_error)
/* … */
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_AddTraceback("close_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__169 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_worker, __pyx_n_s_safe, __pyx_n_s_parent, __pyx_n_s_ws, __pyx_n_s_nanny_addr, __pyx_n_s_address); if (unlikely(!__pyx_tuple__169)) __PYX_ERR(0, 3358, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__169);
__Pyx_GIVEREF(__pyx_tuple__169);
__pyx_codeobj__55 = (PyObject*)__Pyx_PyCode_New(4, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__169, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_close_worker, 3358, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__55)) __PYX_ERR(0, 3358, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_15close_worker, 0, __pyx_n_s_Scheduler_close_worker, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__55)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3358, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__170);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_close_worker, __pyx_t_12) < 0) __PYX_ERR(0, 3358, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__170 = PyTuple_Pack(3, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__170)) __PYX_ERR(0, 3358, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__170);
__Pyx_GIVEREF(__pyx_tuple__170);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_11_close_worker {
PyObject_HEAD
PyObject *__pyx_v_address;
PyObject *__pyx_v_comm;
PyObject *__pyx_v_nanny_addr;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent;
PyObject *__pyx_v_safe;
PyObject *__pyx_v_self;
PyObject *__pyx_v_worker;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws;
PyObject *__pyx_t_0;
PyObject *__pyx_t_1;
PyObject *__pyx_t_2;
PyObject *__pyx_t_3;
};
3359: """Remove a worker from the cluster
3360:
3361: This both removes the worker from our local state and also sends a
3362: signal to the worker to shut down. This works regardless of whether or
3363: not the worker has a nanny process restarting it
3364: """
+3365: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_cur_scope->__pyx_v_self; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1); __pyx_t_1 = 0;
+3366: logger.info("Closing worker %s", worker)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logger); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_u_Closing_worker_s, __pyx_cur_scope->__pyx_v_worker}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3366, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_u_Closing_worker_s, __pyx_cur_scope->__pyx_v_worker}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3366, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_kp_u_Closing_worker_s); __Pyx_GIVEREF(__pyx_kp_u_Closing_worker_s); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_kp_u_Closing_worker_s); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_worker); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_worker); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_cur_scope->__pyx_v_worker); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3367: with log_errors():
/*with:*/ {
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_log_errors); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3367, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3367, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3367, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3367, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_2 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
if (likely(__pyx_t_2)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_5, function);
}
}
__pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3367, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/*try:*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
goto __pyx_L13_try_end;
__pyx_L8_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.close_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_1) < 0) __PYX_ERR(0, 3367, __pyx_L10_except_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_10 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3367, __pyx_L10_except_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3367, __pyx_L10_except_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_12);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (__pyx_t_11 < 0) __PYX_ERR(0, 3367, __pyx_L10_except_error)
__pyx_t_13 = ((!(__pyx_t_11 != 0)) != 0);
if (__pyx_t_13) {
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_3, __pyx_t_1);
__pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_1 = 0;
__PYX_ERR(0, 3367, __pyx_L10_except_error)
}
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L9_exception_handled;
}
__pyx_L10_except_error:;
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
goto __pyx_L1_error;
__pyx_L9_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
__pyx_L13_try_end:;
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_6) {
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3367, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
goto __pyx_L7;
}
__pyx_L7:;
}
goto __pyx_L20;
__pyx_L4_error:;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
goto __pyx_L1_error;
__pyx_L20:;
}
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
+3368: self.log_event(worker, {"action": "close-worker"})
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_log_event_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3368, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3368, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_action, __pyx_kp_u_close_worker_2) < 0) __PYX_ERR(0, 3368, __pyx_L8_error) __pyx_t_2 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_worker, __pyx_t_5}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3368, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_worker, __pyx_t_5}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3368, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_10 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3368, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_cur_scope->__pyx_v_worker); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_worker); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_4, __pyx_cur_scope->__pyx_v_worker); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_4, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3368, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3369: ws: WorkerState = parent._workers[worker]
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_parent->_workers, __pyx_cur_scope->__pyx_v_worker); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3369, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 3369, __pyx_L8_error) __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1); __pyx_t_1 = 0;
+3370: nanny_addr = ws._nanny
__pyx_t_1 = __pyx_cur_scope->__pyx_v_ws->_nanny;
__Pyx_INCREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_v_nanny_addr = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+3371: address = nanny_addr or worker
__pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_nanny_addr); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3371, __pyx_L8_error) if (!__pyx_t_11) { } else { __Pyx_INCREF(__pyx_cur_scope->__pyx_v_nanny_addr); __pyx_t_1 = __pyx_cur_scope->__pyx_v_nanny_addr; goto __pyx_L14_bool_binop_done; } __Pyx_INCREF(__pyx_cur_scope->__pyx_v_worker); __pyx_t_1 = __pyx_cur_scope->__pyx_v_worker; __pyx_L14_bool_binop_done:; __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_address = __pyx_t_1; __pyx_t_1 = 0;
3372:
+3373: self.worker_send(worker, {"op": "close", "report": False})
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_worker_send); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3373, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3373, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_10); if (PyDict_SetItem(__pyx_t_10, __pyx_n_u_op, __pyx_n_u_close) < 0) __PYX_ERR(0, 3373, __pyx_L8_error) if (PyDict_SetItem(__pyx_t_10, __pyx_n_u_report, Py_False) < 0) __PYX_ERR(0, 3373, __pyx_L8_error) __pyx_t_5 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_cur_scope->__pyx_v_worker, __pyx_t_10}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3373, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_cur_scope->__pyx_v_worker, __pyx_t_10}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3373, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif { __pyx_t_2 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3373, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_cur_scope->__pyx_v_worker); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_worker); PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_4, __pyx_cur_scope->__pyx_v_worker); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_4, __pyx_t_10); __pyx_t_10 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3373, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3374: await self.remove_worker(address=worker, safe=safe)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_remove_worker); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3374, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3374, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_address, __pyx_cur_scope->__pyx_v_worker) < 0) __PYX_ERR(0, 3374, __pyx_L8_error) if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_safe, __pyx_cur_scope->__pyx_v_safe) < 0) __PYX_ERR(0, 3374, __pyx_L8_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3374, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_0 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_1 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_2 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_3 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L16_resume_from_await:; __pyx_t_6 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_7 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3374, __pyx_L8_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 3374, __pyx_L8_error) } }
3375:
3376: ###########
3377: # Stimuli #
3378: ###########
3379:
+3380: def heartbeat_worker(
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_18heartbeat_worker(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_18heartbeat_worker = {"heartbeat_worker", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_18heartbeat_worker, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_18heartbeat_worker(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_address = 0;
PyObject *__pyx_v_resolve_address = 0;
PyObject *__pyx_v_now = 0;
PyObject *__pyx_v_resources = 0;
PyObject *__pyx_v_host_info = 0;
PyObject *__pyx_v_metrics = 0;
PyObject *__pyx_v_executing = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("heartbeat_worker (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_address,&__pyx_n_s_resolve_address,&__pyx_n_s_now,&__pyx_n_s_resources,&__pyx_n_s_host_info,&__pyx_n_s_metrics,&__pyx_n_s_executing,0};
PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_17heartbeat_worker(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_address, PyObject *__pyx_v_resolve_address, PyObject *__pyx_v_now, PyObject *__pyx_v_resources, PyObject *__pyx_v_host_info, PyObject *__pyx_v_metrics, PyObject *__pyx_v_executing) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_v_host = NULL;
PyObject *__pyx_v_local_now = NULL;
double __pyx_v_frac;
PyObject *__pyx_v_other = NULL;
PyObject *__pyx_v_bw = NULL;
PyObject *__pyx_v_count = NULL;
PyObject *__pyx_v_alpha = NULL;
PyObject *__pyx_v_typ = NULL;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_v_delay = NULL;
PyObject *__pyx_9genexpr34__pyx_v_key = NULL;
PyObject *__pyx_9genexpr34__pyx_v_duration = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("heartbeat_worker", 0);
__Pyx_INCREF(__pyx_v_address);
__Pyx_INCREF(__pyx_v_now);
__Pyx_INCREF(__pyx_v_host_info);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.heartbeat_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_v_host);
__Pyx_XDECREF(__pyx_v_local_now);
__Pyx_XDECREF(__pyx_v_other);
__Pyx_XDECREF(__pyx_v_bw);
__Pyx_XDECREF(__pyx_v_count);
__Pyx_XDECREF(__pyx_v_alpha);
__Pyx_XDECREF(__pyx_v_typ);
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF(__pyx_v_delay);
__Pyx_XDECREF(__pyx_9genexpr34__pyx_v_key);
__Pyx_XDECREF(__pyx_9genexpr34__pyx_v_duration);
__Pyx_XDECREF(__pyx_v_address);
__Pyx_XDECREF(__pyx_v_now);
__Pyx_XDECREF(__pyx_v_host_info);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_21generator4(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__171 = PyTuple_Pack(22, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_address, __pyx_n_s_resolve_address, __pyx_n_s_now, __pyx_n_s_resources, __pyx_n_s_host_info, __pyx_n_s_metrics, __pyx_n_s_executing, __pyx_n_s_parent, __pyx_n_s_host, __pyx_n_s_local_now, __pyx_n_s_frac, __pyx_n_s_other, __pyx_n_s_bw, __pyx_n_s_count, __pyx_n_s_alpha, __pyx_n_s_typ, __pyx_n_s_ws, __pyx_n_s_delay, __pyx_n_s_key, __pyx_n_s_duration); if (unlikely(!__pyx_tuple__171)) __PYX_ERR(0, 3380, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__171);
__Pyx_GIVEREF(__pyx_tuple__171);
__pyx_codeobj__172 = (PyObject*)__Pyx_PyCode_New(9, 0, 22, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__171, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_heartbeat_worker, 3380, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__172)) __PYX_ERR(0, 3380, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_18heartbeat_worker, 0, __pyx_n_s_Scheduler_heartbeat_worker, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__172)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3380, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__173);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_heartbeat_worker, __pyx_t_12) < 0) __PYX_ERR(0, 3380, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__173 = PyTuple_Pack(8, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_True), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__173)) __PYX_ERR(0, 3380, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__173);
__Pyx_GIVEREF(__pyx_tuple__173);
3381: self,
+3382: comm=None,
values[1] = ((PyObject *)((PyObject *)Py_None));
+3383: address=None,
values[2] = ((PyObject *)((PyObject *)Py_None));
+3384: resolve_address=True,
values[3] = ((PyObject *)((PyObject *)Py_True));
+3385: now=None,
values[4] = ((PyObject *)((PyObject *)Py_None));
+3386: resources=None,
values[5] = ((PyObject *)((PyObject *)Py_None));
+3387: host_info=None,
values[6] = ((PyObject *)((PyObject *)Py_None));
+3388: metrics=None,
values[7] = ((PyObject *)((PyObject *)Py_None));
+3389: executing=None,
values[8] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_address);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_resolve_address);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_now);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_resources);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_host_info);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_metrics);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_executing);
if (value) { values[8] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "heartbeat_worker") < 0)) __PYX_ERR(0, 3380, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_address = values[2];
__pyx_v_resolve_address = values[3];
__pyx_v_now = values[4];
__pyx_v_resources = values[5];
__pyx_v_host_info = values[6];
__pyx_v_metrics = values[7];
__pyx_v_executing = values[8];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("heartbeat_worker", 0, 1, 9, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3380, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.heartbeat_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_17heartbeat_worker(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_address, __pyx_v_resolve_address, __pyx_v_now, __pyx_v_resources, __pyx_v_host_info, __pyx_v_metrics, __pyx_v_executing);
3390: ):
+3391: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+3392: address = self.coerce_address(address, resolve_address)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_coerce_address); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_address, __pyx_v_resolve_address}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3392, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_address, __pyx_v_resolve_address}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3392, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_address); __Pyx_GIVEREF(__pyx_v_address); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_address); __Pyx_INCREF(__pyx_v_resolve_address); __Pyx_GIVEREF(__pyx_v_resolve_address); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_resolve_address); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_address, __pyx_t_1); __pyx_t_1 = 0;
+3393: address = normalize_address(address)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_normalize_address); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_v_address) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_address); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_address, __pyx_t_1); __pyx_t_1 = 0;
+3394: if address not in parent._workers:
__pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_v_address, __pyx_v_parent->_workers, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3394, __pyx_L1_error) __pyx_t_7 = (__pyx_t_6 != 0); if (__pyx_t_7) { /* … */ }
+3395: return {"status": "missing"}
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_status, __pyx_n_u_missing) < 0) __PYX_ERR(0, 3395, __pyx_L1_error) __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
3396:
+3397: host = get_address_host(address)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_get_address_host); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_v_address) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_address); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_host = __pyx_t_1; __pyx_t_1 = 0;
+3398: local_now = time()
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_time); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_local_now = __pyx_t_1; __pyx_t_1 = 0;
+3399: now = now or time()
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_now); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 3399, __pyx_L1_error) if (!__pyx_t_7) { } else { __Pyx_INCREF(__pyx_v_now); __pyx_t_1 = __pyx_v_now; goto __pyx_L4_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_time); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_t_2); __pyx_t_1 = __pyx_t_2; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_L4_bool_binop_done:; __Pyx_DECREF_SET(__pyx_v_now, __pyx_t_1); __pyx_t_1 = 0;
+3400: assert metrics
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_metrics); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 3400, __pyx_L1_error)
if (unlikely(!__pyx_t_7)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 3400, __pyx_L1_error)
}
}
#endif
+3401: host_info = host_info or {}
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_host_info); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 3401, __pyx_L1_error) if (!__pyx_t_7) { } else { __Pyx_INCREF(__pyx_v_host_info); __pyx_t_1 = __pyx_v_host_info; goto __pyx_L6_bool_binop_done; } __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_2); __pyx_t_1 = __pyx_t_2; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_L6_bool_binop_done:; __Pyx_DECREF_SET(__pyx_v_host_info, __pyx_t_1); __pyx_t_1 = 0;
3402:
+3403: parent._host_info[host]["last-seen"] = local_now
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_parent->_host_info, __pyx_v_host); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_kp_u_last_seen_2, __pyx_v_local_now) < 0)) __PYX_ERR(0, 3403, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3404: frac = 1 / len(parent._workers)
__pyx_t_1 = __pyx_v_parent->_workers; __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 3404, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__pyx_t_8 == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "float division"); __PYX_ERR(0, 3404, __pyx_L1_error) } __pyx_v_frac = (1.0 / ((double)__pyx_t_8));
+3405: parent._bandwidth = (
__pyx_v_parent->_bandwidth = __pyx_t_9;
+3406: parent._bandwidth * (1 - frac) + metrics["bandwidth"]["total"] * frac
__pyx_t_1 = PyFloat_FromDouble((__pyx_v_parent->_bandwidth * (1.0 - __pyx_v_frac))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_metrics, __pyx_n_u_bandwidth); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_total); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyFloat_FromDouble(__pyx_v_frac); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3406, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3407: )
+3408: for other, (bw, count) in metrics["bandwidth"]["workers"].items():
__pyx_t_8 = 0; __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_v_metrics, __pyx_n_u_bandwidth); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_workers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_t_1 == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); __PYX_ERR(0, 3408, __pyx_L1_error) } __pyx_t_3 = __Pyx_dict_iterator(__pyx_t_1, 0, __pyx_n_s_items, (&__pyx_t_10), (&__pyx_t_4)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = __pyx_t_3; __pyx_t_3 = 0; while (1) { __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_10, &__pyx_t_8, &__pyx_t_3, &__pyx_t_1, NULL, __pyx_t_4); if (unlikely(__pyx_t_11 == 0)) break; if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 3408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_other, __pyx_t_3); __pyx_t_3 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 3408, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_3 = PyList_GET_ITEM(sequence, 0); __pyx_t_5 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_12)->tp_iternext; index = 0; __pyx_t_3 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_3)) goto __pyx_L10_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_5 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_5)) goto __pyx_L10_unpacking_failed; __Pyx_GOTREF(__pyx_t_5); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_12), 2) < 0) __PYX_ERR(0, 3408, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; goto __pyx_L11_unpacking_done; __pyx_L10_unpacking_failed:; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 3408, __pyx_L1_error) __pyx_L11_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_bw, __pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_v_count, __pyx_t_5); __pyx_t_5 = 0;
+3409: if (address, other) not in self.bandwidth_workers:
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_address); __Pyx_GIVEREF(__pyx_v_address); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_address); __Pyx_INCREF(__pyx_v_other); __Pyx_GIVEREF(__pyx_v_other); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_other); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_bandwidth_workers); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_t_5, Py_NE)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 3409, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = (__pyx_t_7 != 0); if (__pyx_t_6) { /* … */ goto __pyx_L12; }
+3410: self.bandwidth_workers[address, other] = bw / count
__pyx_t_5 = __Pyx_PyNumber_Divide(__pyx_v_bw, __pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_bandwidth_workers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_address); __Pyx_GIVEREF(__pyx_v_address); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_address); __Pyx_INCREF(__pyx_v_other); __Pyx_GIVEREF(__pyx_v_other); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_other); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_t_3, __pyx_t_5) < 0)) __PYX_ERR(0, 3410, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3411: else:
+3412: alpha = (1 - frac) ** count
/*else*/ {
__pyx_t_5 = PyFloat_FromDouble((1.0 - __pyx_v_frac)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3412, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_3 = PyNumber_Power(__pyx_t_5, __pyx_v_count, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3412, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF_SET(__pyx_v_alpha, __pyx_t_3);
__pyx_t_3 = 0;
+3413: self.bandwidth_workers[address, other] = self.bandwidth_workers[
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_bandwidth_workers); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* … */ __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_address); __Pyx_GIVEREF(__pyx_v_address); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_address); __Pyx_INCREF(__pyx_v_other); __Pyx_GIVEREF(__pyx_v_other); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_other); /* … */ __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_bandwidth_workers); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_address); __Pyx_GIVEREF(__pyx_v_address); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_address); __Pyx_INCREF(__pyx_v_other); __Pyx_GIVEREF(__pyx_v_other); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_other); if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_t_5, __pyx_t_1) < 0)) __PYX_ERR(0, 3413, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_L12:; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3414: address, other
+3415: ] * alpha + bw * (1 - alpha)
__pyx_t_5 = PyNumber_Multiply(__pyx_t_1, __pyx_v_alpha); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_SubtractCObj(__pyx_int_1, __pyx_v_alpha, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyNumber_Multiply(__pyx_v_bw, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Add(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3416: for typ, (bw, count) in metrics["bandwidth"]["types"].items():
__pyx_t_10 = 0; __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_metrics, __pyx_n_u_bandwidth); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_types); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__pyx_t_5 == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); __PYX_ERR(0, 3416, __pyx_L1_error) } __pyx_t_1 = __Pyx_dict_iterator(__pyx_t_5, 0, __pyx_n_s_items, (&__pyx_t_8), (&__pyx_t_4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = __pyx_t_1; __pyx_t_1 = 0; while (1) { __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_8, &__pyx_t_10, &__pyx_t_1, &__pyx_t_5, NULL, __pyx_t_4); if (unlikely(__pyx_t_11 == 0)) break; if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 3416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF_SET(__pyx_v_typ, __pyx_t_1); __pyx_t_1 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { PyObject* sequence = __pyx_t_5; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 3416, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_3 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); #else __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { Py_ssize_t index = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_12)->tp_iternext; index = 0; __pyx_t_1 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_1)) goto __pyx_L15_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); index = 1; __pyx_t_3 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_3)) goto __pyx_L15_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_12), 2) < 0) __PYX_ERR(0, 3416, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; goto __pyx_L16_unpacking_done; __pyx_L15_unpacking_failed:; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 3416, __pyx_L1_error) __pyx_L16_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_bw, __pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_count, __pyx_t_3); __pyx_t_3 = 0;
+3417: if typ not in self.bandwidth_types:
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_bandwidth_types); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_v_typ, __pyx_t_5, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3417, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = (__pyx_t_6 != 0); if (__pyx_t_7) { /* … */ goto __pyx_L17; }
+3418: self.bandwidth_types[typ] = bw / count
__pyx_t_5 = __Pyx_PyNumber_Divide(__pyx_v_bw, __pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_bandwidth_types); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_typ, __pyx_t_5) < 0)) __PYX_ERR(0, 3418, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3419: else:
+3420: alpha = (1 - frac) ** count
/*else*/ {
__pyx_t_5 = PyFloat_FromDouble((1.0 - __pyx_v_frac)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3420, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_3 = PyNumber_Power(__pyx_t_5, __pyx_v_count, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3420, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF_SET(__pyx_v_alpha, __pyx_t_3);
__pyx_t_3 = 0;
+3421: self.bandwidth_types[typ] = self.bandwidth_types[typ] * alpha + bw * (
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_bandwidth_types); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_typ); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Multiply(__pyx_t_5, __pyx_v_alpha); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ __pyx_t_1 = PyNumber_Multiply(__pyx_v_bw, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Add(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_bandwidth_types); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_typ, __pyx_t_5) < 0)) __PYX_ERR(0, 3421, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_L17:; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3422: 1 - alpha
__pyx_t_5 = __Pyx_PyInt_SubtractCObj(__pyx_int_1, __pyx_v_alpha, 1, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
3423: )
3424:
+3425: ws: WorkerState = parent._workers[address]
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_parent->_workers, __pyx_v_address); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 3425, __pyx_L1_error) __pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_2); __pyx_t_2 = 0;
3426:
+3427: ws._last_seen = time()
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_time); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3427, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_ws->_last_seen = __pyx_t_9;
3428:
+3429: if executing is not None:
__pyx_t_7 = (__pyx_v_executing != Py_None);
__pyx_t_6 = (__pyx_t_7 != 0);
if (__pyx_t_6) {
/* … */
}
+3430: ws._executing = {
{ /* enter inner scope */
__pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3430, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_2);
/* … */
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_v_ws->_executing);
__Pyx_DECREF(__pyx_v_ws->_executing);
__pyx_v_ws->_executing = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
+3431: parent._tasks[key]: duration for key, duration in executing.items()
__pyx_t_8 = 0;
if (unlikely(__pyx_v_executing == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 3431, __pyx_L21_error)
}
__pyx_t_1 = __Pyx_dict_iterator(__pyx_v_executing, 0, __pyx_n_s_items, (&__pyx_t_10), (&__pyx_t_4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3431, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__pyx_t_5 = __pyx_t_1;
__pyx_t_1 = 0;
while (1) {
__pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_10, &__pyx_t_8, &__pyx_t_1, &__pyx_t_3, NULL, __pyx_t_4);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 3431, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_9genexpr34__pyx_v_key, __pyx_t_1);
__pyx_t_1 = 0;
__Pyx_XDECREF_SET(__pyx_9genexpr34__pyx_v_duration, __pyx_t_3);
__pyx_t_3 = 0;
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3431, __pyx_L21_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_parent->_tasks, __pyx_9genexpr34__pyx_v_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3431, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(PyDict_SetItem(__pyx_t_2, (PyObject*)__pyx_t_3, (PyObject*)__pyx_9genexpr34__pyx_v_duration))) __PYX_ERR(0, 3431, __pyx_L21_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_9genexpr34__pyx_v_duration); __pyx_9genexpr34__pyx_v_duration = 0;
__Pyx_XDECREF(__pyx_9genexpr34__pyx_v_key); __pyx_9genexpr34__pyx_v_key = 0;
goto __pyx_L24_exit_scope;
__pyx_L21_error:;
__Pyx_XDECREF(__pyx_9genexpr34__pyx_v_duration); __pyx_9genexpr34__pyx_v_duration = 0;
__Pyx_XDECREF(__pyx_9genexpr34__pyx_v_key); __pyx_9genexpr34__pyx_v_key = 0;
goto __pyx_L1_error;
__pyx_L24_exit_scope:;
} /* exit inner scope */
3432: }
3433:
+3434: if metrics:
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_metrics); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3434, __pyx_L1_error) if (__pyx_t_6) { /* … */ }
+3435: ws._metrics = metrics
if (!(likely(PyDict_CheckExact(__pyx_v_metrics))||((__pyx_v_metrics) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_metrics)->tp_name), 0))) __PYX_ERR(0, 3435, __pyx_L1_error) __pyx_t_2 = __pyx_v_metrics; __Pyx_INCREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_ws->_metrics); __Pyx_DECREF(__pyx_v_ws->_metrics); __pyx_v_ws->_metrics = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
3436:
+3437: if host_info:
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_host_info); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3437, __pyx_L1_error) if (__pyx_t_6) { /* … */ }
+3438: parent._host_info[host].update(host_info)
__pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_parent->_host_info, __pyx_v_host); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_update); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_v_host_info) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_host_info); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3439:
+3440: delay = time() - now
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_time); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Subtract(__pyx_t_2, __pyx_v_now); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_delay = __pyx_t_3; __pyx_t_3 = 0;
+3441: ws._time_delay = delay
__pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_delay); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3441, __pyx_L1_error) __pyx_v_ws->_time_delay = __pyx_t_9;
3442:
+3443: if resources:
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_resources); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3443, __pyx_L1_error) if (__pyx_t_6) { /* … */ }
+3444: self.add_resources(worker=address, resources=resources)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_add_resources); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_worker, __pyx_v_address) < 0) __PYX_ERR(0, 3444, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_resources, __pyx_v_resources) < 0) __PYX_ERR(0, 3444, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3445:
+3446: self.log_event(address, merge({"action": "heartbeat"}, metrics))
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_log_event_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_merge); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (PyDict_SetItem(__pyx_t_12, __pyx_n_u_action, __pyx_n_u_heartbeat) < 0) __PYX_ERR(0, 3446, __pyx_L1_error) __pyx_t_14 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_t_12, __pyx_v_metrics}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3446, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_t_12, __pyx_v_metrics}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3446, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif { __pyx_t_15 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_14) { __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL; } __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_4, __pyx_t_12); __Pyx_INCREF(__pyx_v_metrics); __Pyx_GIVEREF(__pyx_v_metrics); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_4, __pyx_v_metrics); __pyx_t_12 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_15, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_address, __pyx_t_3}; __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3446, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_address, __pyx_t_3}; __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3446, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_15 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_address); __Pyx_GIVEREF(__pyx_v_address); PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_4, __pyx_v_address); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_4, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3447:
+3448: return {
__Pyx_XDECREF(__pyx_r);
+3449: "status": "OK",
__pyx_t_5 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_status, __pyx_n_u_OK) < 0) __PYX_ERR(0, 3449, __pyx_L1_error)
+3450: "time": time(),
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_time); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_15); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_time, __pyx_t_2) < 0) __PYX_ERR(0, 3449, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3451: "heartbeat-interval": heartbeat_interval(len(parent._workers)),
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_heartbeat_interval_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_3 = __pyx_v_parent->_workers; __Pyx_INCREF(__pyx_t_3); __pyx_t_10 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 3451, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_1, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_3); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (PyDict_SetItem(__pyx_t_5, __pyx_kp_u_heartbeat_interval, __pyx_t_2) < 0) __PYX_ERR(0, 3449, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0;
3452: }
3453:
+3454: async def add_worker(
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_20add_worker(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_19add_worker[] = " Add a new worker to the cluster ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_20add_worker = {"add_worker", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_20add_worker, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_19add_worker};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_20add_worker(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_address = 0;
CYTHON_UNUSED PyObject *__pyx_v_keys = 0;
PyObject *__pyx_v_nthreads = 0;
PyObject *__pyx_v_name = 0;
PyObject *__pyx_v_resolve_address = 0;
PyObject *__pyx_v_nbytes = 0;
PyObject *__pyx_v_types = 0;
PyObject *__pyx_v_now = 0;
PyObject *__pyx_v_resources = 0;
PyObject *__pyx_v_host_info = 0;
PyObject *__pyx_v_memory_limit = 0;
PyObject *__pyx_v_metrics = 0;
PyObject *__pyx_v_pid = 0;
PyObject *__pyx_v_services = 0;
PyObject *__pyx_v_local_directory = 0;
PyObject *__pyx_v_versions = 0;
PyObject *__pyx_v_nanny = 0;
PyObject *__pyx_v_extra = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("add_worker (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_address,&__pyx_n_s_keys,&__pyx_n_s_nthreads,&__pyx_n_s_name,&__pyx_n_s_resolve_address,&__pyx_n_s_nbytes,&__pyx_n_s_types,&__pyx_n_s_now,&__pyx_n_s_resources,&__pyx_n_s_host_info,&__pyx_n_s_memory_limit,&__pyx_n_s_metrics,&__pyx_n_s_pid,&__pyx_n_s_services,&__pyx_n_s_local_directory,&__pyx_n_s_versions,&__pyx_n_s_nanny,&__pyx_n_s_extra,0};
PyObject* values[20] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_19add_worker(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_comm, PyObject *__pyx_v_address, CYTHON_UNUSED PyObject *__pyx_v_keys, PyObject *__pyx_v_nthreads, PyObject *__pyx_v_name, PyObject *__pyx_v_resolve_address, PyObject *__pyx_v_nbytes, PyObject *__pyx_v_types, PyObject *__pyx_v_now, PyObject *__pyx_v_resources, PyObject *__pyx_v_host_info, PyObject *__pyx_v_memory_limit, PyObject *__pyx_v_metrics, PyObject *__pyx_v_pid, PyObject *__pyx_v_services, PyObject *__pyx_v_local_directory, PyObject *__pyx_v_versions, PyObject *__pyx_v_nanny, PyObject *__pyx_v_extra) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_12_add_worker *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("add_worker", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_12_add_worker *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_12_add_worker(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_12_add_worker, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_12_add_worker *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 3454, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_comm = __pyx_v_comm;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm);
__pyx_cur_scope->__pyx_v_address = __pyx_v_address;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_address);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_address);
__pyx_cur_scope->__pyx_v_keys = __pyx_v_keys;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_keys);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_keys);
__pyx_cur_scope->__pyx_v_nthreads = __pyx_v_nthreads;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_nthreads);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_nthreads);
__pyx_cur_scope->__pyx_v_name = __pyx_v_name;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_name);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name);
__pyx_cur_scope->__pyx_v_resolve_address = __pyx_v_resolve_address;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_resolve_address);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_resolve_address);
__pyx_cur_scope->__pyx_v_nbytes = __pyx_v_nbytes;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_nbytes);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_nbytes);
__pyx_cur_scope->__pyx_v_types = __pyx_v_types;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_types);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_types);
__pyx_cur_scope->__pyx_v_now = __pyx_v_now;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_now);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_now);
__pyx_cur_scope->__pyx_v_resources = __pyx_v_resources;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_resources);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_resources);
__pyx_cur_scope->__pyx_v_host_info = __pyx_v_host_info;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_host_info);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_host_info);
__pyx_cur_scope->__pyx_v_memory_limit = __pyx_v_memory_limit;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_memory_limit);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_memory_limit);
__pyx_cur_scope->__pyx_v_metrics = __pyx_v_metrics;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_metrics);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_metrics);
__pyx_cur_scope->__pyx_v_pid = __pyx_v_pid;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_pid);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_pid);
__pyx_cur_scope->__pyx_v_services = __pyx_v_services;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_services);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_services);
__pyx_cur_scope->__pyx_v_local_directory = __pyx_v_local_directory;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_local_directory);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_local_directory);
__pyx_cur_scope->__pyx_v_versions = __pyx_v_versions;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_versions);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_versions);
__pyx_cur_scope->__pyx_v_nanny = __pyx_v_nanny;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_nanny);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_nanny);
__pyx_cur_scope->__pyx_v_extra = __pyx_v_extra;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_extra);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_extra);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_21generator4, __pyx_codeobj__56, (PyObject *) __pyx_cur_scope, __pyx_n_s_add_worker, __pyx_n_s_Scheduler_add_worker, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 3454, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.add_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_21generator4(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("add_worker", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3454, __pyx_L1_error)
/* … */
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_18);
__Pyx_XDECREF(__pyx_t_19);
__Pyx_XDECREF(__pyx_t_20);
__Pyx_XDECREF(__pyx_t_32);
__Pyx_XDECREF(__pyx_t_33);
__Pyx_AddTraceback("add_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__174 = PyTuple_Pack(39, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_address, __pyx_n_s_keys, __pyx_n_s_nthreads, __pyx_n_s_name, __pyx_n_s_resolve_address, __pyx_n_s_nbytes, __pyx_n_s_types, __pyx_n_s_now, __pyx_n_s_resources, __pyx_n_s_host_info, __pyx_n_s_memory_limit, __pyx_n_s_metrics, __pyx_n_s_pid, __pyx_n_s_services, __pyx_n_s_local_directory, __pyx_n_s_versions, __pyx_n_s_nanny, __pyx_n_s_extra, __pyx_n_s_parent, __pyx_n_s_host, __pyx_n_s_ws, __pyx_n_s_msg, __pyx_n_s_response, __pyx_n_s_plugin, __pyx_n_s_result, __pyx_n_s_e, __pyx_n_s_recommendations, __pyx_n_s_key, __pyx_n_s_tasks, __pyx_n_s_ts, __pyx_n_s_valid, __pyx_n_s_cs, __pyx_n_s_version_warning, __pyx_n_s_w, __pyx_n_s_ws, __pyx_n_s_c, __pyx_n_s_cs); if (unlikely(!__pyx_tuple__174)) __PYX_ERR(0, 3454, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__174);
__Pyx_GIVEREF(__pyx_tuple__174);
__pyx_codeobj__56 = (PyObject*)__Pyx_PyCode_New(20, 0, 39, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__174, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_add_worker, 3454, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(0, 3454, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_20add_worker, 0, __pyx_n_s_Scheduler_add_worker, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3454, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__175);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_add_worker, __pyx_t_12) < 0) __PYX_ERR(0, 3454, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__175 = PyTuple_Pack(19, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject*)__pyx_empty_tuple), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_True), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)__pyx_int_0), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__175)) __PYX_ERR(0, 3454, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__175);
__Pyx_GIVEREF(__pyx_tuple__175);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_12_add_worker {
PyObject_HEAD
PyObject *__pyx_v_address;
PyObject *__pyx_9genexpr36__pyx_v_c;
PyObject *__pyx_v_comm;
struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_9genexpr36__pyx_v_cs;
struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_cs;
PyObject *__pyx_v_e;
PyObject *__pyx_v_extra;
PyObject *__pyx_v_host;
PyObject *__pyx_v_host_info;
PyObject *__pyx_v_key;
PyObject *__pyx_v_keys;
PyObject *__pyx_v_local_directory;
PyObject *__pyx_v_memory_limit;
PyObject *__pyx_v_metrics;
PyObject *__pyx_v_msg;
PyObject *__pyx_v_name;
PyObject *__pyx_v_nanny;
PyObject *__pyx_v_nbytes;
PyObject *__pyx_v_now;
PyObject *__pyx_v_nthreads;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent;
PyObject *__pyx_v_pid;
PyObject *__pyx_v_plugin;
PyObject *__pyx_v_recommendations;
PyObject *__pyx_v_resolve_address;
PyObject *__pyx_v_resources;
PyObject *__pyx_v_response;
PyObject *__pyx_v_result;
PyObject *__pyx_v_self;
PyObject *__pyx_v_services;
PyObject *__pyx_v_tasks;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts;
PyObject *__pyx_v_types;
PyObject *__pyx_v_valid;
PyObject *__pyx_v_version_warning;
PyObject *__pyx_v_versions;
PyObject *__pyx_9genexpr35__pyx_v_w;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_9genexpr35__pyx_v_ws;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws;
PyObject *__pyx_t_0;
PyObject *__pyx_t_1;
PyObject *__pyx_t_2;
PyObject *__pyx_t_3;
PyObject *__pyx_t_4;
Py_ssize_t __pyx_t_5;
PyObject *(*__pyx_t_6)(PyObject *);
PyObject *__pyx_t_7;
PyObject *__pyx_t_8;
PyObject *__pyx_t_9;
};
3455: self,
+3456: comm=None,
values[1] = ((PyObject *)((PyObject *)Py_None));
+3457: address=None,
values[2] = ((PyObject *)((PyObject *)Py_None));
+3458: keys=(),
values[3] = ((PyObject *)((PyObject*)__pyx_empty_tuple));
+3459: nthreads=None,
values[4] = ((PyObject *)((PyObject *)Py_None));
+3460: name=None,
values[5] = ((PyObject *)((PyObject *)Py_None));
+3461: resolve_address=True,
values[6] = ((PyObject *)((PyObject *)Py_True));
+3462: nbytes=None,
values[7] = ((PyObject *)((PyObject *)Py_None));
+3463: types=None,
values[8] = ((PyObject *)((PyObject *)Py_None));
+3464: now=None,
values[9] = ((PyObject *)((PyObject *)Py_None));
+3465: resources=None,
values[10] = ((PyObject *)((PyObject *)Py_None));
+3466: host_info=None,
values[11] = ((PyObject *)((PyObject *)Py_None));
+3467: memory_limit=None,
values[12] = ((PyObject *)((PyObject *)Py_None));
+3468: metrics=None,
values[13] = ((PyObject *)((PyObject *)Py_None));
values[14] = ((PyObject *)((PyObject *)__pyx_int_0));
3469: pid=0,
+3470: services=None,
values[15] = ((PyObject *)((PyObject *)Py_None));
+3471: local_directory=None,
values[16] = ((PyObject *)((PyObject *)Py_None));
+3472: versions=None,
values[17] = ((PyObject *)((PyObject *)Py_None));
+3473: nanny=None,
values[18] = ((PyObject *)((PyObject *)Py_None));
+3474: extra=None,
values[19] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
CYTHON_FALLTHROUGH;
case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
CYTHON_FALLTHROUGH;
case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
CYTHON_FALLTHROUGH;
case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
CYTHON_FALLTHROUGH;
case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
CYTHON_FALLTHROUGH;
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_address);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keys);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nthreads);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_resolve_address);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nbytes);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_types);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_now);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_resources);
if (value) { values[10] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 11:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_host_info);
if (value) { values[11] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 12:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_memory_limit);
if (value) { values[12] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 13:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_metrics);
if (value) { values[13] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 14:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pid);
if (value) { values[14] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 15:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_services);
if (value) { values[15] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 16:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_local_directory);
if (value) { values[16] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 17:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_versions);
if (value) { values[17] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 18:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nanny);
if (value) { values[18] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 19:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_extra);
if (value) { values[19] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "add_worker") < 0)) __PYX_ERR(0, 3454, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
CYTHON_FALLTHROUGH;
case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
CYTHON_FALLTHROUGH;
case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
CYTHON_FALLTHROUGH;
case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
CYTHON_FALLTHROUGH;
case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
CYTHON_FALLTHROUGH;
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_address = values[2];
__pyx_v_keys = values[3];
__pyx_v_nthreads = values[4];
__pyx_v_name = values[5];
__pyx_v_resolve_address = values[6];
__pyx_v_nbytes = values[7];
__pyx_v_types = values[8];
__pyx_v_now = values[9];
__pyx_v_resources = values[10];
__pyx_v_host_info = values[11];
__pyx_v_memory_limit = values[12];
__pyx_v_metrics = values[13];
__pyx_v_pid = values[14];
__pyx_v_services = values[15];
__pyx_v_local_directory = values[16];
__pyx_v_versions = values[17];
__pyx_v_nanny = values[18];
__pyx_v_extra = values[19];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("add_worker", 0, 1, 20, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3454, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.add_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_19add_worker(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_address, __pyx_v_keys, __pyx_v_nthreads, __pyx_v_name, __pyx_v_resolve_address, __pyx_v_nbytes, __pyx_v_types, __pyx_v_now, __pyx_v_resources, __pyx_v_host_info, __pyx_v_memory_limit, __pyx_v_metrics, __pyx_v_pid, __pyx_v_services, __pyx_v_local_directory, __pyx_v_versions, __pyx_v_nanny, __pyx_v_extra);
3475: ):
3476: """ Add a new worker to the cluster """
+3477: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_cur_scope->__pyx_v_self; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1); __pyx_t_1 = 0;
+3478: with log_errors():
/*with:*/ {
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_log_errors); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3478, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
}
}
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3478, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3478, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3478, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3478, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/*try:*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
goto __pyx_L13_try_end;
__pyx_L8_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_32); __pyx_t_32 = 0;
__Pyx_XDECREF(__pyx_t_33); __pyx_t_33 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.add_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_2, &__pyx_t_18) < 0) __PYX_ERR(0, 3478, __pyx_L10_except_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_5 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_2, __pyx_t_18); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3478, __pyx_L10_except_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3478, __pyx_L10_except_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_17);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (__pyx_t_11 < 0) __PYX_ERR(0, 3478, __pyx_L10_except_error)
__pyx_t_10 = ((!(__pyx_t_11 != 0)) != 0);
if (__pyx_t_10) {
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_2, __pyx_t_18);
__pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_t_18 = 0;
__PYX_ERR(0, 3478, __pyx_L10_except_error)
}
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
goto __pyx_L9_exception_handled;
}
__pyx_L10_except_error:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L1_error;
__pyx_L12_try_return:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L5_return;
__pyx_L9_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
__pyx_L13_try_end:;
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_4) {
__pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3478, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
goto __pyx_L7;
}
__pyx_L5_return: {
__Pyx_PyThreadState_assign
__pyx_t_8 = 0; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_17 = 0; __pyx_t_16 = 0; __pyx_t_15 = 0;
if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15);
if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6);
__Pyx_XGOTREF(__pyx_t_8);
__Pyx_XGOTREF(__pyx_t_7);
__Pyx_XGOTREF(__pyx_t_6);
__Pyx_XGOTREF(__pyx_t_17);
__Pyx_XGOTREF(__pyx_t_16);
__Pyx_XGOTREF(__pyx_t_15);
__pyx_t_28 = __pyx_r;
__pyx_r = 0;
if (__pyx_t_4) {
__pyx_t_27 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3478, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_27);
__Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
}
__pyx_r = __pyx_t_28;
__pyx_t_28 = 0;
if (PY_MAJOR_VERSION >= 3) {
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_XGIVEREF(__pyx_t_15);
__Pyx_ExceptionReset(__pyx_t_17, __pyx_t_16, __pyx_t_15);
}
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_ErrRestore(__pyx_t_8, __pyx_t_7, __pyx_t_6);
__pyx_t_8 = 0; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_17 = 0; __pyx_t_16 = 0; __pyx_t_15 = 0;
goto __pyx_L0;
}
__pyx_L7:;
}
goto __pyx_L70;
__pyx_L4_error:;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L1_error;
__pyx_L70:;
}
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
+3479: address = self.coerce_address(address, resolve_address)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_coerce_address); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3479, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_9 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_address, __pyx_cur_scope->__pyx_v_resolve_address}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3479, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_address, __pyx_cur_scope->__pyx_v_resolve_address}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3479, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3479, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_cur_scope->__pyx_v_address); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_address); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_9, __pyx_cur_scope->__pyx_v_address); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_resolve_address); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_resolve_address); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_9, __pyx_cur_scope->__pyx_v_resolve_address); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3479, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_address); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_address, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0;
+3480: address = normalize_address(address)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_normalize_address); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3480, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_cur_scope->__pyx_v_address) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_cur_scope->__pyx_v_address); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3480, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_address); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_address, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0;
+3481: host = get_address_host(address)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_get_address_host); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3481, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_cur_scope->__pyx_v_address) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_cur_scope->__pyx_v_address); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3481, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_host = __pyx_t_1; __pyx_t_1 = 0;
3482:
+3483: ws: WorkerState = parent._workers.get(address)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_parent->_workers, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3483, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_cur_scope->__pyx_v_address) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_cur_scope->__pyx_v_address); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3483, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 3483, __pyx_L8_error) __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1); __pyx_t_1 = 0;
+3484: if ws is not None:
__pyx_t_10 = (((PyObject *)__pyx_cur_scope->__pyx_v_ws) != Py_None);
__pyx_t_11 = (__pyx_t_10 != 0);
if (unlikely(__pyx_t_11)) {
/* … */
}
+3485: raise ValueError("Worker already exists %s" % ws)
__pyx_t_1 = PyUnicode_Format(__pyx_kp_u_Worker_already_exists_s, ((PyObject *)__pyx_cur_scope->__pyx_v_ws)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3485, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3485, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 3485, __pyx_L8_error)
3486:
+3487: if name in parent._aliases:
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_aliases == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3487, __pyx_L8_error)
}
__pyx_t_11 = (__Pyx_PyDict_ContainsTF(__pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_v_parent->_aliases, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3487, __pyx_L8_error)
__pyx_t_10 = (__pyx_t_11 != 0);
if (__pyx_t_10) {
/* … */
}
+3488: logger.warning(
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_logger); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3488, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_warning); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3488, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3489: "Worker tried to connect with a duplicate name: %s", name
__pyx_t_1 = NULL;
__pyx_t_9 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5);
if (likely(__pyx_t_1)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_5, function);
__pyx_t_9 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_5)) {
PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_kp_u_Worker_tried_to_connect_with_a_d, __pyx_cur_scope->__pyx_v_name};
__pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3488, __pyx_L8_error)
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_kp_u_Worker_tried_to_connect_with_a_d, __pyx_cur_scope->__pyx_v_name};
__pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3488, __pyx_L8_error)
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#endif
{
__pyx_t_3 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3488, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_3);
if (__pyx_t_1) {
__Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = NULL;
}
__Pyx_INCREF(__pyx_kp_u_Worker_tried_to_connect_with_a_d);
__Pyx_GIVEREF(__pyx_kp_u_Worker_tried_to_connect_with_a_d);
PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_9, __pyx_kp_u_Worker_tried_to_connect_with_a_d);
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_name);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name);
PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_9, __pyx_cur_scope->__pyx_v_name);
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3488, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3490: )
3491: msg = {
+3492: "status": "error",
__pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3492, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_status, __pyx_n_u_error) < 0) __PYX_ERR(0, 3492, __pyx_L8_error)
+3493: "message": "name taken, %s" % name,
__pyx_t_5 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_name_taken_s, __pyx_cur_scope->__pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3493, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_message, __pyx_t_5) < 0) __PYX_ERR(0, 3492, __pyx_L8_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3494: "time": time(),
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_time); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3494, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3494, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_time, __pyx_t_5) < 0) __PYX_ERR(0, 3492, __pyx_L8_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_msg = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
3495: }
+3496: if comm:
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_comm); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3496, __pyx_L8_error) if (__pyx_t_10) { /* … */ }
+3497: await comm.write(msg)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_comm, __pyx_n_s_write); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3497, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_cur_scope->__pyx_v_msg) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_cur_scope->__pyx_v_msg); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3497, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_0 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_1 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_2 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_3 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L17_resume_from_await:; __pyx_t_4 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_6 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_7 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3497, __pyx_L8_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 3497, __pyx_L8_error) } }
+3498: return
__Pyx_XDECREF(__pyx_r);
__pyx_r = NULL;
goto __pyx_L12_try_return;
3499:
+3500: parent._workers[address] = ws = WorkerState(
__pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11distributed_9scheduler_WorkerState), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3500, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(PyObject_SetItem(__pyx_cur_scope->__pyx_v_parent->_workers, __pyx_cur_scope->__pyx_v_address, __pyx_t_5) < 0)) __PYX_ERR(0, 3500, __pyx_L8_error) __Pyx_INCREF(__pyx_t_5); __Pyx_GOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_ws)); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_5)); __Pyx_GIVEREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3501: address=address,
__pyx_t_2 = __Pyx_PyDict_NewPresized(10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3501, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_address, __pyx_cur_scope->__pyx_v_address) < 0) __PYX_ERR(0, 3501, __pyx_L8_error)
+3502: pid=pid,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_pid, __pyx_cur_scope->__pyx_v_pid) < 0) __PYX_ERR(0, 3501, __pyx_L8_error)
+3503: nthreads=nthreads,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_nthreads, __pyx_cur_scope->__pyx_v_nthreads) < 0) __PYX_ERR(0, 3501, __pyx_L8_error)
+3504: memory_limit=memory_limit or 0,
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_memory_limit); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3504, __pyx_L8_error) if (!__pyx_t_10) { } else { __Pyx_INCREF(__pyx_cur_scope->__pyx_v_memory_limit); __pyx_t_5 = __pyx_cur_scope->__pyx_v_memory_limit; goto __pyx_L18_bool_binop_done; } __pyx_t_3 = __Pyx_PyInt_From_long(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3504, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __pyx_t_3; __pyx_t_3 = 0; __pyx_L18_bool_binop_done:; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_memory_limit, __pyx_t_5) < 0) __PYX_ERR(0, 3501, __pyx_L8_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3505: name=name,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_name, __pyx_cur_scope->__pyx_v_name) < 0) __PYX_ERR(0, 3501, __pyx_L8_error)
+3506: local_directory=local_directory,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_local_directory, __pyx_cur_scope->__pyx_v_local_directory) < 0) __PYX_ERR(0, 3501, __pyx_L8_error)
+3507: services=services,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_services, __pyx_cur_scope->__pyx_v_services) < 0) __PYX_ERR(0, 3501, __pyx_L8_error)
+3508: versions=versions,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_versions, __pyx_cur_scope->__pyx_v_versions) < 0) __PYX_ERR(0, 3501, __pyx_L8_error)
+3509: nanny=nanny,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_nanny, __pyx_cur_scope->__pyx_v_nanny) < 0) __PYX_ERR(0, 3501, __pyx_L8_error)
+3510: extra=extra,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_extra, __pyx_cur_scope->__pyx_v_extra) < 0) __PYX_ERR(0, 3501, __pyx_L8_error)
3511: )
3512:
+3513: if "addresses" not in parent._host_info[host]:
__pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_parent->_host_info, __pyx_cur_scope->__pyx_v_host); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3513, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_10 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_addresses, __pyx_t_5, Py_NE)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3513, __pyx_L8_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_11 = (__pyx_t_10 != 0); if (__pyx_t_11) { /* … */ }
+3514: parent._host_info[host].update({"addresses": set(), "nthreads": 0})
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_parent->_host_info, __pyx_cur_scope->__pyx_v_host); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3514, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_update); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3514, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3514, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3514, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_addresses, __pyx_t_1) < 0) __PYX_ERR(0, 3514, __pyx_L8_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_nthreads, __pyx_int_0) < 0) __PYX_ERR(0, 3514, __pyx_L8_error) __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3514, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3515:
+3516: parent._host_info[host]["addresses"].add(address)
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_parent->_host_info, __pyx_cur_scope->__pyx_v_host); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3516, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_addresses); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3516, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_add); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3516, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_5 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_cur_scope->__pyx_v_address) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_cur_scope->__pyx_v_address); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3516, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3517: parent._host_info[host]["nthreads"] += nthreads
__pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_parent->_host_info, __pyx_cur_scope->__pyx_v_host); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3517, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_n_u_nthreads); __pyx_t_12 = __pyx_n_u_nthreads; __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3517, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_cur_scope->__pyx_v_nthreads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3517, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_t_12, __pyx_t_2) < 0)) __PYX_ERR(0, 3517, __pyx_L8_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3518:
+3519: parent._total_nthreads += nthreads
__pyx_t_5 = PyInt_FromSsize_t(__pyx_cur_scope->__pyx_v_parent->_total_nthreads); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3519, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_t_5, __pyx_cur_scope->__pyx_v_nthreads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3519, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_13 = __Pyx_PyIndex_AsSsize_t(__pyx_t_2); if (unlikely((__pyx_t_13 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3519, __pyx_L8_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_cur_scope->__pyx_v_parent->_total_nthreads = __pyx_t_13;
+3520: parent._aliases[name] = address
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_aliases == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3520, __pyx_L8_error)
}
if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_parent->_aliases, __pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_v_address) < 0)) __PYX_ERR(0, 3520, __pyx_L8_error)
3521:
+3522: response = self.heartbeat_worker(
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_heartbeat_worker); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3522, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3522, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_v_response = __pyx_t_3; __pyx_t_3 = 0;
+3523: address=address,
__pyx_t_5 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3523, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_address, __pyx_cur_scope->__pyx_v_address) < 0) __PYX_ERR(0, 3523, __pyx_L8_error)
+3524: resolve_address=resolve_address,
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_resolve_address, __pyx_cur_scope->__pyx_v_resolve_address) < 0) __PYX_ERR(0, 3523, __pyx_L8_error)
+3525: now=now,
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_now, __pyx_cur_scope->__pyx_v_now) < 0) __PYX_ERR(0, 3523, __pyx_L8_error)
+3526: resources=resources,
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_resources, __pyx_cur_scope->__pyx_v_resources) < 0) __PYX_ERR(0, 3523, __pyx_L8_error)
+3527: host_info=host_info,
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_host_info, __pyx_cur_scope->__pyx_v_host_info) < 0) __PYX_ERR(0, 3523, __pyx_L8_error)
+3528: metrics=metrics,
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_metrics, __pyx_cur_scope->__pyx_v_metrics) < 0) __PYX_ERR(0, 3523, __pyx_L8_error)
3529: )
3530:
3531: # Do not need to adjust parent._total_occupancy as self.occupancy[ws] cannot exist before this.
+3532: self.check_idle_saturated(ws)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_check_idle_saturated); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3532, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_2, ((PyObject *)__pyx_cur_scope->__pyx_v_ws)) : __Pyx_PyObject_CallOneArg(__pyx_t_5, ((PyObject *)__pyx_cur_scope->__pyx_v_ws)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3532, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3533:
3534: # for key in keys: # TODO
3535: # self.mark_key_in_memory(key, [address])
3536:
+3537: self.stream_comms[address] = BatchedSend(interval="5ms", loop=self.loop)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_BatchedSend); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3537, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3537, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_interval, __pyx_kp_u_5ms) < 0) __PYX_ERR(0, 3537, __pyx_L8_error) __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_loop); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3537, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_loop, __pyx_t_2) < 0) __PYX_ERR(0, 3537, __pyx_L8_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3537, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_stream_comms); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3537, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_cur_scope->__pyx_v_address, __pyx_t_2) < 0)) __PYX_ERR(0, 3537, __pyx_L8_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3538:
+3539: if ws._nthreads > len(ws._processing):
__pyx_t_2 = __pyx_cur_scope->__pyx_v_ws->_processing;
__Pyx_INCREF(__pyx_t_2);
if (unlikely(__pyx_t_2 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 3539, __pyx_L8_error)
}
__pyx_t_13 = PyDict_Size(__pyx_t_2); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(0, 3539, __pyx_L8_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_11 = ((__pyx_cur_scope->__pyx_v_ws->_nthreads > __pyx_t_13) != 0);
if (__pyx_t_11) {
/* … */
}
+3540: parent._idle[ws._address] = ws
if (unlikely(PyObject_SetItem(__pyx_cur_scope->__pyx_v_parent->_idle, __pyx_cur_scope->__pyx_v_ws->_address, ((PyObject *)__pyx_cur_scope->__pyx_v_ws)) < 0)) __PYX_ERR(0, 3540, __pyx_L8_error)
3541:
+3542: for plugin in self.plugins[:]:
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_plugins); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3542, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_t_2, 0, 0, NULL, NULL, &__pyx_slice__57, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3542, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) { __pyx_t_2 = __pyx_t_5; __Pyx_INCREF(__pyx_t_2); __pyx_t_13 = 0; __pyx_t_14 = NULL; } else { __pyx_t_13 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3542, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3542, __pyx_L8_error) } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; for (;;) { if (likely(!__pyx_t_14)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3542, __pyx_L8_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3542, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3542, __pyx_L8_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3542, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); #endif } } else { __pyx_t_5 = __pyx_t_14(__pyx_t_2); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 3542, __pyx_L8_error) } break; } __Pyx_GOTREF(__pyx_t_5); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_plugin); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_plugin, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_slice__57 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__57)) __PYX_ERR(0, 3542, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__57); __Pyx_GIVEREF(__pyx_slice__57);
+3543: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
goto __pyx_L31_try_end;
__pyx_L24_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_15);
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17);
goto __pyx_L8_error;
__pyx_L25_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_15);
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17);
__pyx_L31_try_end:;
}
+3544: result = plugin.add_worker(scheduler=self, worker=address)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_plugin, __pyx_n_s_add_worker); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3544, __pyx_L24_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3544, __pyx_L24_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_scheduler, __pyx_cur_scope->__pyx_v_self) < 0) __PYX_ERR(0, 3544, __pyx_L24_error) if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_worker, __pyx_cur_scope->__pyx_v_address) < 0) __PYX_ERR(0, 3544, __pyx_L24_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3544, __pyx_L24_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_result); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_result, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0;
+3545: if inspect.isawaitable(result):
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_inspect); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3545, __pyx_L24_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_isawaitable); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3545, __pyx_L24_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_cur_scope->__pyx_v_result) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_cur_scope->__pyx_v_result); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3545, __pyx_L24_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3545, __pyx_L24_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_11) { /* … */ }
+3546: await result
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_result); __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_1 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_2 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_3 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_4 = __pyx_t_8; __pyx_cur_scope->__pyx_t_5 = __pyx_t_13; __pyx_cur_scope->__pyx_t_6 = __pyx_t_14; __Pyx_XGIVEREF(__pyx_t_15); __pyx_cur_scope->__pyx_t_7 = __pyx_t_15; __Pyx_XGIVEREF(__pyx_t_16); __pyx_cur_scope->__pyx_t_8 = __pyx_t_16; __Pyx_XGIVEREF(__pyx_t_17); __pyx_cur_scope->__pyx_t_9 = __pyx_t_17; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L33_resume_from_await:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_4 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_6 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_7 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_13 = __pyx_cur_scope->__pyx_t_5; __pyx_t_14 = __pyx_cur_scope->__pyx_t_6; __pyx_t_15 = __pyx_cur_scope->__pyx_t_7; __pyx_cur_scope->__pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_t_15); __pyx_t_16 = __pyx_cur_scope->__pyx_t_8; __pyx_cur_scope->__pyx_t_8 = 0; __Pyx_XGOTREF(__pyx_t_16); __pyx_t_17 = __pyx_cur_scope->__pyx_t_9; __pyx_cur_scope->__pyx_t_9 = 0; __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3546, __pyx_L24_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 3546, __pyx_L24_error) } }
+3547: except Exception as e:
__pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_9) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.add_worker", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_3) < 0) __PYX_ERR(0, 3547, __pyx_L26_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_e = __pyx_t_5; /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = NULL; goto __pyx_L40; } __pyx_L39_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_26, &__pyx_t_27, &__pyx_t_28); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25) < 0)) __Pyx_ErrFetch(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_27); __Pyx_XGOTREF(__pyx_t_28); __pyx_t_9 = __pyx_lineno; __pyx_t_21 = __pyx_clineno; __pyx_t_22 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_26); __Pyx_XGIVEREF(__pyx_t_27); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_ExceptionReset(__pyx_t_26, __pyx_t_27, __pyx_t_28); } __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_XGIVEREF(__pyx_t_25); __Pyx_ErrRestore(__pyx_t_23, __pyx_t_24, __pyx_t_25); __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_21; __pyx_filename = __pyx_t_22; goto __pyx_L26_except_error; } __pyx_L40:; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L25_exception_handled; } goto __pyx_L26_except_error; __pyx_L26_except_error:;
+3548: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_n_s_logger); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 3548, __pyx_L39_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_n_s_exception); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3548, __pyx_L39_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_19 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_20))) { __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_20); if (likely(__pyx_t_19)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20); __Pyx_INCREF(__pyx_t_19); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_20, function); } } __pyx_t_18 = (__pyx_t_19) ? __Pyx_PyObject_Call2Args(__pyx_t_20, __pyx_t_19, __pyx_cur_scope->__pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_20, __pyx_cur_scope->__pyx_v_e); __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3548, __pyx_L39_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; }
3549:
3550: recommendations: dict
+3551: if nbytes:
__pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_nbytes); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3551, __pyx_L8_error) if (__pyx_t_11) { /* … */ }
+3552: for key in nbytes:
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_nbytes)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_nbytes)) { __pyx_t_2 = __pyx_cur_scope->__pyx_v_nbytes; __Pyx_INCREF(__pyx_t_2); __pyx_t_13 = 0; __pyx_t_14 = NULL; } else { __pyx_t_13 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_nbytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3552, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3552, __pyx_L8_error) } for (;;) { if (likely(!__pyx_t_14)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_13); __Pyx_INCREF(__pyx_t_3); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3552, __pyx_L8_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3552, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_13); __Pyx_INCREF(__pyx_t_3); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3552, __pyx_L8_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3552, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_14(__pyx_t_2); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 3552, __pyx_L8_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_key); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_key, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3553: tasks: dict = parent._tasks
__pyx_t_3 = __pyx_cur_scope->__pyx_v_parent->_tasks;
__Pyx_INCREF(__pyx_t_3);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_tasks);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_tasks, ((PyObject*)__pyx_t_3));
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
+3554: ts: TaskState = tasks.get(key)
if (unlikely(__pyx_cur_scope->__pyx_v_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 3554, __pyx_L8_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_cur_scope->__pyx_v_tasks, __pyx_cur_scope->__pyx_v_key, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3554, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3554, __pyx_L8_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_ts));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_3));
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
+3555: if ts is not None and ts._state in ("processing", "waiting"):
__pyx_t_10 = (((PyObject *)__pyx_cur_scope->__pyx_v_ts) != Py_None);
__pyx_t_29 = (__pyx_t_10 != 0);
if (__pyx_t_29) {
} else {
__pyx_t_11 = __pyx_t_29;
goto __pyx_L49_bool_binop_done;
}
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_ts->_state);
__pyx_t_12 = __pyx_cur_scope->__pyx_v_ts->_state;
__pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_12, __pyx_n_u_processing_2, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3555, __pyx_L8_error)
__pyx_t_30 = (__pyx_t_10 != 0);
if (!__pyx_t_30) {
} else {
__pyx_t_29 = __pyx_t_30;
goto __pyx_L51_bool_binop_done;
}
__pyx_t_30 = (__Pyx_PyUnicode_Equals(__pyx_t_12, __pyx_n_u_waiting, Py_EQ)); if (unlikely(__pyx_t_30 < 0)) __PYX_ERR(0, 3555, __pyx_L8_error)
__pyx_t_10 = (__pyx_t_30 != 0);
__pyx_t_29 = __pyx_t_10;
__pyx_L51_bool_binop_done:;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_10 = (__pyx_t_29 != 0);
__pyx_t_11 = __pyx_t_10;
__pyx_L49_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
+3556: recommendations = self.transition(
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_transition); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3556, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); /* … */ __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3556, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_key); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_cur_scope->__pyx_v_key); __Pyx_INCREF(__pyx_n_u_memory_2); __Pyx_GIVEREF(__pyx_n_u_memory_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_n_u_memory_2); /* … */ __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3556, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(PyDict_CheckExact(__pyx_t_18))||((__pyx_t_18) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_18)->tp_name), 0))) __PYX_ERR(0, 3556, __pyx_L8_error) __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_recommendations); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_recommendations, ((PyObject*)__pyx_t_18)); __Pyx_GIVEREF(__pyx_t_18); __pyx_t_18 = 0;
3557: key,
3558: "memory",
+3559: worker=address,
__pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3559, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_worker, __pyx_cur_scope->__pyx_v_address) < 0) __PYX_ERR(0, 3559, __pyx_L8_error)
+3560: nbytes=nbytes[key],
__pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_nbytes, __pyx_cur_scope->__pyx_v_key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3560, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_18); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_nbytes, __pyx_t_18) < 0) __PYX_ERR(0, 3559, __pyx_L8_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+3561: typename=types[key],
__pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_types, __pyx_cur_scope->__pyx_v_key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3561, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_18); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_typename, __pyx_t_18) < 0) __PYX_ERR(0, 3559, __pyx_L8_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
3562: )
+3563: self.transitions(recommendations)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_transitions_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3563, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_18 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_cur_scope->__pyx_v_recommendations) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_cur_scope->__pyx_v_recommendations); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3563, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
3564:
+3565: recommendations = {}
__pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3565, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_recommendations); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_recommendations, ((PyObject*)__pyx_t_2)); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
+3566: for ts in list(parent._unrunnable):
__pyx_t_2 = PySequence_List(__pyx_cur_scope->__pyx_v_parent->_unrunnable); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3566, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_18 = __pyx_t_2; __Pyx_INCREF(__pyx_t_18); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_18)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_13); __Pyx_INCREF(__pyx_t_2); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3566, __pyx_L8_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_18, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3566, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); #endif if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3566, __pyx_L8_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_ts)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_2)); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+3567: valid: set = self.valid_workers(ts)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_valid_workers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3567, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, ((PyObject *)__pyx_cur_scope->__pyx_v_ts)) : __Pyx_PyObject_CallOneArg(__pyx_t_1, ((PyObject *)__pyx_cur_scope->__pyx_v_ts)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3567, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(PySet_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "set", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(0, 3567, __pyx_L8_error) __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_valid); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_valid, ((PyObject*)__pyx_t_2)); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
+3568: if valid is None or ws in valid:
__pyx_t_10 = (__pyx_cur_scope->__pyx_v_valid == ((PyObject*)Py_None));
__pyx_t_29 = (__pyx_t_10 != 0);
if (!__pyx_t_29) {
} else {
__pyx_t_11 = __pyx_t_29;
goto __pyx_L56_bool_binop_done;
}
if (unlikely(__pyx_cur_scope->__pyx_v_valid == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3568, __pyx_L8_error)
}
__pyx_t_29 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_cur_scope->__pyx_v_ws), __pyx_cur_scope->__pyx_v_valid, Py_EQ)); if (unlikely(__pyx_t_29 < 0)) __PYX_ERR(0, 3568, __pyx_L8_error)
__pyx_t_10 = (__pyx_t_29 != 0);
__pyx_t_11 = __pyx_t_10;
__pyx_L56_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
+3569: recommendations[ts._key] = "waiting"
if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_recommendations, __pyx_cur_scope->__pyx_v_ts->_key, __pyx_n_u_waiting) < 0)) __PYX_ERR(0, 3569, __pyx_L8_error)
3570:
+3571: if recommendations:
__pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_recommendations); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3571, __pyx_L8_error) if (__pyx_t_11) { /* … */ }
+3572: self.transitions(recommendations)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_transitions_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3572, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_18 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_cur_scope->__pyx_v_recommendations) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_cur_scope->__pyx_v_recommendations); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3572, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
3573:
+3574: self.log_event(address, {"action": "add-worker"})
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_log_event_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3574, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3574, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_action, __pyx_kp_u_add_worker_2) < 0) __PYX_ERR(0, 3574, __pyx_L8_error) __pyx_t_5 = NULL; __pyx_t_21 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_21 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_cur_scope->__pyx_v_address, __pyx_t_1}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_21, 2+__pyx_t_21); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3574, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_cur_scope->__pyx_v_address, __pyx_t_1}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_21, 2+__pyx_t_21); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3574, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { __pyx_t_3 = PyTuple_New(2+__pyx_t_21); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3574, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_cur_scope->__pyx_v_address); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_address); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_21, __pyx_cur_scope->__pyx_v_address); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_21, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3574, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+3575: self.log_event("all", {"action": "add-worker", "worker": address})
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_log_event_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3575, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3575, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_action, __pyx_kp_u_add_worker_2) < 0) __PYX_ERR(0, 3575, __pyx_L8_error) if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_worker, __pyx_cur_scope->__pyx_v_address) < 0) __PYX_ERR(0, 3575, __pyx_L8_error) __pyx_t_1 = NULL; __pyx_t_21 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_21 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_n_u_all, __pyx_t_3}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_21, 2+__pyx_t_21); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3575, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_n_u_all, __pyx_t_3}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_21, 2+__pyx_t_21); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3575, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_21); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3575, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_n_u_all); __Pyx_GIVEREF(__pyx_n_u_all); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_21, __pyx_n_u_all); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_21, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3575, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+3576: logger.info("Register worker %s", ws)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logger); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3576, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_info); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3576, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_21 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_21 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_u_Register_worker_s, ((PyObject *)__pyx_cur_scope->__pyx_v_ws)}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_21, 2+__pyx_t_21); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3576, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_18); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_u_Register_worker_s, ((PyObject *)__pyx_cur_scope->__pyx_v_ws)}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_21, 2+__pyx_t_21); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3576, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_18); } else #endif { __pyx_t_3 = PyTuple_New(2+__pyx_t_21); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3576, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_kp_u_Register_worker_s); __Pyx_GIVEREF(__pyx_kp_u_Register_worker_s); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_21, __pyx_kp_u_Register_worker_s); __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_ws)); __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_ws)); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_21, ((PyObject *)__pyx_cur_scope->__pyx_v_ws)); __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3576, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
3577:
3578: msg = {
+3579: "status": "OK",
__pyx_t_18 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3579, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_18); if (PyDict_SetItem(__pyx_t_18, __pyx_n_u_status, __pyx_n_u_OK) < 0) __PYX_ERR(0, 3579, __pyx_L8_error)
+3580: "time": time(),
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_time); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3580, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_5 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3580, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_18, __pyx_n_u_time, __pyx_t_5) < 0) __PYX_ERR(0, 3579, __pyx_L8_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3581: "heartbeat-interval": heartbeat_interval(len(parent._workers)),
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_heartbeat_interval_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3581, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __pyx_cur_scope->__pyx_v_parent->_workers; __Pyx_INCREF(__pyx_t_2); __pyx_t_13 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(0, 3581, __pyx_L8_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3581, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3581, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_18, __pyx_kp_u_heartbeat_interval, __pyx_t_5) < 0) __PYX_ERR(0, 3579, __pyx_L8_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3582: "worker-plugins": self.worker_plugins,
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_worker_plugins); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3582, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_18, __pyx_kp_u_worker_plugins_2, __pyx_t_5) < 0) __PYX_ERR(0, 3579, __pyx_L8_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GIVEREF(__pyx_t_18); __pyx_cur_scope->__pyx_v_msg = ((PyObject*)__pyx_t_18); __pyx_t_18 = 0;
3583: }
3584:
3585: cs: ClientState
+3586: version_warning = version_module.error_message(
__Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_version_module); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3586, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_error_message); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3586, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; /* … */ __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3586, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_18); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_versions); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_versions); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_cur_scope->__pyx_v_versions); __pyx_t_18 = 0; __pyx_t_2 = 0; /* … */ __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3586, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_18); __pyx_cur_scope->__pyx_v_version_warning = __pyx_t_18; __pyx_t_18 = 0;
+3587: version_module.get_versions(),
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_version_module); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3587, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_get_versions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3587, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_18 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3587, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3588: merge(
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_merge); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3588, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); { /* enter inner scope */
+3589: {w: ws._versions for w, ws in parent._workers.items()},
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3589, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_13 = 0; if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); __PYX_ERR(0, 3589, __pyx_L8_error) } __pyx_t_19 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_parent->_workers, 0, __pyx_n_s_items, (&__pyx_t_31), (&__pyx_t_21)); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 3589, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = __pyx_t_19; __pyx_t_19 = 0; while (1) { __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_20, __pyx_t_31, &__pyx_t_13, &__pyx_t_19, &__pyx_t_32, NULL, __pyx_t_21); if (unlikely(__pyx_t_9 == 0)) break; if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 3589, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_GOTREF(__pyx_t_32); if (!(likely(((__pyx_t_32) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_32, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 3589, __pyx_L8_error) __Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr35__pyx_v_w); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr35__pyx_v_w, __pyx_t_19); __Pyx_GIVEREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_9genexpr35__pyx_v_ws)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr35__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_32)); __Pyx_GIVEREF(__pyx_t_32); __pyx_t_32 = 0; if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_cur_scope->__pyx_9genexpr35__pyx_v_w, (PyObject*)__pyx_cur_scope->__pyx_9genexpr35__pyx_v_ws->_versions))) __PYX_ERR(0, 3589, __pyx_L8_error) } __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } /* exit inner scope */ { /* enter inner scope */
+3590: {
__pyx_t_20 = PyDict_New(); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3590, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_20);
+3591: c: cs._versions
if (unlikely(PyDict_SetItem(__pyx_t_20, (PyObject*)__pyx_cur_scope->__pyx_9genexpr36__pyx_v_c, (PyObject*)__pyx_cur_scope->__pyx_9genexpr36__pyx_v_cs->_versions))) __PYX_ERR(0, 3591, __pyx_L8_error)
+3592: for c, cs in parent._clients.items()
__pyx_t_31 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_clients == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 3592, __pyx_L8_error)
}
__pyx_t_19 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_parent->_clients, 1, __pyx_n_s_items, (&__pyx_t_13), (&__pyx_t_21)); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 3592, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_19);
__Pyx_XDECREF(__pyx_t_32);
__pyx_t_32 = __pyx_t_19;
__pyx_t_19 = 0;
while (1) {
__pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_32, __pyx_t_13, &__pyx_t_31, &__pyx_t_19, &__pyx_t_33, NULL, __pyx_t_21);
if (unlikely(__pyx_t_9 == 0)) break;
if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 3592, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_19);
__Pyx_GOTREF(__pyx_t_33);
if (!(likely(((__pyx_t_33) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_33, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 3592, __pyx_L8_error)
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr36__pyx_v_c);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr36__pyx_v_c, __pyx_t_19);
__Pyx_GIVEREF(__pyx_t_19);
__pyx_t_19 = 0;
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_9genexpr36__pyx_v_cs));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr36__pyx_v_cs, ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_33));
__Pyx_GIVEREF(__pyx_t_33);
__pyx_t_33 = 0;
+3593: if cs._versions
__pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_9genexpr36__pyx_v_cs->_versions); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3593, __pyx_L8_error) if (__pyx_t_11) { /* … */ } } __Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0; } /* exit inner scope */ __pyx_t_32 = NULL; __pyx_t_21 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_32 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_32)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_32); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_21 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_32, __pyx_t_1, __pyx_t_20}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_21, 2+__pyx_t_21); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3588, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_32); __pyx_t_32 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_32, __pyx_t_1, __pyx_t_20}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_21, 2+__pyx_t_21); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3588, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_32); __pyx_t_32 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else #endif { __pyx_t_33 = PyTuple_New(2+__pyx_t_21); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 3588, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_33); if (__pyx_t_32) { __Pyx_GIVEREF(__pyx_t_32); PyTuple_SET_ITEM(__pyx_t_33, 0, __pyx_t_32); __pyx_t_32 = NULL; } __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_33, 0+__pyx_t_21, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_33, 1+__pyx_t_21, __pyx_t_20); __pyx_t_1 = 0; __pyx_t_20 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_33, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3588, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3594: },
3595: ),
3596: versions,
+3597: client_name="This Worker",
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3597, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_client_name, __pyx_kp_u_This_Worker) < 0) __PYX_ERR(0, 3597, __pyx_L8_error)
3598: )
+3599: msg.update(version_warning)
__pyx_t_18 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyDict_Type_update, __pyx_cur_scope->__pyx_v_msg, __pyx_cur_scope->__pyx_v_version_warning); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3599, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
3600:
+3601: if comm:
__pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_comm); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3601, __pyx_L8_error) if (__pyx_t_11) { /* … */ }
+3602: await comm.write(msg)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_comm, __pyx_n_s_write); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3602, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_18 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_cur_scope->__pyx_v_msg) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_cur_scope->__pyx_v_msg); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3602, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_18); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_0 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_1 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_2 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_3 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 3; return __pyx_r; __pyx_L65_resume_from_await:; __pyx_t_4 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_6 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_7 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3602, __pyx_L8_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 3602, __pyx_L8_error) } }
+3603: await self.handle_worker(comm=comm, worker=address)
__pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_handle_worker); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3603, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3603, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_comm, __pyx_cur_scope->__pyx_v_comm) < 0) __PYX_ERR(0, 3603, __pyx_L8_error) if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_worker, __pyx_cur_scope->__pyx_v_address) < 0) __PYX_ERR(0, 3603, __pyx_L8_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3603, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_0 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_1 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_2 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_3 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 4; return __pyx_r; __pyx_L66_resume_from_await:; __pyx_t_4 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_6 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_7 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3603, __pyx_L8_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 3603, __pyx_L8_error) } }
3604:
+3605: def update_graph_hlg(
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_23update_graph_hlg(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_23update_graph_hlg = {"update_graph_hlg", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_23update_graph_hlg, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_23update_graph_hlg(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_client = 0;
PyObject *__pyx_v_hlg = 0;
PyObject *__pyx_v_keys = 0;
PyObject *__pyx_v_dependencies = 0;
PyObject *__pyx_v_restrictions = 0;
PyObject *__pyx_v_priority = 0;
PyObject *__pyx_v_loose_restrictions = 0;
PyObject *__pyx_v_resources = 0;
PyObject *__pyx_v_submitting_task = 0;
PyObject *__pyx_v_retries = 0;
PyObject *__pyx_v_user_priority = 0;
PyObject *__pyx_v_actors = 0;
PyObject *__pyx_v_fifo_timeout = 0;
PyObject *__pyx_v_annotations = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("update_graph_hlg (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_client,&__pyx_n_s_hlg,&__pyx_n_s_keys,&__pyx_n_s_dependencies,&__pyx_n_s_restrictions,&__pyx_n_s_priority,&__pyx_n_s_loose_restrictions,&__pyx_n_s_resources,&__pyx_n_s_submitting_task,&__pyx_n_s_retries,&__pyx_n_s_user_priority,&__pyx_n_s_actors,&__pyx_n_s_fifo_timeout,&__pyx_n_s_annotations,0};
PyObject* values[15] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_22update_graph_hlg(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_client, PyObject *__pyx_v_hlg, PyObject *__pyx_v_keys, PyObject *__pyx_v_dependencies, PyObject *__pyx_v_restrictions, PyObject *__pyx_v_priority, PyObject *__pyx_v_loose_restrictions, PyObject *__pyx_v_resources, PyObject *__pyx_v_submitting_task, PyObject *__pyx_v_retries, PyObject *__pyx_v_user_priority, PyObject *__pyx_v_actors, PyObject *__pyx_v_fifo_timeout, PyObject *__pyx_v_annotations) {
PyObject *__pyx_v_dsk = NULL;
PyObject *__pyx_v_k = NULL;
PyObject *__pyx_v_v = NULL;
PyObject *__pyx_v_deps = NULL;
PyObject *__pyx_v_dsk_keys = NULL;
PyObject *__pyx_v_stripped_deps = NULL;
PyObject *__pyx_9genexpr37__pyx_v_k = NULL;
PyObject *__pyx_9genexpr37__pyx_v_v = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("update_graph_hlg", 0);
__Pyx_INCREF(__pyx_v_dependencies);
__Pyx_INCREF(__pyx_v_priority);
__Pyx_INCREF(__pyx_v_annotations);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.update_graph_hlg", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_dsk);
__Pyx_XDECREF(__pyx_v_k);
__Pyx_XDECREF(__pyx_v_v);
__Pyx_XDECREF(__pyx_v_deps);
__Pyx_XDECREF(__pyx_v_dsk_keys);
__Pyx_XDECREF(__pyx_v_stripped_deps);
__Pyx_XDECREF(__pyx_9genexpr37__pyx_v_k);
__Pyx_XDECREF(__pyx_9genexpr37__pyx_v_v);
__Pyx_XDECREF(__pyx_v_dependencies);
__Pyx_XDECREF(__pyx_v_priority);
__Pyx_XDECREF(__pyx_v_annotations);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__176 = PyTuple_Pack(23, __pyx_n_s_self, __pyx_n_s_client, __pyx_n_s_hlg, __pyx_n_s_keys, __pyx_n_s_dependencies, __pyx_n_s_restrictions, __pyx_n_s_priority, __pyx_n_s_loose_restrictions, __pyx_n_s_resources, __pyx_n_s_submitting_task, __pyx_n_s_retries, __pyx_n_s_user_priority, __pyx_n_s_actors, __pyx_n_s_fifo_timeout, __pyx_n_s_annotations, __pyx_n_s_dsk, __pyx_n_s_k, __pyx_n_s_v, __pyx_n_s_deps, __pyx_n_s_dsk_keys, __pyx_n_s_stripped_deps, __pyx_n_s_k, __pyx_n_s_v); if (unlikely(!__pyx_tuple__176)) __PYX_ERR(0, 3605, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__176);
__Pyx_GIVEREF(__pyx_tuple__176);
__pyx_codeobj__177 = (PyObject*)__Pyx_PyCode_New(15, 0, 23, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__176, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_update_graph_hlg_2, 3605, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__177)) __PYX_ERR(0, 3605, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_23update_graph_hlg, 0, __pyx_n_s_Scheduler_update_graph_hlg, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__177)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3605, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__178);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_update_graph_hlg_2, __pyx_t_12) < 0) __PYX_ERR(0, 3605, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__178 = PyTuple_Pack(14, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)__pyx_int_0), ((PyObject *)Py_None), ((PyObject *)__pyx_int_0), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__178)) __PYX_ERR(0, 3605, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__178);
__Pyx_GIVEREF(__pyx_tuple__178);
3606: self,
+3607: client=None,
values[1] = ((PyObject *)((PyObject *)Py_None));
+3608: hlg=None,
values[2] = ((PyObject *)((PyObject *)Py_None));
+3609: keys=None,
values[3] = ((PyObject *)((PyObject *)Py_None));
+3610: dependencies=None,
values[4] = ((PyObject *)((PyObject *)Py_None));
+3611: restrictions=None,
values[5] = ((PyObject *)((PyObject *)Py_None));
+3612: priority=None,
values[6] = ((PyObject *)((PyObject *)Py_None));
+3613: loose_restrictions=None,
values[7] = ((PyObject *)((PyObject *)Py_None));
+3614: resources=None,
values[8] = ((PyObject *)((PyObject *)Py_None));
+3615: submitting_task=None,
values[9] = ((PyObject *)((PyObject *)Py_None));
+3616: retries=None,
values[10] = ((PyObject *)((PyObject *)Py_None));
values[11] = ((PyObject *)((PyObject *)__pyx_int_0));
3617: user_priority=0,
+3618: actors=None,
values[12] = ((PyObject *)((PyObject *)Py_None));
values[13] = ((PyObject *)((PyObject *)__pyx_int_0));
3619: fifo_timeout=0,
+3620: annotations=None,
values[14] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_client);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hlg);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keys);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dependencies);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_restrictions);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_priority);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loose_restrictions);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_resources);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_submitting_task);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_retries);
if (value) { values[10] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 11:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_user_priority);
if (value) { values[11] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 12:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_actors);
if (value) { values[12] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 13:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fifo_timeout);
if (value) { values[13] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 14:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_annotations);
if (value) { values[14] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "update_graph_hlg") < 0)) __PYX_ERR(0, 3605, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_client = values[1];
__pyx_v_hlg = values[2];
__pyx_v_keys = values[3];
__pyx_v_dependencies = values[4];
__pyx_v_restrictions = values[5];
__pyx_v_priority = values[6];
__pyx_v_loose_restrictions = values[7];
__pyx_v_resources = values[8];
__pyx_v_submitting_task = values[9];
__pyx_v_retries = values[10];
__pyx_v_user_priority = values[11];
__pyx_v_actors = values[12];
__pyx_v_fifo_timeout = values[13];
__pyx_v_annotations = values[14];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("update_graph_hlg", 0, 1, 15, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3605, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.update_graph_hlg", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_22update_graph_hlg(__pyx_self, __pyx_v_self, __pyx_v_client, __pyx_v_hlg, __pyx_v_keys, __pyx_v_dependencies, __pyx_v_restrictions, __pyx_v_priority, __pyx_v_loose_restrictions, __pyx_v_resources, __pyx_v_submitting_task, __pyx_v_retries, __pyx_v_user_priority, __pyx_v_actors, __pyx_v_fifo_timeout, __pyx_v_annotations);
3621: ):
3622:
+3623: dsk, dependencies, annotations = highlevelgraph_unpack(hlg, annotations)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_highlevelgraph_unpack); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_hlg, __pyx_v_annotations}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3623, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_hlg, __pyx_v_annotations}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3623, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_hlg); __Pyx_GIVEREF(__pyx_v_hlg); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_hlg); __Pyx_INCREF(__pyx_v_annotations); __Pyx_GIVEREF(__pyx_v_annotations); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_annotations); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 3623, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 2); } else { __pyx_t_2 = PyList_GET_ITEM(sequence, 0); __pyx_t_5 = PyList_GET_ITEM(sequence, 1); __pyx_t_3 = PyList_GET_ITEM(sequence, 2); } __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_3); #else __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; index = 0; __pyx_t_2 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed; __Pyx_GOTREF(__pyx_t_2); index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L3_unpacking_failed; __Pyx_GOTREF(__pyx_t_5); index = 2; __pyx_t_3 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 3) < 0) __PYX_ERR(0, 3623, __pyx_L1_error) __pyx_t_7 = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L4_unpacking_done; __pyx_L3_unpacking_failed:; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 3623, __pyx_L1_error) __pyx_L4_unpacking_done:; } __pyx_v_dsk = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_dependencies, __pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF_SET(__pyx_v_annotations, __pyx_t_3); __pyx_t_3 = 0;
3624:
3625: # Remove any self-dependencies (happens on test_publish_bag() and others)
+3626: for k, v in dependencies.items():
__pyx_t_8 = 0;
if (unlikely(__pyx_v_dependencies == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 3626, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_dict_iterator(__pyx_v_dependencies, 0, __pyx_n_s_items, (&__pyx_t_9), (&__pyx_t_4)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3626, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_3;
__pyx_t_3 = 0;
while (1) {
__pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_8, &__pyx_t_3, &__pyx_t_5, NULL, __pyx_t_4);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 3626, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_3);
__pyx_t_3 = 0;
__Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_5);
__pyx_t_5 = 0;
+3627: deps = set(v)
__pyx_t_5 = PySet_New(__pyx_v_v); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF_SET(__pyx_v_deps, ((PyObject*)__pyx_t_5)); __pyx_t_5 = 0;
+3628: if k in deps:
__pyx_t_11 = (__Pyx_PySet_ContainsTF(__pyx_v_k, __pyx_v_deps, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3628, __pyx_L1_error) __pyx_t_12 = (__pyx_t_11 != 0); if (__pyx_t_12) { /* … */ }
+3629: deps.remove(k)
__pyx_t_13 = __Pyx_PySet_Remove(__pyx_v_deps, __pyx_v_k); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(0, 3629, __pyx_L1_error)
+3630: dependencies[k] = deps
if (unlikely(PyObject_SetItem(__pyx_v_dependencies, __pyx_v_k, __pyx_v_deps) < 0)) __PYX_ERR(0, 3630, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3631:
+3632: if priority is None:
__pyx_t_12 = (__pyx_v_priority == Py_None);
__pyx_t_11 = (__pyx_t_12 != 0);
if (__pyx_t_11) {
/* … */
}
3633: # Removing all non-local keys before calling order()
+3634: dsk_keys = set(dsk) # intersection() of sets is much faster than dict_keys
__pyx_t_1 = PySet_New(__pyx_v_dsk); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_dsk_keys = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+3635: stripped_deps = {
{ /* enter inner scope */
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3635, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_1);
+3636: k: v.intersection(dsk_keys)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_9genexpr37__pyx_v_v, __pyx_n_s_intersection); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3636, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_6, __pyx_v_dsk_keys) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_dsk_keys); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3636, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_9genexpr37__pyx_v_k, (PyObject*)__pyx_t_2))) __PYX_ERR(0, 3636, __pyx_L11_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3637: for k, v in dependencies.items()
__pyx_t_9 = 0;
if (unlikely(__pyx_v_dependencies == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 3637, __pyx_L11_error)
}
__pyx_t_3 = __Pyx_dict_iterator(__pyx_v_dependencies, 0, __pyx_n_s_items, (&__pyx_t_8), (&__pyx_t_4)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3637, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__pyx_t_5 = __pyx_t_3;
__pyx_t_3 = 0;
while (1) {
__pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_8, &__pyx_t_9, &__pyx_t_3, &__pyx_t_2, NULL, __pyx_t_4);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 3637, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_t_2);
__Pyx_XDECREF_SET(__pyx_9genexpr37__pyx_v_k, __pyx_t_3);
__pyx_t_3 = 0;
__Pyx_XDECREF_SET(__pyx_9genexpr37__pyx_v_v, __pyx_t_2);
__pyx_t_2 = 0;
+3638: if k in dsk_keys
__pyx_t_11 = (__Pyx_PySet_ContainsTF(__pyx_9genexpr37__pyx_v_k, __pyx_v_dsk_keys, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3638, __pyx_L11_error) __pyx_t_12 = (__pyx_t_11 != 0); if (__pyx_t_12) { /* … */ } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_9genexpr37__pyx_v_k); __pyx_9genexpr37__pyx_v_k = 0; __Pyx_XDECREF(__pyx_9genexpr37__pyx_v_v); __pyx_9genexpr37__pyx_v_v = 0; goto __pyx_L15_exit_scope; __pyx_L11_error:; __Pyx_XDECREF(__pyx_9genexpr37__pyx_v_k); __pyx_9genexpr37__pyx_v_k = 0; __Pyx_XDECREF(__pyx_9genexpr37__pyx_v_v); __pyx_9genexpr37__pyx_v_v = 0; goto __pyx_L1_error; __pyx_L15_exit_scope:; } /* exit inner scope */ __pyx_v_stripped_deps = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
3639: }
+3640: priority = dask.order.order(dsk, dependencies=stripped_deps)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_dask); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_order); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_order); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_dsk); __Pyx_GIVEREF(__pyx_v_dsk); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_dsk); __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dependencies, __pyx_v_stripped_deps) < 0) __PYX_ERR(0, 3640, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_priority, __pyx_t_3); __pyx_t_3 = 0;
3641:
+3642: return self.update_graph(
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_update_graph_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
3643: client,
3644: dsk,
3645: keys,
3646: dependencies,
3647: restrictions,
3648: priority,
3649: loose_restrictions,
3650: resources,
3651: submitting_task,
3652: retries,
3653: user_priority,
3654: actors,
3655: fifo_timeout,
+3656: annotations,
__pyx_t_5 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[15] = {__pyx_t_5, __pyx_v_client, __pyx_v_dsk, __pyx_v_keys, __pyx_v_dependencies, __pyx_v_restrictions, __pyx_v_priority, __pyx_v_loose_restrictions, __pyx_v_resources, __pyx_v_submitting_task, __pyx_v_retries, __pyx_v_user_priority, __pyx_v_actors, __pyx_v_fifo_timeout, __pyx_v_annotations}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 14+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3642, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[15] = {__pyx_t_5, __pyx_v_client, __pyx_v_dsk, __pyx_v_keys, __pyx_v_dependencies, __pyx_v_restrictions, __pyx_v_priority, __pyx_v_loose_restrictions, __pyx_v_resources, __pyx_v_submitting_task, __pyx_v_retries, __pyx_v_user_priority, __pyx_v_actors, __pyx_v_fifo_timeout, __pyx_v_annotations}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 14+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3642, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif { __pyx_t_1 = PyTuple_New(14+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_v_client); __Pyx_GIVEREF(__pyx_v_client); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_4, __pyx_v_client); __Pyx_INCREF(__pyx_v_dsk); __Pyx_GIVEREF(__pyx_v_dsk); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_4, __pyx_v_dsk); __Pyx_INCREF(__pyx_v_keys); __Pyx_GIVEREF(__pyx_v_keys); PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_4, __pyx_v_keys); __Pyx_INCREF(__pyx_v_dependencies); __Pyx_GIVEREF(__pyx_v_dependencies); PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_4, __pyx_v_dependencies); __Pyx_INCREF(__pyx_v_restrictions); __Pyx_GIVEREF(__pyx_v_restrictions); PyTuple_SET_ITEM(__pyx_t_1, 4+__pyx_t_4, __pyx_v_restrictions); __Pyx_INCREF(__pyx_v_priority); __Pyx_GIVEREF(__pyx_v_priority); PyTuple_SET_ITEM(__pyx_t_1, 5+__pyx_t_4, __pyx_v_priority); __Pyx_INCREF(__pyx_v_loose_restrictions); __Pyx_GIVEREF(__pyx_v_loose_restrictions); PyTuple_SET_ITEM(__pyx_t_1, 6+__pyx_t_4, __pyx_v_loose_restrictions); __Pyx_INCREF(__pyx_v_resources); __Pyx_GIVEREF(__pyx_v_resources); PyTuple_SET_ITEM(__pyx_t_1, 7+__pyx_t_4, __pyx_v_resources); __Pyx_INCREF(__pyx_v_submitting_task); __Pyx_GIVEREF(__pyx_v_submitting_task); PyTuple_SET_ITEM(__pyx_t_1, 8+__pyx_t_4, __pyx_v_submitting_task); __Pyx_INCREF(__pyx_v_retries); __Pyx_GIVEREF(__pyx_v_retries); PyTuple_SET_ITEM(__pyx_t_1, 9+__pyx_t_4, __pyx_v_retries); __Pyx_INCREF(__pyx_v_user_priority); __Pyx_GIVEREF(__pyx_v_user_priority); PyTuple_SET_ITEM(__pyx_t_1, 10+__pyx_t_4, __pyx_v_user_priority); __Pyx_INCREF(__pyx_v_actors); __Pyx_GIVEREF(__pyx_v_actors); PyTuple_SET_ITEM(__pyx_t_1, 11+__pyx_t_4, __pyx_v_actors); __Pyx_INCREF(__pyx_v_fifo_timeout); __Pyx_GIVEREF(__pyx_v_fifo_timeout); PyTuple_SET_ITEM(__pyx_t_1, 12+__pyx_t_4, __pyx_v_fifo_timeout); __Pyx_INCREF(__pyx_v_annotations); __Pyx_GIVEREF(__pyx_v_annotations); PyTuple_SET_ITEM(__pyx_t_1, 13+__pyx_t_4, __pyx_v_annotations); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
3657: )
3658:
+3659: def update_graph(
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_25update_graph(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_24update_graph[] = "\n Add new computations to the internal dask graph\n\n This happens whenever the Client calls submit, map, get, or compute.\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_25update_graph = {"update_graph", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_25update_graph, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_24update_graph};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_25update_graph(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_client = 0;
PyObject *__pyx_v_tasks = 0;
PyObject *__pyx_v_keys = 0;
PyObject *__pyx_v_dependencies = 0;
PyObject *__pyx_v_restrictions = 0;
PyObject *__pyx_v_priority = 0;
PyObject *__pyx_v_loose_restrictions = 0;
PyObject *__pyx_v_resources = 0;
PyObject *__pyx_v_submitting_task = 0;
PyObject *__pyx_v_retries = 0;
PyObject *__pyx_v_user_priority = 0;
PyObject *__pyx_v_actors = 0;
PyObject *__pyx_v_fifo_timeout = 0;
PyObject *__pyx_v_annotations = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("update_graph (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_client,&__pyx_n_s_tasks,&__pyx_n_s_keys,&__pyx_n_s_dependencies,&__pyx_n_s_restrictions,&__pyx_n_s_priority,&__pyx_n_s_loose_restrictions,&__pyx_n_s_resources,&__pyx_n_s_submitting_task,&__pyx_n_s_retries,&__pyx_n_s_user_priority,&__pyx_n_s_actors,&__pyx_n_s_fifo_timeout,&__pyx_n_s_annotations,0};
PyObject* values[15] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_12update_graph_2generator29(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_24update_graph(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_client, PyObject *__pyx_v_tasks, PyObject *__pyx_v_keys, PyObject *__pyx_v_dependencies, PyObject *__pyx_v_restrictions, PyObject *__pyx_v_priority, PyObject *__pyx_v_loose_restrictions, PyObject *__pyx_v_resources, PyObject *__pyx_v_submitting_task, PyObject *__pyx_v_retries, PyObject *__pyx_v_user_priority, PyObject *__pyx_v_actors, PyObject *__pyx_v_fifo_timeout, PyObject *__pyx_v_annotations) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_13_update_graph *__pyx_cur_scope;
PyObject *__pyx_v_start = NULL;
PyObject *__pyx_v_k = NULL;
Py_ssize_t __pyx_v_n;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_v_already_in_memory = NULL;
PyObject *__pyx_v_v = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_dts = 0;
PyObject *__pyx_v_dependents = NULL;
PyObject *__pyx_v_stack = NULL;
PyObject *__pyx_v_key = NULL;
PyObject *__pyx_v_dep = NULL;
PyObject *__pyx_v_d = NULL;
PyObject *__pyx_v_touched_keys = NULL;
PyObject *__pyx_v_touched_tasks = NULL;
PyObject *__pyx_v_a = NULL;
PyObject *__pyx_v_kv = NULL;
PyObject *__pyx_v_actor = NULL;
PyObject *__pyx_v_generation = NULL;
PyObject *__pyx_v_runnables = NULL;
PyObject *__pyx_v_w = NULL;
PyObject *__pyx_v_recommendations = 0;
PyObject *__pyx_v_plugin = NULL;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_end = NULL;
PyObject *__pyx_9genexpr40__pyx_v_k = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_9genexpr42__pyx_v_ts = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("update_graph", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_13_update_graph *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_13_update_graph(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_13_update_graph, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_13_update_graph *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 3659, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_tasks = __pyx_v_tasks;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_tasks);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_tasks);
__pyx_cur_scope->__pyx_v_annotations = __pyx_v_annotations;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_annotations);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_annotations);
__Pyx_INCREF(__pyx_v_keys);
__Pyx_INCREF(__pyx_v_dependencies);
__Pyx_INCREF(__pyx_v_restrictions);
__Pyx_INCREF(__pyx_v_priority);
__Pyx_INCREF(__pyx_v_loose_restrictions);
__Pyx_INCREF(__pyx_v_resources);
__Pyx_INCREF(__pyx_v_retries);
__Pyx_INCREF(__pyx_v_user_priority);
__Pyx_INCREF(__pyx_v_actors);
__Pyx_INCREF(__pyx_v_fifo_timeout);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_24);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.update_graph", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_start);
__Pyx_XDECREF(__pyx_v_k);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF(__pyx_v_already_in_memory);
__Pyx_XDECREF(__pyx_v_v);
__Pyx_XDECREF((PyObject *)__pyx_v_dts);
__Pyx_XDECREF(__pyx_v_dependents);
__Pyx_XDECREF(__pyx_v_stack);
__Pyx_XDECREF(__pyx_v_key);
__Pyx_XDECREF(__pyx_v_dep);
__Pyx_XDECREF(__pyx_v_d);
__Pyx_XDECREF(__pyx_v_touched_keys);
__Pyx_XDECREF(__pyx_v_touched_tasks);
__Pyx_XDECREF(__pyx_v_a);
__Pyx_XDECREF(__pyx_v_kv);
__Pyx_XDECREF(__pyx_v_actor);
__Pyx_XDECREF(__pyx_v_generation);
__Pyx_XDECREF(__pyx_v_runnables);
__Pyx_XDECREF(__pyx_v_w);
__Pyx_XDECREF(__pyx_v_recommendations);
__Pyx_XDECREF(__pyx_v_plugin);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_end);
__Pyx_XDECREF(__pyx_9genexpr40__pyx_v_k);
__Pyx_XDECREF((PyObject *)__pyx_9genexpr42__pyx_v_ts);
__Pyx_XDECREF(__pyx_v_keys);
__Pyx_XDECREF(__pyx_v_dependencies);
__Pyx_XDECREF(__pyx_v_restrictions);
__Pyx_XDECREF(__pyx_v_priority);
__Pyx_XDECREF(__pyx_v_loose_restrictions);
__Pyx_XDECREF(__pyx_v_resources);
__Pyx_XDECREF(__pyx_v_retries);
__Pyx_XDECREF(__pyx_v_user_priority);
__Pyx_XDECREF(__pyx_v_actors);
__Pyx_XDECREF(__pyx_v_fifo_timeout);
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__179 = PyTuple_Pack(49, __pyx_n_s_self, __pyx_n_s_client, __pyx_n_s_tasks, __pyx_n_s_keys, __pyx_n_s_dependencies, __pyx_n_s_restrictions, __pyx_n_s_priority, __pyx_n_s_loose_restrictions, __pyx_n_s_resources, __pyx_n_s_submitting_task, __pyx_n_s_retries, __pyx_n_s_user_priority, __pyx_n_s_actors, __pyx_n_s_fifo_timeout, __pyx_n_s_annotations, __pyx_n_s_parent, __pyx_n_s_start, __pyx_n_s_k, __pyx_n_s_n, __pyx_n_s_deps, __pyx_n_s_ts, __pyx_n_s_already_in_memory, __pyx_n_s_v, __pyx_n_s_dts, __pyx_n_s_dependents, __pyx_n_s_stack, __pyx_n_s_done, __pyx_n_s_key, __pyx_n_s_dep, __pyx_n_s_child_deps, __pyx_n_s_d, __pyx_n_s_touched_keys, __pyx_n_s_touched_tasks, __pyx_n_s_a, __pyx_n_s_kv, __pyx_n_s_actor, __pyx_n_s_generation, __pyx_n_s_runnables, __pyx_n_s_w, __pyx_n_s_recommendations, __pyx_n_s_plugin, __pyx_n_s_e, __pyx_n_s_end, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_k, __pyx_n_s_genexpr, __pyx_n_s_ts); if (unlikely(!__pyx_tuple__179)) __PYX_ERR(0, 3659, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__179);
__Pyx_GIVEREF(__pyx_tuple__179);
__pyx_codeobj__180 = (PyObject*)__Pyx_PyCode_New(15, 0, 49, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__179, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_update_graph_2, 3659, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__180)) __PYX_ERR(0, 3659, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_25update_graph, 0, __pyx_n_s_Scheduler_update_graph, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__180)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3659, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__181);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_update_graph_2, __pyx_t_12) < 0) __PYX_ERR(0, 3659, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__181 = PyTuple_Pack(14, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)__pyx_int_0), ((PyObject *)Py_None), ((PyObject *)__pyx_int_0), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__181)) __PYX_ERR(0, 3659, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__181);
__Pyx_GIVEREF(__pyx_tuple__181);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_13_update_graph {
PyObject_HEAD
PyObject *__pyx_v_annotations;
PyObject *__pyx_v_child_deps;
PyObject *__pyx_v_deps;
PyObject *__pyx_v_done;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent;
PyObject *__pyx_v_tasks;
};
3660: self,
+3661: client=None,
values[1] = ((PyObject *)((PyObject *)Py_None));
+3662: tasks=None,
values[2] = ((PyObject *)((PyObject *)Py_None));
+3663: keys=None,
values[3] = ((PyObject *)((PyObject *)Py_None));
+3664: dependencies=None,
values[4] = ((PyObject *)((PyObject *)Py_None));
+3665: restrictions=None,
values[5] = ((PyObject *)((PyObject *)Py_None));
+3666: priority=None,
values[6] = ((PyObject *)((PyObject *)Py_None));
+3667: loose_restrictions=None,
values[7] = ((PyObject *)((PyObject *)Py_None));
+3668: resources=None,
values[8] = ((PyObject *)((PyObject *)Py_None));
+3669: submitting_task=None,
values[9] = ((PyObject *)((PyObject *)Py_None));
+3670: retries=None,
values[10] = ((PyObject *)((PyObject *)Py_None));
values[11] = ((PyObject *)((PyObject *)__pyx_int_0));
3671: user_priority=0,
+3672: actors=None,
values[12] = ((PyObject *)((PyObject *)Py_None));
values[13] = ((PyObject *)((PyObject *)__pyx_int_0));
3673: fifo_timeout=0,
+3674: annotations=None,
values[14] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_client);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tasks);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keys);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dependencies);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_restrictions);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_priority);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loose_restrictions);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_resources);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_submitting_task);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_retries);
if (value) { values[10] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 11:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_user_priority);
if (value) { values[11] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 12:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_actors);
if (value) { values[12] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 13:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fifo_timeout);
if (value) { values[13] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 14:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_annotations);
if (value) { values[14] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "update_graph") < 0)) __PYX_ERR(0, 3659, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_client = values[1];
__pyx_v_tasks = values[2];
__pyx_v_keys = values[3];
__pyx_v_dependencies = values[4];
__pyx_v_restrictions = values[5];
__pyx_v_priority = values[6];
__pyx_v_loose_restrictions = values[7];
__pyx_v_resources = values[8];
__pyx_v_submitting_task = values[9];
__pyx_v_retries = values[10];
__pyx_v_user_priority = values[11];
__pyx_v_actors = values[12];
__pyx_v_fifo_timeout = values[13];
__pyx_v_annotations = values[14];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("update_graph", 0, 1, 15, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3659, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.update_graph", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_24update_graph(__pyx_self, __pyx_v_self, __pyx_v_client, __pyx_v_tasks, __pyx_v_keys, __pyx_v_dependencies, __pyx_v_restrictions, __pyx_v_priority, __pyx_v_loose_restrictions, __pyx_v_resources, __pyx_v_submitting_task, __pyx_v_retries, __pyx_v_user_priority, __pyx_v_actors, __pyx_v_fifo_timeout, __pyx_v_annotations);
3675: ):
3676: """
3677: Add new computations to the internal dask graph
3678:
3679: This happens whenever the Client calls submit, map, get, or compute.
3680: """
+3681: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1); __pyx_t_1 = 0;
+3682: start = time()
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_time); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_start = __pyx_t_1; __pyx_t_1 = 0;
+3683: fifo_timeout = parse_timedelta(fifo_timeout)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_parse_timedelta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3683, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_fifo_timeout) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_fifo_timeout); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3683, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_fifo_timeout, __pyx_t_1); __pyx_t_1 = 0;
+3684: keys = set(keys)
__pyx_t_1 = PySet_New(__pyx_v_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_keys, __pyx_t_1); __pyx_t_1 = 0;
+3685: if len(tasks) > 1:
__pyx_t_1 = __pyx_cur_scope->__pyx_v_tasks; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 3685, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_5 = ((__pyx_t_4 > 1) != 0); if (__pyx_t_5) { /* … */ }
+3686: self.log_event(
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_log_event_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+3687: ["all", client], {"action": "update_graph", "count": len(tasks)}
__pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_n_u_all); __Pyx_GIVEREF(__pyx_n_u_all); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_all); __Pyx_INCREF(__pyx_v_client); __Pyx_GIVEREF(__pyx_v_client); PyList_SET_ITEM(__pyx_t_3, 1, __pyx_v_client); __pyx_t_6 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_u_action, __pyx_n_u_update_graph_2) < 0) __PYX_ERR(0, 3687, __pyx_L1_error) __pyx_t_7 = __pyx_cur_scope->__pyx_v_tasks; __Pyx_INCREF(__pyx_t_7); __pyx_t_4 = PyObject_Length(__pyx_t_7); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 3687, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_6, __pyx_n_u_count, __pyx_t_7) < 0) __PYX_ERR(0, 3687, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_3, __pyx_t_6}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3686, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_3, __pyx_t_6}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3686, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_6); __pyx_t_3 = 0; __pyx_t_6 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3688: )
3689:
3690: # Remove aliases
+3691: for k in list(tasks):
__pyx_t_1 = PySequence_List(__pyx_cur_scope->__pyx_v_tasks); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3691, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3692: if tasks[k] is k:
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_tasks, __pyx_v_k); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = (__pyx_t_1 == __pyx_v_k); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_10 = (__pyx_t_5 != 0); if (__pyx_t_10) { /* … */ }
+3693: del tasks[k]
if (unlikely(PyObject_DelItem(__pyx_cur_scope->__pyx_v_tasks, __pyx_v_k) < 0)) __PYX_ERR(0, 3693, __pyx_L1_error)
3694:
+3695: dependencies = dependencies or {}
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_dependencies); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3695, __pyx_L1_error) if (!__pyx_t_10) { } else { __Pyx_INCREF(__pyx_v_dependencies); __pyx_t_2 = __pyx_v_dependencies; goto __pyx_L7_bool_binop_done; } __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_L7_bool_binop_done:; __Pyx_DECREF_SET(__pyx_v_dependencies, __pyx_t_2); __pyx_t_2 = 0;
3696:
+3697: n = 0
__pyx_v_n = 0;
+3698: while len(tasks) != n: # walk through new tasks, cancel any bad deps
while (1) {
__pyx_t_2 = __pyx_cur_scope->__pyx_v_tasks;
__Pyx_INCREF(__pyx_t_2);
__pyx_t_4 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 3698, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_10 = ((__pyx_t_4 != __pyx_v_n) != 0);
if (!__pyx_t_10) break;
+3699: n = len(tasks)
__pyx_t_2 = __pyx_cur_scope->__pyx_v_tasks;
__Pyx_INCREF(__pyx_t_2);
__pyx_t_4 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 3699, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_n = __pyx_t_4;
+3700: for k, deps in list(dependencies.items()):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dependencies, __pyx_n_s_items); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_2 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PySequence_List(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3700, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 3700, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_9 = PyList_GET_ITEM(sequence, 0); __pyx_t_6 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_6); #else __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_11 = Py_TYPE(__pyx_t_3)->tp_iternext; index = 0; __pyx_t_9 = __pyx_t_11(__pyx_t_3); if (unlikely(!__pyx_t_9)) goto __pyx_L13_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); index = 1; __pyx_t_6 = __pyx_t_11(__pyx_t_3); if (unlikely(!__pyx_t_6)) goto __pyx_L13_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_3), 2) < 0) __PYX_ERR(0, 3700, __pyx_L1_error) __pyx_t_11 = NULL; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L14_unpacking_done; __pyx_L13_unpacking_failed:; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 3700, __pyx_L1_error) __pyx_L14_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_9); __pyx_t_9 = 0; __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_deps); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_deps, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; }
+3701: if any(
__Pyx_XDECREF(__pyx_r); /* … */ __Pyx_XDECREF(__pyx_r); /* … */ if (__pyx_t_10) { /* … */ }
+3702: dep not in parent._tasks and dep not in tasks for dep in deps
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_12update_graph_genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_14_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_14_genexpr *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_14_genexpr(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_14_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_14_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 3702, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_13_update_graph *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_12update_graph_2generator29, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_Scheduler_update_graph_locals_ge, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 3702, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.update_graph.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_12update_graph_2generator29(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3702, __pyx_L1_error)
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_deps)) { __Pyx_RaiseClosureNameError("deps"); __PYX_ERR(0, 3702, __pyx_L1_error) }
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_deps)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_deps)) {
__pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_deps; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
__pyx_t_3 = NULL;
} else {
__pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_deps); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3702, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3702, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_3)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 3702, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3702, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
} else {
if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 3702, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3702, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
}
} else {
__pyx_t_4 = __pyx_t_3(__pyx_t_1);
if (unlikely(!__pyx_t_4)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 3702, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_4);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_dep);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_dep, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_parent)) { __Pyx_RaiseClosureNameError("parent"); __PYX_ERR(0, 3702, __pyx_L1_error) }
if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3702, __pyx_L1_error)
}
__pyx_t_6 = (__Pyx_PyDict_ContainsTF(__pyx_cur_scope->__pyx_v_dep, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_parent->_tasks, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3702, __pyx_L1_error)
__pyx_t_7 = (__pyx_t_6 != 0);
if (__pyx_t_7) {
} else {
__pyx_t_5 = __pyx_t_7;
goto __pyx_L7_bool_binop_done;
}
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_tasks)) { __Pyx_RaiseClosureNameError("tasks"); __PYX_ERR(0, 3702, __pyx_L1_error) }
__pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_cur_scope->__pyx_v_dep, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_tasks, Py_NE)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 3702, __pyx_L1_error)
__pyx_t_6 = (__pyx_t_7 != 0);
__pyx_t_5 = __pyx_t_6;
__pyx_L7_bool_binop_done:;
if (__pyx_t_5) {
/* … */
__Pyx_INCREF(Py_True);
__pyx_r = Py_True;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
}
/*else*/ {
/* … */
__Pyx_INCREF(Py_False);
__pyx_r = Py_False;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_12update_graph_5generator30(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_t_1 = __pyx_pf_11distributed_9scheduler_9Scheduler_12update_graph_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3702, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3702, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3702, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_14_genexpr {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_13_update_graph *__pyx_outer_scope;
PyObject *__pyx_v_dep;
};
3703: ): # bad key
+3704: logger.info("User asked for computation on lost data, %s", k)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_logger); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_info); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_kp_u_User_asked_for_computation_on_lo, __pyx_v_k}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3704, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_6); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_kp_u_User_asked_for_computation_on_lo, __pyx_v_k}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3704, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_6); } else #endif { __pyx_t_3 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_kp_u_User_asked_for_computation_on_lo); __Pyx_GIVEREF(__pyx_kp_u_User_asked_for_computation_on_lo); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_8, __pyx_kp_u_User_asked_for_computation_on_lo); __Pyx_INCREF(__pyx_v_k); __Pyx_GIVEREF(__pyx_v_k); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_8, __pyx_v_k); __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+3705: del tasks[k]
if (unlikely(PyObject_DelItem(__pyx_cur_scope->__pyx_v_tasks, __pyx_v_k) < 0)) __PYX_ERR(0, 3705, __pyx_L1_error)
+3706: del dependencies[k]
if (unlikely(PyObject_DelItem(__pyx_v_dependencies, __pyx_v_k) < 0)) __PYX_ERR(0, 3706, __pyx_L1_error)
+3707: if k in keys:
__pyx_t_10 = (__Pyx_PySequence_ContainsTF(__pyx_v_k, __pyx_v_keys, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3707, __pyx_L1_error) __pyx_t_5 = (__pyx_t_10 != 0); if (__pyx_t_5) { /* … */ }
+3708: keys.remove(k)
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_keys, __pyx_n_s_remove); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_6 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_3, __pyx_v_k) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_k); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+3709: self.report({"op": "cancelled-key", "key": k}, client=client)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_report); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (PyDict_SetItem(__pyx_t_9, __pyx_n_u_op, __pyx_kp_u_cancelled_key) < 0) __PYX_ERR(0, 3709, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_9, __pyx_n_u_key, __pyx_v_k) < 0) __PYX_ERR(0, 3709, __pyx_L1_error) __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_client, __pyx_v_client) < 0) __PYX_ERR(0, 3709, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3710: self.client_releases_keys(keys=[k], client=client)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_client_releases_keys_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_k); __Pyx_GIVEREF(__pyx_v_k); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_k); if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_keys, __pyx_t_3) < 0) __PYX_ERR(0, 3710, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_client, __pyx_v_client) < 0) __PYX_ERR(0, 3710, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3711:
3712: # Avoid computation that is already finished
3713: ts: TaskState
+3714: already_in_memory = set() # tasks that are already done
__pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_already_in_memory = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+3715: for k, v in dependencies.items():
__pyx_t_4 = 0;
if (unlikely(__pyx_v_dependencies == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 3715, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_dict_iterator(__pyx_v_dependencies, 0, __pyx_n_s_items, (&__pyx_t_12), (&__pyx_t_8)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3715, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_2);
__pyx_t_2 = __pyx_t_3;
__pyx_t_3 = 0;
while (1) {
__pyx_t_13 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_12, &__pyx_t_4, &__pyx_t_3, &__pyx_t_9, NULL, __pyx_t_8);
if (unlikely(__pyx_t_13 == 0)) break;
if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(0, 3715, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_3);
__pyx_t_3 = 0;
__Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_9);
__pyx_t_9 = 0;
+3716: if v and k in parent._tasks:
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_v); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3716, __pyx_L1_error) if (__pyx_t_10) { } else { __pyx_t_5 = __pyx_t_10; goto __pyx_L20_bool_binop_done; } if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 3716, __pyx_L1_error) } __pyx_t_10 = (__Pyx_PyDict_ContainsTF(__pyx_v_k, __pyx_cur_scope->__pyx_v_parent->_tasks, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3716, __pyx_L1_error) __pyx_t_14 = (__pyx_t_10 != 0); __pyx_t_5 = __pyx_t_14; __pyx_L20_bool_binop_done:; if (__pyx_t_5) { /* … */ } } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3717: ts = parent._tasks[k]
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3717, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_parent->_tasks, __pyx_v_k); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3717, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3717, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_9));
__pyx_t_9 = 0;
+3718: if ts._state in ("memory", "erred"):
__Pyx_INCREF(__pyx_v_ts->_state); __pyx_t_15 = __pyx_v_ts->_state; __pyx_t_14 = (__Pyx_PyUnicode_Equals(__pyx_t_15, __pyx_n_u_memory_2, Py_EQ)); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3718, __pyx_L1_error) __pyx_t_10 = (__pyx_t_14 != 0); if (!__pyx_t_10) { } else { __pyx_t_5 = __pyx_t_10; goto __pyx_L23_bool_binop_done; } __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_15, __pyx_n_u_erred, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3718, __pyx_L1_error) __pyx_t_14 = (__pyx_t_10 != 0); __pyx_t_5 = __pyx_t_14; __pyx_L23_bool_binop_done:; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_14 = (__pyx_t_5 != 0); if (__pyx_t_14) { /* … */ }
+3719: already_in_memory.add(k)
__pyx_t_16 = PySet_Add(__pyx_v_already_in_memory, __pyx_v_k); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 3719, __pyx_L1_error)
3720:
3721: dts: TaskState
+3722: if already_in_memory:
__pyx_t_14 = (PySet_GET_SIZE(__pyx_v_already_in_memory) != 0);
if (__pyx_t_14) {
/* … */
}
+3723: dependents = dask.core.reverse_dict(dependencies)
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_dask); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_core); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_reverse_dict); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_3, __pyx_v_dependencies) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_dependencies); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_dependents = __pyx_t_2; __pyx_t_2 = 0;
+3724: stack = list(already_in_memory)
__pyx_t_2 = PySequence_List(__pyx_v_already_in_memory); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_stack = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+3725: done = set(already_in_memory)
__pyx_t_2 = PySet_New(__pyx_v_already_in_memory); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_done = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+3726: while stack: # remove unnecessary dependencies
while (1) {
__pyx_t_14 = (PyList_GET_SIZE(__pyx_v_stack) != 0);
if (!__pyx_t_14) break;
+3727: key = stack.pop()
__pyx_t_2 = __Pyx_PyList_Pop(__pyx_v_stack); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_2); __pyx_t_2 = 0;
+3728: ts = parent._tasks[key]
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3728, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_parent->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3728, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3728, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_2));
__pyx_t_2 = 0;
+3729: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
goto __pyx_L35_try_end;
__pyx_L28_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
goto __pyx_L1_error;
__pyx_L29_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
__pyx_L35_try_end:;
}
+3730: deps = dependencies[key]
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_dependencies, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3730, __pyx_L28_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_deps); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_deps, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
+3731: except KeyError:
__pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); if (__pyx_t_8) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.update_graph", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_9, &__pyx_t_3) < 0) __PYX_ERR(0, 3731, __pyx_L30_except_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_9); __Pyx_GOTREF(__pyx_t_3);
+3732: deps = self.dependencies[key]
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dependencies); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3732, __pyx_L30_except_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3732, __pyx_L30_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_deps); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_deps, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L29_exception_handled; } goto __pyx_L30_except_error; __pyx_L30_except_error:;
+3733: for dep in deps:
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_deps)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_deps)) { __pyx_t_3 = __pyx_cur_scope->__pyx_v_deps; __Pyx_INCREF(__pyx_t_3); __pyx_t_12 = 0; __pyx_t_20 = NULL; } else { __pyx_t_12 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_deps); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_20 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3733, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_20)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_12); __Pyx_INCREF(__pyx_t_9); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 3733, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } else { if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_12); __Pyx_INCREF(__pyx_t_9); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 3733, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } } else { __pyx_t_9 = __pyx_t_20(__pyx_t_3); if (unlikely(!__pyx_t_9)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 3733, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_9); } __Pyx_XDECREF_SET(__pyx_v_dep, __pyx_t_9); __pyx_t_9 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; }
+3734: if dep in dependents:
__pyx_t_14 = (__Pyx_PySequence_ContainsTF(__pyx_v_dep, __pyx_v_dependents, Py_EQ)); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3734, __pyx_L1_error) __pyx_t_5 = (__pyx_t_14 != 0); if (__pyx_t_5) { /* … */ goto __pyx_L40; }
+3735: child_deps = dependents[dep]
__pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_dependents, __pyx_v_dep); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_child_deps); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_child_deps, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); __pyx_t_9 = 0;
3736: else:
+3737: child_deps = self.dependencies[dep]
/*else*/ {
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dependencies); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3737, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_dep); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3737, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_child_deps);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_child_deps, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
}
__pyx_L40:;
+3738: if all(d in done for d in child_deps):
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_12update_graph_3genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_15_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_15_genexpr *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_15_genexpr(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_15_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_15_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 3738, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_13_update_graph *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_12update_graph_5generator30, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_Scheduler_update_graph_locals_ge, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 3738, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.update_graph.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_12update_graph_5generator30(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3738, __pyx_L1_error)
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_child_deps)) { __Pyx_RaiseClosureNameError("child_deps"); __PYX_ERR(0, 3738, __pyx_L1_error) }
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_child_deps)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_child_deps)) {
__pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_child_deps; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
__pyx_t_3 = NULL;
} else {
__pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_child_deps); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3738, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3738, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_3)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 3738, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3738, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
} else {
if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 3738, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3738, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
}
} else {
__pyx_t_4 = __pyx_t_3(__pyx_t_1);
if (unlikely(!__pyx_t_4)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 3738, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_4);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_d);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_d, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_done)) { __Pyx_RaiseClosureNameError("done"); __PYX_ERR(0, 3738, __pyx_L1_error) }
if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_done == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3738, __pyx_L1_error)
}
__pyx_t_5 = (__Pyx_PySet_ContainsTF(__pyx_cur_scope->__pyx_v_d, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_done, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3738, __pyx_L1_error)
__pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
if (__pyx_t_6) {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(Py_False);
__pyx_r = Py_False;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
}
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(Py_True);
__pyx_r = Py_True;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_12update_graph_8generator31(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_t_2 = __pyx_pf_11distributed_9scheduler_9Scheduler_12update_graph_3genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3738, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_9 = __Pyx_Generator_Next(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3738, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3738, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (__pyx_t_5) {
/* … */
}
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_15_genexpr {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_13_update_graph *__pyx_outer_scope;
PyObject *__pyx_v_d;
};
+3739: if dep in parent._tasks and dep not in done:
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3739, __pyx_L1_error)
}
__pyx_t_14 = (__Pyx_PyDict_ContainsTF(__pyx_v_dep, __pyx_cur_scope->__pyx_v_parent->_tasks, Py_EQ)); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3739, __pyx_L1_error)
__pyx_t_10 = (__pyx_t_14 != 0);
if (__pyx_t_10) {
} else {
__pyx_t_5 = __pyx_t_10;
goto __pyx_L43_bool_binop_done;
}
__pyx_t_10 = (__Pyx_PySet_ContainsTF(__pyx_v_dep, __pyx_cur_scope->__pyx_v_done, Py_NE)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3739, __pyx_L1_error)
__pyx_t_14 = (__pyx_t_10 != 0);
__pyx_t_5 = __pyx_t_14;
__pyx_L43_bool_binop_done:;
if (__pyx_t_5) {
/* … */
}
+3740: done.add(dep)
__pyx_t_16 = PySet_Add(__pyx_cur_scope->__pyx_v_done, __pyx_v_dep); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 3740, __pyx_L1_error)
+3741: stack.append(dep)
__pyx_t_16 = __Pyx_PyList_Append(__pyx_v_stack, __pyx_v_dep); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 3741, __pyx_L1_error)
3742:
+3743: for d in done:
__pyx_t_12 = 0;
__pyx_t_9 = __Pyx_set_iterator(__pyx_cur_scope->__pyx_v_done, 1, (&__pyx_t_4), (&__pyx_t_8)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3743, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_3);
__pyx_t_3 = __pyx_t_9;
__pyx_t_9 = 0;
while (1) {
__pyx_t_13 = __Pyx_set_iter_next(__pyx_t_3, __pyx_t_4, &__pyx_t_12, &__pyx_t_9, __pyx_t_8);
if (unlikely(__pyx_t_13 == 0)) break;
if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(0, 3743, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF_SET(__pyx_v_d, __pyx_t_9);
__pyx_t_9 = 0;
+3744: tasks.pop(d, None)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_tasks, __pyx_n_s_pop); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = NULL; __pyx_t_13 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_13 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_d, Py_None}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3744, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_9); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_d, Py_None}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3744, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_9); } else #endif { __pyx_t_1 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_v_d); __Pyx_GIVEREF(__pyx_v_d); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_13, __pyx_v_d); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_13, Py_None); __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3745: dependencies.pop(d, None)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_dependencies, __pyx_n_s_pop); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; __pyx_t_13 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_13 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_d, Py_None}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3745, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_9); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_d, Py_None}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3745, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_9); } else #endif { __pyx_t_6 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_d); __Pyx_GIVEREF(__pyx_v_d); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_13, __pyx_v_d); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_13, Py_None); __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
3746:
3747: # Get or create task states
+3748: stack = list(keys)
__pyx_t_3 = PySequence_List(__pyx_v_keys); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_stack, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0;
+3749: touched_keys = set()
__pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_touched_keys = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+3750: touched_tasks = []
__pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_touched_tasks = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+3751: while stack:
while (1) {
__pyx_t_5 = (PyList_GET_SIZE(__pyx_v_stack) != 0);
if (!__pyx_t_5) break;
+3752: k = stack.pop()
__pyx_t_3 = __Pyx_PyList_Pop(__pyx_v_stack); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_3); __pyx_t_3 = 0;
+3753: if k in touched_keys:
__pyx_t_5 = (__Pyx_PySet_ContainsTF(__pyx_v_k, __pyx_v_touched_keys, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3753, __pyx_L1_error) __pyx_t_14 = (__pyx_t_5 != 0); if (__pyx_t_14) { /* … */ }
+3754: continue
goto __pyx_L47_continue;
3755: # XXX Have a method get_task_state(self, k) ?
+3756: ts = parent._tasks.get(k)
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 3756, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_cur_scope->__pyx_v_parent->_tasks, __pyx_v_k, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3756, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3756, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_3));
__pyx_t_3 = 0;
+3757: if ts is None:
__pyx_t_14 = (((PyObject *)__pyx_v_ts) == Py_None);
__pyx_t_5 = (__pyx_t_14 != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L50;
}
+3758: ts = self.new_task(k, tasks.get(k), "released")
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_new_task); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_tasks, __pyx_n_s_get); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_1, __pyx_v_k) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_k); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_v_k, __pyx_t_2, __pyx_n_u_released}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3758, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_v_k, __pyx_t_2, __pyx_n_u_released}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3758, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_1 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_v_k); __Pyx_GIVEREF(__pyx_v_k); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_8, __pyx_v_k); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_8, __pyx_t_2); __Pyx_INCREF(__pyx_n_u_released); __Pyx_GIVEREF(__pyx_n_u_released); PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_8, __pyx_n_u_released); __pyx_t_2 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3758, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_3)); __pyx_t_3 = 0;
+3759: elif not ts._run_spec:
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_ts->_run_spec); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3759, __pyx_L1_error) __pyx_t_14 = ((!__pyx_t_5) != 0); if (__pyx_t_14) { /* … */ } __pyx_L50:;
+3760: ts._run_spec = tasks.get(k)
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_tasks, __pyx_n_s_get); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_1, __pyx_v_k) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_k); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_ts->_run_spec); __Pyx_DECREF(__pyx_v_ts->_run_spec); __pyx_v_ts->_run_spec = __pyx_t_3; __pyx_t_3 = 0;
3761:
+3762: touched_keys.add(k)
__pyx_t_16 = PySet_Add(__pyx_v_touched_keys, __pyx_v_k); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 3762, __pyx_L1_error)
+3763: touched_tasks.append(ts)
__pyx_t_16 = __Pyx_PyList_Append(__pyx_v_touched_tasks, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 3763, __pyx_L1_error)
+3764: stack.extend(dependencies.get(k, ()))
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_dependencies, __pyx_n_s_get); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_k, __pyx_empty_tuple}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3764, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_k, __pyx_empty_tuple}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3764, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif { __pyx_t_2 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_k); __Pyx_GIVEREF(__pyx_v_k); PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_8, __pyx_v_k); __Pyx_INCREF(__pyx_empty_tuple); __Pyx_GIVEREF(__pyx_empty_tuple); PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_8, __pyx_empty_tuple); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_16 = __Pyx_PyList_Extend(__pyx_v_stack, __pyx_t_3); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 3764, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_L47_continue:; }
3765:
+3766: self.client_desires_keys(keys=keys, client=client)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_client_desires_keys_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_keys, __pyx_v_keys) < 0) __PYX_ERR(0, 3766, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_client, __pyx_v_client) < 0) __PYX_ERR(0, 3766, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3767:
3768: # Add dependencies
+3769: for key, deps in dependencies.items():
__pyx_t_4 = 0;
if (unlikely(__pyx_v_dependencies == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 3769, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_dict_iterator(__pyx_v_dependencies, 0, __pyx_n_s_items, (&__pyx_t_12), (&__pyx_t_8)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3769, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_2);
__pyx_t_2 = __pyx_t_9;
__pyx_t_9 = 0;
while (1) {
__pyx_t_13 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_12, &__pyx_t_4, &__pyx_t_9, &__pyx_t_3, NULL, __pyx_t_8);
if (unlikely(__pyx_t_13 == 0)) break;
if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(0, 3769, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_9);
__pyx_t_9 = 0;
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_deps);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_deps, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
+3770: ts = parent._tasks.get(key)
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 3770, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_cur_scope->__pyx_v_parent->_tasks, __pyx_v_key, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3770, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3770, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_3));
__pyx_t_3 = 0;
+3771: if ts is None or ts._dependencies:
__pyx_t_5 = (((PyObject *)__pyx_v_ts) == Py_None);
__pyx_t_10 = (__pyx_t_5 != 0);
if (!__pyx_t_10) {
} else {
__pyx_t_14 = __pyx_t_10;
goto __pyx_L54_bool_binop_done;
}
__pyx_t_10 = (__pyx_v_ts->_dependencies != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_dependencies) != 0);
__pyx_t_14 = __pyx_t_10;
__pyx_L54_bool_binop_done:;
if (__pyx_t_14) {
/* … */
}
+3772: continue
goto __pyx_L51_continue;
+3773: for dep in deps:
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_deps)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_deps)) { __pyx_t_3 = __pyx_cur_scope->__pyx_v_deps; __Pyx_INCREF(__pyx_t_3); __pyx_t_21 = 0; __pyx_t_20 = NULL; } else { __pyx_t_21 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_deps); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_20 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3773, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_20)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_21 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_21); __Pyx_INCREF(__pyx_t_9); __pyx_t_21++; if (unlikely(0 < 0)) __PYX_ERR(0, 3773, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_21); __pyx_t_21++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } else { if (__pyx_t_21 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_21); __Pyx_INCREF(__pyx_t_9); __pyx_t_21++; if (unlikely(0 < 0)) __PYX_ERR(0, 3773, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_21); __pyx_t_21++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } } else { __pyx_t_9 = __pyx_t_20(__pyx_t_3); if (unlikely(!__pyx_t_9)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 3773, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_9); } __Pyx_XDECREF_SET(__pyx_v_dep, __pyx_t_9); __pyx_t_9 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_L51_continue:; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3774: dts = parent._tasks[dep]
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3774, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_parent->_tasks, __pyx_v_dep); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3774, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3774, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_9));
__pyx_t_9 = 0;
+3775: ts.add_dependency(dts)
__pyx_t_9 = __pyx_f_11distributed_9scheduler_9TaskState_add_dependency(__pyx_v_ts, __pyx_v_dts, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3775, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
3776:
3777: # Compute priorities
+3778: if isinstance(user_priority, Number):
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Number); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = PyObject_IsInstance(__pyx_v_user_priority, __pyx_t_2); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 3778, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_10 = (__pyx_t_14 != 0); if (__pyx_t_10) { /* … */ }
+3779: user_priority = {k: user_priority for k in tasks}
{ /* enter inner scope */
__pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3779, __pyx_L61_error)
__Pyx_GOTREF(__pyx_t_2);
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_tasks)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_tasks)) {
__pyx_t_3 = __pyx_cur_scope->__pyx_v_tasks; __Pyx_INCREF(__pyx_t_3); __pyx_t_12 = 0;
__pyx_t_20 = NULL;
} else {
__pyx_t_12 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_tasks); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3779, __pyx_L61_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_20 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3779, __pyx_L61_error)
}
for (;;) {
if (likely(!__pyx_t_20)) {
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_12); __Pyx_INCREF(__pyx_t_9); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 3779, __pyx_L61_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3779, __pyx_L61_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
} else {
if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_12); __Pyx_INCREF(__pyx_t_9); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 3779, __pyx_L61_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3779, __pyx_L61_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
}
} else {
__pyx_t_9 = __pyx_t_20(__pyx_t_3);
if (unlikely(!__pyx_t_9)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 3779, __pyx_L61_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_9);
}
__Pyx_XDECREF_SET(__pyx_9genexpr40__pyx_v_k, __pyx_t_9);
__pyx_t_9 = 0;
if (unlikely(PyDict_SetItem(__pyx_t_2, (PyObject*)__pyx_9genexpr40__pyx_v_k, (PyObject*)__pyx_v_user_priority))) __PYX_ERR(0, 3779, __pyx_L61_error)
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_9genexpr40__pyx_v_k); __pyx_9genexpr40__pyx_v_k = 0;
goto __pyx_L64_exit_scope;
__pyx_L61_error:;
__Pyx_XDECREF(__pyx_9genexpr40__pyx_v_k); __pyx_9genexpr40__pyx_v_k = 0;
goto __pyx_L1_error;
__pyx_L64_exit_scope:;
} /* exit inner scope */
__Pyx_DECREF_SET(__pyx_v_user_priority, __pyx_t_2);
__pyx_t_2 = 0;
3780:
+3781: annotations = annotations or {}
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_annotations); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3781, __pyx_L1_error) if (!__pyx_t_10) { } else { __Pyx_INCREF(__pyx_cur_scope->__pyx_v_annotations); __pyx_t_2 = __pyx_cur_scope->__pyx_v_annotations; goto __pyx_L65_bool_binop_done; } __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_3); __pyx_t_2 = __pyx_t_3; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_L65_bool_binop_done:; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_annotations); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_annotations, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
+3782: restrictions = restrictions or {}
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_restrictions); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3782, __pyx_L1_error) if (!__pyx_t_10) { } else { __Pyx_INCREF(__pyx_v_restrictions); __pyx_t_2 = __pyx_v_restrictions; goto __pyx_L67_bool_binop_done; } __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_3); __pyx_t_2 = __pyx_t_3; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_L67_bool_binop_done:; __Pyx_DECREF_SET(__pyx_v_restrictions, __pyx_t_2); __pyx_t_2 = 0;
+3783: loose_restrictions = loose_restrictions or []
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_loose_restrictions); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3783, __pyx_L1_error) if (!__pyx_t_10) { } else { __Pyx_INCREF(__pyx_v_loose_restrictions); __pyx_t_2 = __pyx_v_loose_restrictions; goto __pyx_L69_bool_binop_done; } __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3783, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_3); __pyx_t_2 = __pyx_t_3; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_L69_bool_binop_done:; __Pyx_DECREF_SET(__pyx_v_loose_restrictions, __pyx_t_2); __pyx_t_2 = 0;
+3784: resources = resources or {}
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_resources); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3784, __pyx_L1_error) if (!__pyx_t_10) { } else { __Pyx_INCREF(__pyx_v_resources); __pyx_t_2 = __pyx_v_resources; goto __pyx_L71_bool_binop_done; } __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_3); __pyx_t_2 = __pyx_t_3; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_L71_bool_binop_done:; __Pyx_DECREF_SET(__pyx_v_resources, __pyx_t_2); __pyx_t_2 = 0;
+3785: retries = retries or {}
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_retries); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3785, __pyx_L1_error) if (!__pyx_t_10) { } else { __Pyx_INCREF(__pyx_v_retries); __pyx_t_2 = __pyx_v_retries; goto __pyx_L73_bool_binop_done; } __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_3); __pyx_t_2 = __pyx_t_3; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_L73_bool_binop_done:; __Pyx_DECREF_SET(__pyx_v_retries, __pyx_t_2); __pyx_t_2 = 0;
3786:
3787: # Override existing taxonomy with per task annotations
+3788: if annotations:
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_annotations); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3788, __pyx_L1_error) if (__pyx_t_10) { /* … */ }
+3789: if "priority" in annotations:
__pyx_t_10 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_priority, __pyx_cur_scope->__pyx_v_annotations, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3789, __pyx_L1_error) __pyx_t_14 = (__pyx_t_10 != 0); if (__pyx_t_14) { /* … */ }
+3790: user_priority.update(annotations["priority"])
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_user_priority, __pyx_n_s_update); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = __Pyx_PyObject_Dict_GetItem(__pyx_cur_scope->__pyx_v_annotations, __pyx_n_u_priority); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_9); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3791:
+3792: if "workers" in annotations:
__pyx_t_14 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_workers, __pyx_cur_scope->__pyx_v_annotations, Py_EQ)); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3792, __pyx_L1_error) __pyx_t_10 = (__pyx_t_14 != 0); if (__pyx_t_10) { /* … */ }
+3793: restrictions.update(annotations["workers"])
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_restrictions, __pyx_n_s_update); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = __Pyx_PyObject_Dict_GetItem(__pyx_cur_scope->__pyx_v_annotations, __pyx_n_u_workers); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_9); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3794:
+3795: if "allow_other_workers" in annotations:
__pyx_t_10 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_allow_other_workers, __pyx_cur_scope->__pyx_v_annotations, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3795, __pyx_L1_error) __pyx_t_14 = (__pyx_t_10 != 0); if (__pyx_t_14) { /* … */ }
+3796: loose_restrictions.extend(
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_loose_restrictions, __pyx_n_s_extend); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+3797: k for k, v in annotations["allow_other_workers"].items() if v
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_12update_graph_6genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_16_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_16_genexpr *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_16_genexpr(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_16_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_16_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 3797, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_13_update_graph *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_12update_graph_8generator31, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_Scheduler_update_graph_locals_ge, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 3797, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.update_graph.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_12update_graph_8generator31(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3797, __pyx_L1_error)
__pyx_t_2 = 0;
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_annotations)) { __Pyx_RaiseClosureNameError("annotations"); __PYX_ERR(0, 3797, __pyx_L1_error) }
__pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_annotations, __pyx_n_u_allow_other_workers); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3797, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__pyx_t_5 == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 3797, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_dict_iterator(__pyx_t_5, 0, __pyx_n_s_items, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3797, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_6, &__pyx_t_5, NULL, __pyx_t_4);
if (unlikely(__pyx_t_7 == 0)) break;
if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 3797, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_k);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_k, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_v);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_v, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
__pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_v); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 3797, __pyx_L1_error)
if (__pyx_t_8) {
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_k);
__pyx_r = __pyx_cur_scope->__pyx_v_k;
__Pyx_XGIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
__pyx_cur_scope->__pyx_t_3 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, yielding value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L7_resume_from_yield:;
__pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
__pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
__pyx_t_4 = __pyx_cur_scope->__pyx_t_3;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 3797, __pyx_L1_error)
}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_9 = __pyx_pf_11distributed_9scheduler_9Scheduler_12update_graph_6genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3797, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_1 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_1)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_9);
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3796, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_16_genexpr {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_13_update_graph *__pyx_outer_scope;
PyObject *__pyx_v_k;
PyObject *__pyx_v_v;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
Py_ssize_t __pyx_t_2;
int __pyx_t_3;
};
3798: )
3799:
+3800: if "retries" in annotations:
__pyx_t_14 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_retries, __pyx_cur_scope->__pyx_v_annotations, Py_EQ)); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3800, __pyx_L1_error) __pyx_t_10 = (__pyx_t_14 != 0); if (__pyx_t_10) { /* … */ }
+3801: retries.update(annotations["retries"])
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_retries, __pyx_n_s_update); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3801, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = __Pyx_PyObject_Dict_GetItem(__pyx_cur_scope->__pyx_v_annotations, __pyx_n_u_retries); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3801, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_9); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3801, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3802:
+3803: if "resources" in annotations:
__pyx_t_10 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_resources, __pyx_cur_scope->__pyx_v_annotations, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3803, __pyx_L1_error) __pyx_t_14 = (__pyx_t_10 != 0); if (__pyx_t_14) { /* … */ }
+3804: resources.update(annotations["resources"])
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_resources, __pyx_n_s_update); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = __Pyx_PyObject_Dict_GetItem(__pyx_cur_scope->__pyx_v_annotations, __pyx_n_u_resources); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_9); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3805:
+3806: for a, kv in annotations.items():
__pyx_t_12 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_annotations == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 3806, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_annotations, 0, __pyx_n_s_items, (&__pyx_t_4), (&__pyx_t_8)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3806, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_2);
__pyx_t_2 = __pyx_t_3;
__pyx_t_3 = 0;
while (1) {
__pyx_t_13 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_4, &__pyx_t_12, &__pyx_t_3, &__pyx_t_9, NULL, __pyx_t_8);
if (unlikely(__pyx_t_13 == 0)) break;
if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(0, 3806, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF_SET(__pyx_v_a, __pyx_t_3);
__pyx_t_3 = 0;
__Pyx_XDECREF_SET(__pyx_v_kv, __pyx_t_9);
__pyx_t_9 = 0;
+3807: for k, v in kv.items():
__pyx_t_21 = 0;
if (unlikely(__pyx_v_kv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 3807, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_dict_iterator(__pyx_v_kv, 0, __pyx_n_s_items, (&__pyx_t_22), (&__pyx_t_13)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3807, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_9);
__pyx_t_9 = __pyx_t_3;
__pyx_t_3 = 0;
while (1) {
__pyx_t_23 = __Pyx_dict_iter_next(__pyx_t_9, __pyx_t_22, &__pyx_t_21, &__pyx_t_3, &__pyx_t_1, NULL, __pyx_t_13);
if (unlikely(__pyx_t_23 == 0)) break;
if (unlikely(__pyx_t_23 == -1)) __PYX_ERR(0, 3807, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_3);
__pyx_t_3 = 0;
__Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_1);
__pyx_t_1 = 0;
+3808: ts = parent._tasks[k]
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3808, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_parent->_tasks, __pyx_v_k); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3808, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3808, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1));
__pyx_t_1 = 0;
+3809: ts._annotations[a] = v
if (unlikely(__pyx_v_ts->_annotations == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3809, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_ts->_annotations, __pyx_v_a, __pyx_v_v) < 0)) __PYX_ERR(0, 3809, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3810:
3811: # Add actors
+3812: if actors is True:
__pyx_t_14 = (__pyx_v_actors == Py_True);
__pyx_t_10 = (__pyx_t_14 != 0);
if (__pyx_t_10) {
/* … */
}
+3813: actors = list(keys)
__pyx_t_2 = PySequence_List(__pyx_v_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF_SET(__pyx_v_actors, __pyx_t_2); __pyx_t_2 = 0;
+3814: for actor in actors or []:
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_actors); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3814, __pyx_L1_error) if (!__pyx_t_10) { } else { __Pyx_INCREF(__pyx_v_actors); __pyx_t_2 = __pyx_v_actors; goto __pyx_L88_bool_binop_done; } __pyx_t_9 = PyList_New(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_9); __pyx_t_2 = __pyx_t_9; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_L88_bool_binop_done:; if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_9 = __pyx_t_2; __Pyx_INCREF(__pyx_t_9); __pyx_t_4 = 0; __pyx_t_20 = NULL; } else { __pyx_t_4 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_20 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3814, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_20)) { if (likely(PyList_CheckExact(__pyx_t_9))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_9)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3814, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_9, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_9)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3814, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_9, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_20(__pyx_t_9); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 3814, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XDECREF_SET(__pyx_v_actor, __pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3815: ts = parent._tasks[actor]
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3815, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_parent->_tasks, __pyx_v_actor); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3815, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3815, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_2));
__pyx_t_2 = 0;
+3816: ts._actor = True
__pyx_v_ts->_actor = 1;
3817:
+3818: priority = priority or dask.order.order(
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_priority); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3818, __pyx_L1_error) if (!__pyx_t_10) { } else { __Pyx_INCREF(__pyx_v_priority); __pyx_t_9 = __pyx_v_priority; goto __pyx_L90_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_dask); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_order); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_order); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3819: tasks
__pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_cur_scope->__pyx_v_tasks) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_cur_scope->__pyx_v_tasks); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_INCREF(__pyx_t_2); __pyx_t_9 = __pyx_t_2; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_L90_bool_binop_done:; __Pyx_DECREF_SET(__pyx_v_priority, __pyx_t_9); __pyx_t_9 = 0;
3820: ) # TODO: define order wrt old graph
3821:
+3822: if submitting_task: # sub-tasks get better priority than parent tasks
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_submitting_task); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3822, __pyx_L1_error) if (__pyx_t_10) { /* … */ goto __pyx_L92; }
+3823: ts = parent._tasks.get(submitting_task)
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 3823, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItemDefault(__pyx_cur_scope->__pyx_v_parent->_tasks, __pyx_v_submitting_task, Py_None); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3823, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3823, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_9));
__pyx_t_9 = 0;
+3824: if ts is not None:
__pyx_t_10 = (((PyObject *)__pyx_v_ts) != Py_None);
__pyx_t_14 = (__pyx_t_10 != 0);
if (__pyx_t_14) {
/* … */
goto __pyx_L93;
}
+3825: generation = ts._priority[0] - 0.01
if (unlikely(__pyx_v_ts->_priority == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3825, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_GetItemInt_Tuple(__pyx_v_ts->_priority, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3825, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_2 = __Pyx_PyFloat_SubtractObjC(__pyx_t_9, __pyx_float_0_01, 0.01, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3825, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_v_generation = __pyx_t_2;
__pyx_t_2 = 0;
3826: else: # super-task already cleaned up
+3827: generation = self.generation
/*else*/ {
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_generation); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3827, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_generation = __pyx_t_2;
__pyx_t_2 = 0;
}
__pyx_L93:;
+3828: elif self._last_time + fifo_timeout < start:
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_last_time); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = PyNumber_Add(__pyx_t_2, __pyx_v_fifo_timeout); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_t_9, __pyx_v_start, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3828, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3828, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_14) { /* … */ goto __pyx_L92; }
+3829: self.generation += 1 # older graph generations take precedence
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_generation); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = __Pyx_PyInt_AddObjC(__pyx_t_2, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_generation, __pyx_t_9) < 0) __PYX_ERR(0, 3829, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3830: generation = self.generation
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_generation); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_v_generation = __pyx_t_9; __pyx_t_9 = 0;
+3831: self._last_time = start
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_last_time, __pyx_v_start) < 0) __PYX_ERR(0, 3831, __pyx_L1_error)
3832: else:
+3833: generation = self.generation
/*else*/ {
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_generation); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3833, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_v_generation = __pyx_t_9;
__pyx_t_9 = 0;
}
__pyx_L92:;
3834:
+3835: for key in set(priority) & touched_keys:
__pyx_t_4 = 0; __pyx_t_2 = PySet_New(__pyx_v_priority); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyNumber_And(__pyx_t_2, __pyx_v_touched_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_set_iterator(__pyx_t_1, 1, (&__pyx_t_12), (&__pyx_t_8)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = __pyx_t_2; __pyx_t_2 = 0; while (1) { __pyx_t_13 = __Pyx_set_iter_next(__pyx_t_9, __pyx_t_12, &__pyx_t_4, &__pyx_t_2, __pyx_t_8); if (unlikely(__pyx_t_13 == 0)) break; if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(0, 3835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_2); __pyx_t_2 = 0;
+3836: ts = parent._tasks[key]
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3836, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_parent->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3836, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3836, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_2));
__pyx_t_2 = 0;
+3837: if ts._priority is None:
__pyx_t_14 = (__pyx_v_ts->_priority == ((PyObject*)Py_None));
__pyx_t_10 = (__pyx_t_14 != 0);
if (__pyx_t_10) {
/* … */
}
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3838: ts._priority = (-(user_priority.get(key, 0)), generation, priority[key])
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_user_priority, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3838, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = NULL; __pyx_t_13 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_13 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_key, __pyx_int_0}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3838, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_key, __pyx_int_0}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3838, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_6 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3838, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_13, __pyx_v_key); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_13, __pyx_int_0); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3838, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Negative(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3838, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_priority, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3838, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3838, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __Pyx_INCREF(__pyx_v_generation); __Pyx_GIVEREF(__pyx_v_generation); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_generation); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_6); __Pyx_GOTREF(__pyx_v_ts->_priority); __Pyx_DECREF(__pyx_v_ts->_priority); __pyx_v_ts->_priority = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0;
3839:
3840: # Ensure all runnables have a priority
+3841: runnables = [ts for ts in touched_tasks if ts._run_spec]
{ /* enter inner scope */
__pyx_t_9 = PyList_New(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3841, __pyx_L99_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_6 = __pyx_v_touched_tasks; __Pyx_INCREF(__pyx_t_6); __pyx_t_12 = 0;
for (;;) {
if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_2 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_12); __Pyx_INCREF(__pyx_t_2); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 3841, __pyx_L99_error)
#else
__pyx_t_2 = PySequence_ITEM(__pyx_t_6, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3841, __pyx_L99_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3841, __pyx_L99_error)
__Pyx_XDECREF_SET(__pyx_9genexpr42__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_2));
__pyx_t_2 = 0;
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_9genexpr42__pyx_v_ts->_run_spec); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3841, __pyx_L99_error)
if (__pyx_t_10) {
if (unlikely(__Pyx_ListComp_Append(__pyx_t_9, (PyObject*)__pyx_9genexpr42__pyx_v_ts))) __PYX_ERR(0, 3841, __pyx_L99_error)
}
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr42__pyx_v_ts); __pyx_9genexpr42__pyx_v_ts = 0;
goto __pyx_L103_exit_scope;
__pyx_L99_error:;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr42__pyx_v_ts); __pyx_9genexpr42__pyx_v_ts = 0;
goto __pyx_L1_error;
__pyx_L103_exit_scope:;
} /* exit inner scope */
__pyx_v_runnables = ((PyObject*)__pyx_t_9);
__pyx_t_9 = 0;
+3842: for ts in runnables:
__pyx_t_9 = __pyx_v_runnables; __Pyx_INCREF(__pyx_t_9); __pyx_t_12 = 0; for (;;) { if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_9)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_12); __Pyx_INCREF(__pyx_t_6); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 3842, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_9, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3842, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6)); __pyx_t_6 = 0; /* … */ } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3843: if ts._priority is None and ts._run_spec:
__pyx_t_14 = (__pyx_v_ts->_priority == ((PyObject*)Py_None));
__pyx_t_5 = (__pyx_t_14 != 0);
if (__pyx_t_5) {
} else {
__pyx_t_10 = __pyx_t_5;
goto __pyx_L107_bool_binop_done;
}
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_ts->_run_spec); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3843, __pyx_L1_error)
__pyx_t_10 = __pyx_t_5;
__pyx_L107_bool_binop_done:;
if (__pyx_t_10) {
/* … */
}
+3844: ts._priority = (self.generation, 0)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_generation); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_6); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_0); __pyx_t_6 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_ts->_priority); __Pyx_DECREF(__pyx_v_ts->_priority); __pyx_v_ts->_priority = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
3845:
+3846: if restrictions:
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_restrictions); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3846, __pyx_L1_error) if (__pyx_t_10) { /* … */ }
3847: # *restrictions* is a dict keying task ids to lists of
3848: # restriction specifications (either worker names or addresses)
+3849: for k, v in restrictions.items():
__pyx_t_12 = 0;
if (unlikely(__pyx_v_restrictions == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 3849, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_dict_iterator(__pyx_v_restrictions, 0, __pyx_n_s_items, (&__pyx_t_4), (&__pyx_t_8)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3849, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_9);
__pyx_t_9 = __pyx_t_2;
__pyx_t_2 = 0;
while (1) {
__pyx_t_13 = __Pyx_dict_iter_next(__pyx_t_9, __pyx_t_4, &__pyx_t_12, &__pyx_t_2, &__pyx_t_6, NULL, __pyx_t_8);
if (unlikely(__pyx_t_13 == 0)) break;
if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(0, 3849, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_2);
__pyx_t_2 = 0;
__Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_6);
__pyx_t_6 = 0;
+3850: if v is None:
__pyx_t_10 = (__pyx_v_v == Py_None);
__pyx_t_5 = (__pyx_t_10 != 0);
if (__pyx_t_5) {
/* … */
}
+3851: continue
goto __pyx_L110_continue;
+3852: ts = parent._tasks.get(k)
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 3852, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItemDefault(__pyx_cur_scope->__pyx_v_parent->_tasks, __pyx_v_k, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3852, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3852, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6));
__pyx_t_6 = 0;
+3853: if ts is None:
__pyx_t_5 = (((PyObject *)__pyx_v_ts) == Py_None);
__pyx_t_10 = (__pyx_t_5 != 0);
if (__pyx_t_10) {
/* … */
}
+3854: continue
goto __pyx_L110_continue;
+3855: ts._host_restrictions = set()
__pyx_t_6 = PySet_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __Pyx_GOTREF(__pyx_v_ts->_host_restrictions); __Pyx_DECREF(__pyx_v_ts->_host_restrictions); __pyx_v_ts->_host_restrictions = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0;
+3856: ts._worker_restrictions = set()
__pyx_t_6 = PySet_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __Pyx_GOTREF(__pyx_v_ts->_worker_restrictions); __Pyx_DECREF(__pyx_v_ts->_worker_restrictions); __pyx_v_ts->_worker_restrictions = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0;
+3857: for w in v:
if (likely(PyList_CheckExact(__pyx_v_v)) || PyTuple_CheckExact(__pyx_v_v)) { __pyx_t_6 = __pyx_v_v; __Pyx_INCREF(__pyx_t_6); __pyx_t_22 = 0; __pyx_t_20 = NULL; } else { __pyx_t_22 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_v_v); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_20 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3857, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_20)) { if (likely(PyList_CheckExact(__pyx_t_6))) { if (__pyx_t_22 >= PyList_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_22); __Pyx_INCREF(__pyx_t_2); __pyx_t_22++; if (unlikely(0 < 0)) __PYX_ERR(0, 3857, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_6, __pyx_t_22); __pyx_t_22++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_22 >= PyTuple_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_22); __Pyx_INCREF(__pyx_t_2); __pyx_t_22++; if (unlikely(0 < 0)) __PYX_ERR(0, 3857, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_6, __pyx_t_22); __pyx_t_22++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_20(__pyx_t_6); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 3857, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XDECREF_SET(__pyx_v_w, __pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_L110_continue:; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3858: try:
{
/*try:*/ {
/* … */
}
/* … */
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_ExceptionReset(__pyx_t_19, __pyx_t_18, __pyx_t_17);
goto __pyx_L1_error;
__pyx_L117_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_ExceptionReset(__pyx_t_19, __pyx_t_18, __pyx_t_17);
__pyx_L123_try_end:;
}
+3859: w = self.coerce_address(w)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_coerce_address); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3859, __pyx_L116_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_v_w) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_w); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3859, __pyx_L116_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_w, __pyx_t_2); __pyx_t_2 = 0;
+3860: except ValueError:
__pyx_t_13 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ValueError); if (__pyx_t_13) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.update_graph", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_3) < 0) __PYX_ERR(0, 3860, __pyx_L118_except_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_3);
3861: # Not a valid address, but perhaps it's a hostname
+3862: ts._host_restrictions.add(w)
if (unlikely(__pyx_v_ts->_host_restrictions == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 3862, __pyx_L118_except_error)
}
__pyx_t_16 = PySet_Add(__pyx_v_ts->_host_restrictions, __pyx_v_w); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 3862, __pyx_L118_except_error)
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
goto __pyx_L117_exception_handled;
}
goto __pyx_L118_except_error;
__pyx_L118_except_error:;
3863: else:
+3864: ts._worker_restrictions.add(w)
/*else:*/ {
if (unlikely(__pyx_v_ts->_worker_restrictions == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 3864, __pyx_L118_except_error)
}
__pyx_t_16 = PySet_Add(__pyx_v_ts->_worker_restrictions, __pyx_v_w); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 3864, __pyx_L118_except_error)
}
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
goto __pyx_L123_try_end;
__pyx_L116_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
3865:
+3866: if loose_restrictions:
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_loose_restrictions); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3866, __pyx_L1_error) if (__pyx_t_10) { /* … */ }
+3867: for k in loose_restrictions:
if (likely(PyList_CheckExact(__pyx_v_loose_restrictions)) || PyTuple_CheckExact(__pyx_v_loose_restrictions)) { __pyx_t_9 = __pyx_v_loose_restrictions; __Pyx_INCREF(__pyx_t_9); __pyx_t_4 = 0; __pyx_t_20 = NULL; } else { __pyx_t_4 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_v_loose_restrictions); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_20 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3867, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_20)) { if (likely(PyList_CheckExact(__pyx_t_9))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_9)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3867, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_9, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_9)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3867, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_9, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif } } else { __pyx_t_6 = __pyx_t_20(__pyx_t_9); if (unlikely(!__pyx_t_6)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 3867, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_6); } __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_6); __pyx_t_6 = 0; /* … */ } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3868: ts = parent._tasks[k]
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3868, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_parent->_tasks, __pyx_v_k); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3868, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3868, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6));
__pyx_t_6 = 0;
+3869: ts._loose_restrictions = True
__pyx_v_ts->_loose_restrictions = 1;
3870:
+3871: if resources:
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_resources); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3871, __pyx_L1_error) if (__pyx_t_10) { /* … */ }
+3872: for k, v in resources.items():
__pyx_t_4 = 0;
if (unlikely(__pyx_v_resources == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 3872, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_dict_iterator(__pyx_v_resources, 0, __pyx_n_s_items, (&__pyx_t_12), (&__pyx_t_8)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3872, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_9);
__pyx_t_9 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_13 = __Pyx_dict_iter_next(__pyx_t_9, __pyx_t_12, &__pyx_t_4, &__pyx_t_6, &__pyx_t_3, NULL, __pyx_t_8);
if (unlikely(__pyx_t_13 == 0)) break;
if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(0, 3872, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_6);
__pyx_t_6 = 0;
__Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_3);
__pyx_t_3 = 0;
+3873: if v is None:
__pyx_t_10 = (__pyx_v_v == Py_None);
__pyx_t_5 = (__pyx_t_10 != 0);
if (__pyx_t_5) {
/* … */
}
+3874: continue
goto __pyx_L130_continue;
+3875: assert isinstance(v, dict)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = PyDict_Check(__pyx_v_v);
if (unlikely(!(__pyx_t_5 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 3875, __pyx_L1_error)
}
}
#endif
+3876: ts = parent._tasks.get(k)
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 3876, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_cur_scope->__pyx_v_parent->_tasks, __pyx_v_k, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3876, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3876, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_3));
__pyx_t_3 = 0;
+3877: if ts is None:
__pyx_t_5 = (((PyObject *)__pyx_v_ts) == Py_None);
__pyx_t_10 = (__pyx_t_5 != 0);
if (__pyx_t_10) {
/* … */
}
+3878: continue
goto __pyx_L130_continue;
+3879: ts._resource_restrictions = v
if (!(likely(PyDict_CheckExact(__pyx_v_v))||((__pyx_v_v) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_v)->tp_name), 0))) __PYX_ERR(0, 3879, __pyx_L1_error) __pyx_t_3 = __pyx_v_v; __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_ts->_resource_restrictions); __Pyx_DECREF(__pyx_v_ts->_resource_restrictions); __pyx_v_ts->_resource_restrictions = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; __pyx_L130_continue:; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
3880:
+3881: if retries:
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_retries); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3881, __pyx_L1_error) if (__pyx_t_10) { /* … */ }
+3882: for k, v in retries.items():
__pyx_t_12 = 0;
if (unlikely(__pyx_v_retries == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 3882, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_dict_iterator(__pyx_v_retries, 0, __pyx_n_s_items, (&__pyx_t_4), (&__pyx_t_8)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3882, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_9);
__pyx_t_9 = __pyx_t_3;
__pyx_t_3 = 0;
while (1) {
__pyx_t_13 = __Pyx_dict_iter_next(__pyx_t_9, __pyx_t_4, &__pyx_t_12, &__pyx_t_3, &__pyx_t_6, NULL, __pyx_t_8);
if (unlikely(__pyx_t_13 == 0)) break;
if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(0, 3882, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_3);
__pyx_t_3 = 0;
__Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_6);
__pyx_t_6 = 0;
+3883: assert isinstance(v, int)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_10 = PyInt_Check(__pyx_v_v);
if (unlikely(!(__pyx_t_10 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 3883, __pyx_L1_error)
}
}
#endif
+3884: ts = parent._tasks.get(k)
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 3884, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItemDefault(__pyx_cur_scope->__pyx_v_parent->_tasks, __pyx_v_k, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3884, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3884, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6));
__pyx_t_6 = 0;
+3885: if ts is None:
__pyx_t_10 = (((PyObject *)__pyx_v_ts) == Py_None);
__pyx_t_5 = (__pyx_t_10 != 0);
if (__pyx_t_5) {
/* … */
}
+3886: continue
goto __pyx_L135_continue;
+3887: ts._retries = v
__pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_v_v); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 3887, __pyx_L1_error) __pyx_v_ts->_retries = __pyx_t_22; __pyx_L135_continue:; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
3888:
3889: # Compute recommendations
+3890: recommendations: dict = {}
__pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_v_recommendations = ((PyObject*)__pyx_t_9); __pyx_t_9 = 0;
3891:
+3892: for ts in sorted(runnables, key=operator.attrgetter("priority"), reverse=True):
__pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_v_runnables); __Pyx_GIVEREF(__pyx_v_runnables); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_runnables); __pyx_t_6 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_operator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_attrgetter); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_n_u_priority) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_n_u_priority); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_key, __pyx_t_3) < 0) __PYX_ERR(0, 3892, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_reverse, Py_True) < 0) __PYX_ERR(0, 3892, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_sorted, __pyx_t_9, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { __pyx_t_6 = __pyx_t_3; __Pyx_INCREF(__pyx_t_6); __pyx_t_4 = 0; __pyx_t_20 = NULL; } else { __pyx_t_4 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_20 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3892, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (likely(!__pyx_t_20)) { if (likely(PyList_CheckExact(__pyx_t_6))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3892, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3892, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_20(__pyx_t_6); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 3892, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_3); } if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3892, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_3)); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+3893: if ts._state == "released" and ts._run_spec:
__pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_released, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3893, __pyx_L1_error) __pyx_t_14 = (__pyx_t_10 != 0); if (__pyx_t_14) { } else { __pyx_t_5 = __pyx_t_14; goto __pyx_L141_bool_binop_done; } __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_v_ts->_run_spec); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3893, __pyx_L1_error) __pyx_t_5 = __pyx_t_14; __pyx_L141_bool_binop_done:; if (__pyx_t_5) { /* … */ }
+3894: recommendations[ts._key] = "waiting"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_ts->_key, __pyx_n_u_waiting) < 0)) __PYX_ERR(0, 3894, __pyx_L1_error)
3895:
+3896: for ts in touched_tasks:
__pyx_t_6 = __pyx_v_touched_tasks; __Pyx_INCREF(__pyx_t_6); __pyx_t_4 = 0; for (;;) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3896, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3896, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_3)); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+3897: for dts in ts._dependencies:
__pyx_t_12 = 0;
__pyx_t_9 = __Pyx_set_iterator(__pyx_v_ts->_dependencies, 1, (&__pyx_t_22), (&__pyx_t_8)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3897, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_3);
__pyx_t_3 = __pyx_t_9;
__pyx_t_9 = 0;
while (1) {
__pyx_t_13 = __Pyx_set_iter_next(__pyx_t_3, __pyx_t_22, &__pyx_t_12, &__pyx_t_9, __pyx_t_8);
if (unlikely(__pyx_t_13 == 0)) break;
if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(0, 3897, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3897, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_9));
__pyx_t_9 = 0;
+3898: if dts._exception_blame:
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_dts->_exception_blame); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3898, __pyx_L1_error) if (__pyx_t_5) { /* … */ } } __pyx_L146_break:; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3899: ts._exception_blame = dts._exception_blame
__pyx_t_9 = __pyx_v_dts->_exception_blame;
__Pyx_INCREF(__pyx_t_9);
__Pyx_GIVEREF(__pyx_t_9);
__Pyx_GOTREF(__pyx_v_ts->_exception_blame);
__Pyx_DECREF(__pyx_v_ts->_exception_blame);
__pyx_v_ts->_exception_blame = __pyx_t_9;
__pyx_t_9 = 0;
+3900: recommendations[ts._key] = "erred"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_ts->_key, __pyx_n_u_erred) < 0)) __PYX_ERR(0, 3900, __pyx_L1_error)
+3901: break
goto __pyx_L146_break;
3902:
+3903: for plugin in self.plugins[:]:
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_plugins); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_t_6, 0, 0, NULL, NULL, &__pyx_slice__57, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { __pyx_t_6 = __pyx_t_3; __Pyx_INCREF(__pyx_t_6); __pyx_t_4 = 0; __pyx_t_20 = NULL; } else { __pyx_t_4 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_20 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3903, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (likely(!__pyx_t_20)) { if (likely(PyList_CheckExact(__pyx_t_6))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3903, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3903, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_20(__pyx_t_6); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 3903, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XDECREF_SET(__pyx_v_plugin, __pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+3904: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
goto __pyx_L157_try_end;
__pyx_L150_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
goto __pyx_L1_error;
__pyx_L151_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
__pyx_L157_try_end:;
}
+3905: plugin.update_graph(
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin, __pyx_n_s_update_graph_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3905, __pyx_L150_error) __Pyx_GOTREF(__pyx_t_3); /* … */ __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3905, __pyx_L150_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_self); /* … */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3905, __pyx_L150_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3906: self,
+3907: client=client,
__pyx_t_2 = __Pyx_PyDict_NewPresized(9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3907, __pyx_L150_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_client, __pyx_v_client) < 0) __PYX_ERR(0, 3907, __pyx_L150_error)
+3908: tasks=tasks,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_tasks, __pyx_cur_scope->__pyx_v_tasks) < 0) __PYX_ERR(0, 3907, __pyx_L150_error)
+3909: keys=keys,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_keys, __pyx_v_keys) < 0) __PYX_ERR(0, 3907, __pyx_L150_error)
+3910: restrictions=restrictions or {},
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_restrictions); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3910, __pyx_L150_error) if (!__pyx_t_5) { } else { __Pyx_INCREF(__pyx_v_restrictions); __pyx_t_1 = __pyx_v_restrictions; goto __pyx_L158_bool_binop_done; } __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3910, __pyx_L150_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_7); __pyx_t_1 = __pyx_t_7; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_L158_bool_binop_done:; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_restrictions, __pyx_t_1) < 0) __PYX_ERR(0, 3907, __pyx_L150_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3911: dependencies=dependencies,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dependencies, __pyx_v_dependencies) < 0) __PYX_ERR(0, 3907, __pyx_L150_error)
+3912: priority=priority,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_priority, __pyx_v_priority) < 0) __PYX_ERR(0, 3907, __pyx_L150_error)
+3913: loose_restrictions=loose_restrictions,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_loose_restrictions, __pyx_v_loose_restrictions) < 0) __PYX_ERR(0, 3907, __pyx_L150_error)
+3914: resources=resources,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_resources, __pyx_v_resources) < 0) __PYX_ERR(0, 3907, __pyx_L150_error)
+3915: annotations=annotations,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_annotations, __pyx_cur_scope->__pyx_v_annotations) < 0) __PYX_ERR(0, 3907, __pyx_L150_error)
3916: )
+3917: except Exception as e:
__pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_8) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.update_graph", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_9) < 0) __PYX_ERR(0, 3917, __pyx_L152_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_v_e = __pyx_t_2; /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; goto __pyx_L166; } __pyx_L165_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_t_31 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_29, &__pyx_t_30, &__pyx_t_31); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_26, &__pyx_t_27, &__pyx_t_28) < 0)) __Pyx_ErrFetch(&__pyx_t_26, &__pyx_t_27, &__pyx_t_28); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_27); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_30); __Pyx_XGOTREF(__pyx_t_31); __pyx_t_8 = __pyx_lineno; __pyx_t_13 = __pyx_clineno; __pyx_t_25 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_30); __Pyx_XGIVEREF(__pyx_t_31); __Pyx_ExceptionReset(__pyx_t_29, __pyx_t_30, __pyx_t_31); } __Pyx_XGIVEREF(__pyx_t_26); __Pyx_XGIVEREF(__pyx_t_27); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_ErrRestore(__pyx_t_26, __pyx_t_27, __pyx_t_28); __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_t_31 = 0; __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_13; __pyx_filename = __pyx_t_25; goto __pyx_L152_except_error; } __pyx_L166:; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L151_exception_handled; } goto __pyx_L152_except_error; __pyx_L152_except_error:;
+3918: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_logger); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3918, __pyx_L165_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_exception); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 3918, __pyx_L165_error) __Pyx_GOTREF(__pyx_t_24); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_24))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_24); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_24); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_24, function); } } __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_24, __pyx_t_7, __pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_24, __pyx_v_e); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3918, __pyx_L165_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; }
3919:
+3920: self.transitions(recommendations)
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transitions_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_6 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_2, __pyx_v_recommendations) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_recommendations); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
3921:
+3922: for ts in touched_tasks:
__pyx_t_6 = __pyx_v_touched_tasks; __Pyx_INCREF(__pyx_t_6); __pyx_t_4 = 0; for (;;) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3922, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3922, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_9)); __pyx_t_9 = 0; /* … */ } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+3923: if ts._state in ("memory", "erred"):
__Pyx_INCREF(__pyx_v_ts->_state); __pyx_t_15 = __pyx_v_ts->_state; __pyx_t_14 = (__Pyx_PyUnicode_Equals(__pyx_t_15, __pyx_n_u_memory_2, Py_EQ)); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3923, __pyx_L1_error) __pyx_t_10 = (__pyx_t_14 != 0); if (!__pyx_t_10) { } else { __pyx_t_5 = __pyx_t_10; goto __pyx_L174_bool_binop_done; } __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_15, __pyx_n_u_erred, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 3923, __pyx_L1_error) __pyx_t_14 = (__pyx_t_10 != 0); __pyx_t_5 = __pyx_t_14; __pyx_L174_bool_binop_done:; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_14 = (__pyx_t_5 != 0); if (__pyx_t_14) { /* … */ }
+3924: self.report_on_key(ts=ts, client=client)
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_report_on_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ts, ((PyObject *)__pyx_v_ts)) < 0) __PYX_ERR(0, 3924, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_client, __pyx_v_client) < 0) __PYX_ERR(0, 3924, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3925:
+3926: end = time()
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_time); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_6 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_end = __pyx_t_6; __pyx_t_6 = 0;
+3927: if self.digests is not None:
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_digests); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_14 = (__pyx_t_6 != Py_None); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_5 = (__pyx_t_14 != 0); if (__pyx_t_5) { /* … */ }
+3928: self.digests["update-graph-duration"].add(end - start)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_digests); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_kp_u_update_graph_duration); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_add); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Subtract(__pyx_v_end, __pyx_v_start); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_6 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_9, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
3929:
3930: # TODO: balance workers
3931:
+3932: def new_task(self, key, spec, state):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_27new_task(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_26new_task[] = " Create a new task, and associated states ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_27new_task = {"new_task", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_27new_task, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_26new_task};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_27new_task(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_spec = 0;
PyObject *__pyx_v_state = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("new_task (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,&__pyx_n_s_spec,&__pyx_n_s_state,0};
PyObject* values[4] = {0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("new_task", 1, 4, 4, 1); __PYX_ERR(0, 3932, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_spec)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("new_task", 1, 4, 4, 2); __PYX_ERR(0, 3932, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_state)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("new_task", 1, 4, 4, 3); __PYX_ERR(0, 3932, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "new_task") < 0)) __PYX_ERR(0, 3932, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
}
__pyx_v_self = values[0];
__pyx_v_key = values[1];
__pyx_v_spec = values[2];
__pyx_v_state = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("new_task", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3932, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.new_task", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_26new_task(__pyx_self, __pyx_v_self, __pyx_v_key, __pyx_v_spec, __pyx_v_state);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_26new_task(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_spec, PyObject *__pyx_v_state) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_TaskPrefix *__pyx_v_tp = 0;
struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_v_tg = 0;
PyObject *__pyx_v_prefix_key = NULL;
PyObject *__pyx_v_group_key = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("new_task", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.new_task", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_v_tp);
__Pyx_XDECREF((PyObject *)__pyx_v_tg);
__Pyx_XDECREF(__pyx_v_prefix_key);
__Pyx_XDECREF(__pyx_v_group_key);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__182 = PyTuple_Pack(10, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_spec, __pyx_n_s_state, __pyx_n_s_parent, __pyx_n_s_ts, __pyx_n_s_tp, __pyx_n_s_tg, __pyx_n_s_prefix_key, __pyx_n_s_group_key_2); if (unlikely(!__pyx_tuple__182)) __PYX_ERR(0, 3932, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__182);
__Pyx_GIVEREF(__pyx_tuple__182);
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_27new_task, 0, __pyx_n_s_Scheduler_new_task, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__183)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3932, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_new_task, __pyx_t_12) < 0) __PYX_ERR(0, 3932, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_codeobj__183 = (PyObject*)__Pyx_PyCode_New(4, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__182, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_new_task, 3932, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__183)) __PYX_ERR(0, 3932, __pyx_L1_error)
3933: """ Create a new task, and associated states """
+3934: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+3935: ts: TaskState = TaskState(key, spec)
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_key); __Pyx_INCREF(__pyx_v_spec); __Pyx_GIVEREF(__pyx_v_spec); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_spec); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11distributed_9scheduler_TaskState), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_2); __pyx_t_2 = 0;
3936: tp: TaskPrefix
3937: tg: TaskGroup
+3938: ts._state = state
if (!(likely(PyUnicode_CheckExact(__pyx_v_state))||((__pyx_v_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_v_state)->tp_name), 0))) __PYX_ERR(0, 3938, __pyx_L1_error) __pyx_t_2 = __pyx_v_state; __Pyx_INCREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_ts->_state); __Pyx_DECREF(__pyx_v_ts->_state); __pyx_v_ts->_state = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+3939: prefix_key = key_split(key)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_key_split); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_v_key) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_key); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_prefix_key = __pyx_t_2; __pyx_t_2 = 0;
+3940: tp = parent._task_prefixes.get(prefix_key)
if (unlikely(__pyx_v_parent->_task_prefixes == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 3940, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItemDefault(__pyx_v_parent->_task_prefixes, __pyx_v_prefix_key, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3940, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11distributed_9scheduler_TaskPrefix))))) __PYX_ERR(0, 3940, __pyx_L1_error)
__pyx_v_tp = ((struct __pyx_obj_11distributed_9scheduler_TaskPrefix *)__pyx_t_2);
__pyx_t_2 = 0;
+3941: if tp is None:
__pyx_t_4 = (((PyObject *)__pyx_v_tp) == Py_None);
__pyx_t_5 = (__pyx_t_4 != 0);
if (__pyx_t_5) {
/* … */
}
+3942: parent._task_prefixes[prefix_key] = tp = TaskPrefix(prefix_key)
__pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_11distributed_9scheduler_TaskPrefix), __pyx_v_prefix_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3942, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_parent->_task_prefixes == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3942, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_parent->_task_prefixes, __pyx_v_prefix_key, __pyx_t_2) < 0)) __PYX_ERR(0, 3942, __pyx_L1_error) __Pyx_INCREF(__pyx_t_2); __Pyx_DECREF_SET(__pyx_v_tp, ((struct __pyx_obj_11distributed_9scheduler_TaskPrefix *)__pyx_t_2)); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3943: ts._prefix = tp
__Pyx_INCREF(((PyObject *)__pyx_v_tp)); __Pyx_GIVEREF(((PyObject *)__pyx_v_tp)); __Pyx_GOTREF(__pyx_v_ts->_prefix); __Pyx_DECREF(((PyObject *)__pyx_v_ts->_prefix)); __pyx_v_ts->_prefix = __pyx_v_tp;
3944:
+3945: group_key = ts._group_key
__pyx_t_2 = __pyx_v_ts->_group_key;
__Pyx_INCREF(__pyx_t_2);
__pyx_v_group_key = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
+3946: tg = parent._task_groups.get(group_key)
if (unlikely(__pyx_v_parent->_task_groups == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 3946, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItemDefault(__pyx_v_parent->_task_groups, __pyx_v_group_key, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3946, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11distributed_9scheduler_TaskGroup))))) __PYX_ERR(0, 3946, __pyx_L1_error)
__pyx_v_tg = ((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)__pyx_t_2);
__pyx_t_2 = 0;
+3947: if tg is None:
__pyx_t_5 = (((PyObject *)__pyx_v_tg) == Py_None);
__pyx_t_4 = (__pyx_t_5 != 0);
if (__pyx_t_4) {
/* … */
}
+3948: parent._task_groups[group_key] = tg = TaskGroup(group_key)
__pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_11distributed_9scheduler_TaskGroup), __pyx_v_group_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_parent->_task_groups == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 3948, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_parent->_task_groups, __pyx_v_group_key, __pyx_t_2) < 0)) __PYX_ERR(0, 3948, __pyx_L1_error) __Pyx_INCREF(__pyx_t_2); __Pyx_DECREF_SET(__pyx_v_tg, ((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)__pyx_t_2)); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3949: tg._prefix = tp
__Pyx_INCREF(((PyObject *)__pyx_v_tp)); __Pyx_GIVEREF(((PyObject *)__pyx_v_tp)); __Pyx_GOTREF(__pyx_v_tg->_prefix); __Pyx_DECREF(((PyObject *)__pyx_v_tg->_prefix)); __pyx_v_tg->_prefix = __pyx_v_tp;
+3950: tp._groups.append(tg)
if (unlikely(__pyx_v_tp->_groups == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
__PYX_ERR(0, 3950, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyList_Append(__pyx_v_tp->_groups, ((PyObject *)__pyx_v_tg)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 3950, __pyx_L1_error)
+3951: tg.add(ts)
__pyx_t_2 = __pyx_f_11distributed_9scheduler_9TaskGroup_add(__pyx_v_tg, ((PyObject *)__pyx_v_ts), 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3952: parent._tasks[key] = ts
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3952, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_parent->_tasks, __pyx_v_key, ((PyObject *)__pyx_v_ts)) < 0)) __PYX_ERR(0, 3952, __pyx_L1_error)
+3953: return ts
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_ts)); __pyx_r = ((PyObject *)__pyx_v_ts); goto __pyx_L0;
3954:
+3955: def stimulus_task_finished(self, key=None, worker=None, **kwargs):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_29stimulus_task_finished(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_28stimulus_task_finished[] = " Mark that a task has finished execution on a particular worker ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_29stimulus_task_finished = {"stimulus_task_finished", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_29stimulus_task_finished, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_28stimulus_task_finished};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_29stimulus_task_finished(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_worker = 0;
PyObject *__pyx_v_kwargs = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("stimulus_task_finished (wrapper)", 0);
__pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
__Pyx_GOTREF(__pyx_v_kwargs);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,&__pyx_n_s_worker,0};
PyObject* values[3] = {0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "stimulus_task_finished") < 0)) __PYX_ERR(0, 3955, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_key = values[1];
__pyx_v_worker = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("stimulus_task_finished", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3955, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.stimulus_task_finished", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_28stimulus_task_finished(__pyx_self, __pyx_v_self, __pyx_v_key, __pyx_v_worker, __pyx_v_kwargs);
/* function exit code */
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_28stimulus_task_finished(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_worker, PyObject *__pyx_v_kwargs) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_v_tasks = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_v_recommendations = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("stimulus_task_finished", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.stimulus_task_finished", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_v_tasks);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF(__pyx_v_recommendations);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__184 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_worker, __pyx_n_s_kwargs, __pyx_n_s_parent, __pyx_n_s_tasks, __pyx_n_s_ts, __pyx_n_s_ws, __pyx_n_s_recommendations); if (unlikely(!__pyx_tuple__184)) __PYX_ERR(0, 3955, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__184);
__Pyx_GIVEREF(__pyx_tuple__184);
__pyx_codeobj__185 = (PyObject*)__Pyx_PyCode_New(3, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__184, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_stimulus_task_finished, 3955, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__185)) __PYX_ERR(0, 3955, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_29stimulus_task_finished, 0, __pyx_n_s_Scheduler_stimulus_task_finished, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__185)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3955, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__186);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_stimulus_task_finished, __pyx_t_12) < 0) __PYX_ERR(0, 3955, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__186 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__186)) __PYX_ERR(0, 3955, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__186);
__Pyx_GIVEREF(__pyx_tuple__186);
3956: """ Mark that a task has finished execution on a particular worker """
+3957: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+3958: logger.debug("Stimulus task finished %s, %s", key, worker)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logger); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_debug); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_kp_u_Stimulus_task_finished_s_s, __pyx_v_key, __pyx_v_worker}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3958, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_kp_u_Stimulus_task_finished_s_s, __pyx_v_key, __pyx_v_worker}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3958, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_5 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_kp_u_Stimulus_task_finished_s_s); __Pyx_GIVEREF(__pyx_kp_u_Stimulus_task_finished_s_s); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_kp_u_Stimulus_task_finished_s_s); __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_key); __Pyx_INCREF(__pyx_v_worker); __Pyx_GIVEREF(__pyx_v_worker); PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_4, __pyx_v_worker); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3959:
+3960: tasks: dict = parent._tasks
__pyx_t_1 = __pyx_v_parent->_tasks;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_tasks = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+3961: ts: TaskState = tasks.get(key)
if (unlikely(__pyx_v_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 3961, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_tasks, __pyx_v_key, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3961, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3961, __pyx_L1_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1);
__pyx_t_1 = 0;
+3962: if ts is None:
__pyx_t_6 = (((PyObject *)__pyx_v_ts) == Py_None);
__pyx_t_7 = (__pyx_t_6 != 0);
if (__pyx_t_7) {
/* … */
}
+3963: return {}
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
+3964: ws: WorkerState = parent._workers_dv[worker]
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 3964, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_parent->_workers_dv, __pyx_v_worker); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3964, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 3964, __pyx_L1_error)
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1);
__pyx_t_1 = 0;
+3965: ts._metadata.update(kwargs["metadata"])
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_ts->_metadata, __pyx_n_s_update); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_n_u_metadata); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3966:
3967: recommendations: dict
+3968: if ts._state == "processing":
__pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_processing_2, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 3968, __pyx_L1_error) __pyx_t_6 = (__pyx_t_7 != 0); if (__pyx_t_6) { /* … */ goto __pyx_L4; }
+3969: recommendations = self.transition(key, "memory", worker=worker, **kwargs)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_key); __Pyx_INCREF(__pyx_n_u_memory_2); __Pyx_GIVEREF(__pyx_n_u_memory_2); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_n_u_memory_2); __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_worker, __pyx_v_worker) < 0) __PYX_ERR(0, 3969, __pyx_L1_error) __pyx_t_5 = __pyx_t_2; __pyx_t_2 = 0; if (__Pyx_MergeKeywords(__pyx_t_5, __pyx_v_kwargs) < 0) __PYX_ERR(0, 3969, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(PyDict_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(0, 3969, __pyx_L1_error) __pyx_v_recommendations = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
3970:
+3971: if ts._state == "memory":
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_memory_2, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 3971, __pyx_L1_error) __pyx_t_7 = (__pyx_t_6 != 0); if (__pyx_t_7) { /* … */ }
+3972: assert ws in ts._who_has
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_ts->_who_has == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3972, __pyx_L1_error)
}
__pyx_t_7 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ws), __pyx_v_ts->_who_has, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 3972, __pyx_L1_error)
if (unlikely(!(__pyx_t_7 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 3972, __pyx_L1_error)
}
}
#endif
3973: else:
+3974: logger.debug(
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_logger); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3974, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_debug); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3974, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
3975: "Received already computed task, worker: %s, state: %s"
3976: ", key: %s, who_has: %s",
3977: worker,
3978: ts._state,
3979: key,
+3980: ts._who_has,
__pyx_t_5 = NULL;
__pyx_t_4 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_4 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[6] = {__pyx_t_5, __pyx_kp_u_Received_already_computed_task_w, __pyx_v_worker, __pyx_v_ts->_state, __pyx_v_key, __pyx_v_ts->_who_has};
__pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 5+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3974, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[6] = {__pyx_t_5, __pyx_kp_u_Received_already_computed_task_w, __pyx_v_worker, __pyx_v_ts->_state, __pyx_v_key, __pyx_v_ts->_who_has};
__pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 5+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3974, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#endif
{
__pyx_t_1 = PyTuple_New(5+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3974, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (__pyx_t_5) {
__Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL;
}
__Pyx_INCREF(__pyx_kp_u_Received_already_computed_task_w);
__Pyx_GIVEREF(__pyx_kp_u_Received_already_computed_task_w);
PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_4, __pyx_kp_u_Received_already_computed_task_w);
__Pyx_INCREF(__pyx_v_worker);
__Pyx_GIVEREF(__pyx_v_worker);
PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_4, __pyx_v_worker);
__Pyx_INCREF(__pyx_v_ts->_state);
__Pyx_GIVEREF(__pyx_v_ts->_state);
PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_4, __pyx_v_ts->_state);
__Pyx_INCREF(__pyx_v_key);
__Pyx_GIVEREF(__pyx_v_key);
PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_4, __pyx_v_key);
__Pyx_INCREF(__pyx_v_ts->_who_has);
__Pyx_GIVEREF(__pyx_v_ts->_who_has);
PyTuple_SET_ITEM(__pyx_t_1, 4+__pyx_t_4, __pyx_v_ts->_who_has);
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3974, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3981: )
+3982: if ws not in ts._who_has:
if (unlikely(__pyx_v_ts->_who_has == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 3982, __pyx_L1_error)
}
__pyx_t_7 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ws), __pyx_v_ts->_who_has, Py_NE)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 3982, __pyx_L1_error)
__pyx_t_6 = (__pyx_t_7 != 0);
if (__pyx_t_6) {
/* … */
}
+3983: self.worker_send(worker, {"op": "release-task", "key": key})
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_worker_send); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_op, __pyx_kp_u_release_task) < 0) __PYX_ERR(0, 3983, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_key, __pyx_v_key) < 0) __PYX_ERR(0, 3983, __pyx_L1_error) __pyx_t_5 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_worker, __pyx_t_1}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3983, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_worker, __pyx_t_1}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3983, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { __pyx_t_8 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_v_worker); __Pyx_GIVEREF(__pyx_v_worker); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_4, __pyx_v_worker); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_4, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3984: recommendations = {}
__pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_recommendations = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; } __pyx_L4:;
3985:
+3986: return recommendations
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_recommendations); __pyx_r = __pyx_v_recommendations; goto __pyx_L0;
3987:
+3988: def stimulus_task_erred(
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_31stimulus_task_erred(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_30stimulus_task_erred[] = " Mark that a task has erred on a particular worker ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_31stimulus_task_erred = {"stimulus_task_erred", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_31stimulus_task_erred, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_30stimulus_task_erred};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_31stimulus_task_erred(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_worker = 0;
PyObject *__pyx_v_exception = 0;
PyObject *__pyx_v_traceback = 0;
PyObject *__pyx_v_kwargs = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("stimulus_task_erred (wrapper)", 0);
__pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
__Pyx_GOTREF(__pyx_v_kwargs);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,&__pyx_n_s_worker,&__pyx_n_s_exception,&__pyx_n_s_traceback,0};
PyObject* values[5] = {0,0,0,0,0};
/* … */
/* function exit code */
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_30stimulus_task_erred(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_worker, PyObject *__pyx_v_exception, PyObject *__pyx_v_traceback, PyObject *__pyx_v_kwargs) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_v_recommendations = 0;
PyObject *__pyx_v_retries = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("stimulus_task_erred", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.stimulus_task_erred", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF(__pyx_v_recommendations);
__Pyx_XDECREF(__pyx_v_retries);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__187 = PyTuple_Pack(10, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_worker, __pyx_n_s_exception, __pyx_n_s_traceback, __pyx_n_s_kwargs, __pyx_n_s_parent, __pyx_n_s_ts, __pyx_n_s_recommendations, __pyx_n_s_retries); if (unlikely(!__pyx_tuple__187)) __PYX_ERR(0, 3988, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__187);
__Pyx_GIVEREF(__pyx_tuple__187);
__pyx_codeobj__188 = (PyObject*)__Pyx_PyCode_New(5, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__187, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_stimulus_task_erred, 3988, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__188)) __PYX_ERR(0, 3988, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_31stimulus_task_erred, 0, __pyx_n_s_Scheduler_stimulus_task_erred, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__188)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3988, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__189);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_stimulus_task_erred, __pyx_t_12) < 0) __PYX_ERR(0, 3988, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__189 = PyTuple_Pack(4, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__189)) __PYX_ERR(0, 3988, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__189);
__Pyx_GIVEREF(__pyx_tuple__189);
+3989: self, key=None, worker=None, exception=None, traceback=None, **kwargs
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject *)Py_None));
values[4] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exception);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_traceback);
if (value) { values[4] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "stimulus_task_erred") < 0)) __PYX_ERR(0, 3988, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_key = values[1];
__pyx_v_worker = values[2];
__pyx_v_exception = values[3];
__pyx_v_traceback = values[4];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("stimulus_task_erred", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3988, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.stimulus_task_erred", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_30stimulus_task_erred(__pyx_self, __pyx_v_self, __pyx_v_key, __pyx_v_worker, __pyx_v_exception, __pyx_v_traceback, __pyx_v_kwargs);
3990: ):
3991: """ Mark that a task has erred on a particular worker """
+3992: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+3993: logger.debug("Stimulus task erred %s, %s", key, worker)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logger); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_debug); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_kp_u_Stimulus_task_erred_s_s, __pyx_v_key, __pyx_v_worker}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3993, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_kp_u_Stimulus_task_erred_s_s, __pyx_v_key, __pyx_v_worker}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3993, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_5 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_kp_u_Stimulus_task_erred_s_s); __Pyx_GIVEREF(__pyx_kp_u_Stimulus_task_erred_s_s); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_kp_u_Stimulus_task_erred_s_s); __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_key); __Pyx_INCREF(__pyx_v_worker); __Pyx_GIVEREF(__pyx_v_worker); PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_4, __pyx_v_worker); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
3994:
+3995: ts: TaskState = parent._tasks.get(key)
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 3995, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_parent->_tasks, __pyx_v_key, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3995, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 3995, __pyx_L1_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1);
__pyx_t_1 = 0;
+3996: if ts is None:
__pyx_t_6 = (((PyObject *)__pyx_v_ts) == Py_None);
__pyx_t_7 = (__pyx_t_6 != 0);
if (__pyx_t_7) {
/* … */
}
+3997: return {}
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
3998:
3999: recommendations: dict
+4000: if ts._state == "processing":
__pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_processing_2, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 4000, __pyx_L1_error) __pyx_t_6 = (__pyx_t_7 != 0); if (__pyx_t_6) { /* … */ goto __pyx_L4; }
+4001: retries = ts._retries
__pyx_t_1 = PyInt_FromSsize_t(__pyx_v_ts->_retries); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_retries = __pyx_t_1; __pyx_t_1 = 0;
+4002: if retries > 0:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_retries, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4002, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4002, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_6) { /* … */ goto __pyx_L5; }
+4003: ts._retries = retries - 1
__pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_retries, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 4003, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_ts->_retries = __pyx_t_8;
+4004: recommendations = self.transition(key, "waiting")
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_key, __pyx_n_u_waiting}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4004, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_key, __pyx_n_u_waiting}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4004, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_2 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_4, __pyx_v_key); __Pyx_INCREF(__pyx_n_u_waiting); __Pyx_GIVEREF(__pyx_n_u_waiting); PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_4, __pyx_n_u_waiting); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 4004, __pyx_L1_error) __pyx_v_recommendations = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
4005: else:
+4006: recommendations = self.transition(
/*else*/ {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4006, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
/* … */
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4006, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_v_key);
__Pyx_GIVEREF(__pyx_v_key);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_key);
__Pyx_INCREF(__pyx_n_u_erred);
__Pyx_GIVEREF(__pyx_n_u_erred);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_n_u_erred);
/* … */
__pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4006, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (!(likely(PyDict_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(0, 4006, __pyx_L1_error)
__pyx_v_recommendations = ((PyObject*)__pyx_t_5);
__pyx_t_5 = 0;
}
__pyx_L5:;
4007: key,
4008: "erred",
+4009: cause=key,
__pyx_t_5 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_cause, __pyx_v_key) < 0) __PYX_ERR(0, 4009, __pyx_L1_error)
+4010: exception=exception,
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_exception, __pyx_v_exception) < 0) __PYX_ERR(0, 4009, __pyx_L1_error)
+4011: traceback=traceback,
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_traceback, __pyx_v_traceback) < 0) __PYX_ERR(0, 4009, __pyx_L1_error)
+4012: worker=worker,
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_worker, __pyx_v_worker) < 0) __PYX_ERR(0, 4009, __pyx_L1_error) __pyx_t_2 = __pyx_t_5; __pyx_t_5 = 0;
+4013: **kwargs,
if (__Pyx_MergeKeywords(__pyx_t_2, __pyx_v_kwargs) < 0) __PYX_ERR(0, 4013, __pyx_L1_error)
4014: )
4015: else:
+4016: recommendations = {}
/*else*/ {
__pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4016, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_v_recommendations = ((PyObject*)__pyx_t_5);
__pyx_t_5 = 0;
}
__pyx_L4:;
4017:
+4018: return recommendations
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_recommendations); __pyx_r = __pyx_v_recommendations; goto __pyx_L0;
4019:
+4020: def stimulus_missing_data(
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_33stimulus_missing_data(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_32stimulus_missing_data[] = " Mark that certain keys have gone missing. Recover. ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_33stimulus_missing_data = {"stimulus_missing_data", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_33stimulus_missing_data, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_32stimulus_missing_data};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_33stimulus_missing_data(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_cause = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_worker = 0;
CYTHON_UNUSED PyObject *__pyx_v_ensure = 0;
CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("stimulus_missing_data (wrapper)", 0);
__pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
__Pyx_GOTREF(__pyx_v_kwargs);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_cause,&__pyx_n_s_key,&__pyx_n_s_worker,&__pyx_n_s_ensure,0};
PyObject* values[5] = {0,0,0,0,0};
/* … */
/* function exit code */
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_32stimulus_missing_data(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_cause, PyObject *__pyx_v_key, PyObject *__pyx_v_worker, CYTHON_UNUSED PyObject *__pyx_v_ensure, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_cts = 0;
PyObject *__pyx_v_recommendations = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("stimulus_missing_data", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.stimulus_missing_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_v_cts);
__Pyx_XDECREF(__pyx_v_recommendations);
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__190 = PyTuple_Pack(11, __pyx_n_s_self, __pyx_n_s_cause, __pyx_n_s_key, __pyx_n_s_worker, __pyx_n_s_ensure, __pyx_n_s_kwargs, __pyx_n_s_parent, __pyx_n_s_ts, __pyx_n_s_cts, __pyx_n_s_recommendations, __pyx_n_s_ws); if (unlikely(!__pyx_tuple__190)) __PYX_ERR(0, 4020, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__190);
__Pyx_GIVEREF(__pyx_tuple__190);
__pyx_codeobj__191 = (PyObject*)__Pyx_PyCode_New(5, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__190, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_stimulus_missing_data, 4020, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__191)) __PYX_ERR(0, 4020, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_33stimulus_missing_data, 0, __pyx_n_s_Scheduler_stimulus_missing_data, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__191)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4020, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__192);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_stimulus_missing_data, __pyx_t_12) < 0) __PYX_ERR(0, 4020, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__192 = PyTuple_Pack(4, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_True)); if (unlikely(!__pyx_tuple__192)) __PYX_ERR(0, 4020, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__192);
__Pyx_GIVEREF(__pyx_tuple__192);
+4021: self, cause=None, key=None, worker=None, ensure=True, **kwargs
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject *)Py_None));
values[4] = ((PyObject *)((PyObject *)Py_True));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cause);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ensure);
if (value) { values[4] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "stimulus_missing_data") < 0)) __PYX_ERR(0, 4020, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_cause = values[1];
__pyx_v_key = values[2];
__pyx_v_worker = values[3];
__pyx_v_ensure = values[4];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("stimulus_missing_data", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4020, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.stimulus_missing_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_32stimulus_missing_data(__pyx_self, __pyx_v_self, __pyx_v_cause, __pyx_v_key, __pyx_v_worker, __pyx_v_ensure, __pyx_v_kwargs);
4022: ):
4023: """ Mark that certain keys have gone missing. Recover. """
+4024: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4025: with log_errors():
/*with:*/ {
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_log_errors); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4025, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
}
}
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4025, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4025, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4025, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4025, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/*try:*/ {
{
/*try:*/ {
/* … */
}
__pyx_L7_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.stimulus_missing_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_3, &__pyx_t_5) < 0) __PYX_ERR(0, 4025, __pyx_L9_except_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_2 = PyTuple_Pack(3, __pyx_t_1, __pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4025, __pyx_L9_except_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4025, __pyx_L9_except_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_18);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
if (__pyx_t_10 < 0) __PYX_ERR(0, 4025, __pyx_L9_except_error)
__pyx_t_11 = ((!(__pyx_t_10 != 0)) != 0);
if (__pyx_t_11) {
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_3, __pyx_t_5);
__pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_5 = 0;
__PYX_ERR(0, 4025, __pyx_L9_except_error)
}
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
goto __pyx_L8_exception_handled;
}
__pyx_L9_except_error:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L1_error;
__pyx_L11_try_return:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L4_return;
__pyx_L8_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_4) {
__pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4025, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
goto __pyx_L6;
}
__pyx_L4_return: {
__pyx_t_8 = __pyx_r;
__pyx_r = 0;
if (__pyx_t_4) {
__pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4025, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__pyx_r = __pyx_t_8;
__pyx_t_8 = 0;
goto __pyx_L0;
}
__pyx_L6:;
}
goto __pyx_L26;
__pyx_L3_error:;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L1_error;
__pyx_L26:;
}
+4026: logger.debug("Stimulus missing data %s, %s", key, worker)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logger); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4026, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_debug); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4026, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_9 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_kp_u_Stimulus_missing_data_s_s, __pyx_v_key, __pyx_v_worker}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4026, __pyx_L7_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_kp_u_Stimulus_missing_data_s_s, __pyx_v_key, __pyx_v_worker}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4026, __pyx_L7_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_5 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4026, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_kp_u_Stimulus_missing_data_s_s); __Pyx_GIVEREF(__pyx_kp_u_Stimulus_missing_data_s_s); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_9, __pyx_kp_u_Stimulus_missing_data_s_s); __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_9, __pyx_v_key); __Pyx_INCREF(__pyx_v_worker); __Pyx_GIVEREF(__pyx_v_worker); PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_9, __pyx_v_worker); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4026, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4027:
+4028: ts: TaskState = parent._tasks.get(key)
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 4028, __pyx_L7_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_parent->_tasks, __pyx_v_key, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4028, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4028, __pyx_L7_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1);
__pyx_t_1 = 0;
+4029: if ts is None or ts._state == "memory":
__pyx_t_11 = (((PyObject *)__pyx_v_ts) == Py_None);
__pyx_t_12 = (__pyx_t_11 != 0);
if (!__pyx_t_12) {
} else {
__pyx_t_10 = __pyx_t_12;
goto __pyx_L14_bool_binop_done;
}
__pyx_t_12 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_memory_2, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 4029, __pyx_L7_error)
__pyx_t_11 = (__pyx_t_12 != 0);
__pyx_t_10 = __pyx_t_11;
__pyx_L14_bool_binop_done:;
if (__pyx_t_10) {
/* … */
}
+4030: return {}
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4030, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L11_try_return;
+4031: cts: TaskState = parent._tasks.get(cause)
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 4031, __pyx_L7_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_parent->_tasks, __pyx_v_cause, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4031, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4031, __pyx_L7_error)
__pyx_v_cts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1);
__pyx_t_1 = 0;
4032:
+4033: recommendations: dict = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4033, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_recommendations = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
4034:
+4035: if cts is not None and cts._state == "memory": # couldn't find this
__pyx_t_11 = (((PyObject *)__pyx_v_cts) != Py_None);
__pyx_t_12 = (__pyx_t_11 != 0);
if (__pyx_t_12) {
} else {
__pyx_t_10 = __pyx_t_12;
goto __pyx_L17_bool_binop_done;
}
__pyx_t_12 = (__Pyx_PyUnicode_Equals(__pyx_v_cts->_state, __pyx_n_u_memory_2, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 4035, __pyx_L7_error)
__pyx_t_11 = (__pyx_t_12 != 0);
__pyx_t_10 = __pyx_t_11;
__pyx_L17_bool_binop_done:;
if (__pyx_t_10) {
/* … */
}
4036: ws: WorkerState
+4037: for ws in cts._who_has: # TODO: this behavior is extreme
__pyx_t_13 = 0;
__pyx_t_3 = __Pyx_set_iterator(__pyx_v_cts->_who_has, 1, (&__pyx_t_14), (&__pyx_t_9)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4037, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_3;
__pyx_t_3 = 0;
while (1) {
__pyx_t_15 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_14, &__pyx_t_13, &__pyx_t_3, __pyx_t_9);
if (unlikely(__pyx_t_15 == 0)) break;
if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 4037, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 4037, __pyx_L7_error)
__Pyx_XDECREF_SET(__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_3));
__pyx_t_3 = 0;
+4038: ws._has_what.remove(cts)
if (unlikely(__pyx_v_ws->_has_what == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
__PYX_ERR(0, 4038, __pyx_L7_error)
}
__pyx_t_16 = __Pyx_PySet_Remove(__pyx_v_ws->_has_what, ((PyObject *)__pyx_v_cts)); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 4038, __pyx_L7_error)
+4039: ws._nbytes -= cts.get_nbytes()
__pyx_t_17 = __pyx_f_11distributed_9scheduler_9TaskState_get_nbytes(__pyx_v_cts, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4039, __pyx_L7_error) __pyx_v_ws->_nbytes = (__pyx_v_ws->_nbytes - __pyx_t_17); } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4040: cts._who_has.clear()
if (unlikely(__pyx_v_cts->_who_has == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear");
__PYX_ERR(0, 4040, __pyx_L7_error)
}
__pyx_t_16 = PySet_Clear(__pyx_v_cts->_who_has); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 4040, __pyx_L7_error)
+4041: recommendations[cause] = "released"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_cause, __pyx_n_u_released) < 0)) __PYX_ERR(0, 4041, __pyx_L7_error)
4042:
+4043: if key:
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_key); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 4043, __pyx_L7_error) if (__pyx_t_10) { /* … */ }
+4044: recommendations[key] = "released"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_key, __pyx_n_u_released) < 0)) __PYX_ERR(0, 4044, __pyx_L7_error)
4045:
+4046: self.transitions(recommendations)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transitions_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4046, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_v_recommendations) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_recommendations); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4046, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4047:
+4048: if parent._validate:
__pyx_t_10 = (__pyx_v_parent->_validate != 0);
if (__pyx_t_10) {
/* … */
}
+4049: assert cause not in self.who_has
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_who_has); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4049, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_10 = (__Pyx_PySequence_ContainsTF(__pyx_v_cause, __pyx_t_1, Py_NE)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 4049, __pyx_L7_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!(__pyx_t_10 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4049, __pyx_L7_error)
}
}
#endif
4050:
+4051: return {}
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4051, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L11_try_return;
4052:
+4053: def stimulus_retry(self, comm=None, keys=None, client=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_35stimulus_retry(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_35stimulus_retry = {"stimulus_retry", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_35stimulus_retry, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_35stimulus_retry(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_keys = 0;
PyObject *__pyx_v_client = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("stimulus_retry (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_keys,&__pyx_n_s_client,0};
PyObject* values[4] = {0,0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keys);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_client);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stimulus_retry") < 0)) __PYX_ERR(0, 4053, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_keys = values[2];
__pyx_v_client = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("stimulus_retry", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4053, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.stimulus_retry", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_34stimulus_retry(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_keys, __pyx_v_client);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_34stimulus_retry(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_keys, PyObject *__pyx_v_client) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_v_stack = NULL;
PyObject *__pyx_v_seen = NULL;
PyObject *__pyx_v_roots = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_v_key = NULL;
PyObject *__pyx_v_erred_deps = NULL;
PyObject *__pyx_v_recommendations = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_9genexpr43__pyx_v_dts = NULL;
PyObject *__pyx_9genexpr44__pyx_v_key = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("stimulus_retry", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.stimulus_retry", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_v_stack);
__Pyx_XDECREF(__pyx_v_seen);
__Pyx_XDECREF(__pyx_v_roots);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF(__pyx_v_key);
__Pyx_XDECREF(__pyx_v_erred_deps);
__Pyx_XDECREF(__pyx_v_recommendations);
__Pyx_XDECREF((PyObject *)__pyx_9genexpr43__pyx_v_dts);
__Pyx_XDECREF(__pyx_9genexpr44__pyx_v_key);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_38generator5(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__193 = PyTuple_Pack(15, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_keys, __pyx_n_s_client, __pyx_n_s_parent, __pyx_n_s_stack, __pyx_n_s_seen, __pyx_n_s_roots, __pyx_n_s_ts, __pyx_n_s_dts, __pyx_n_s_key, __pyx_n_s_erred_deps, __pyx_n_s_recommendations, __pyx_n_s_dts, __pyx_n_s_key); if (unlikely(!__pyx_tuple__193)) __PYX_ERR(0, 4053, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__193);
__Pyx_GIVEREF(__pyx_tuple__193);
__pyx_codeobj__194 = (PyObject*)__Pyx_PyCode_New(4, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__193, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_stimulus_retry, 4053, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__194)) __PYX_ERR(0, 4053, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_35stimulus_retry, 0, __pyx_n_s_Scheduler_stimulus_retry, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__194)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4053, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__195);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_stimulus_retry, __pyx_t_12) < 0) __PYX_ERR(0, 4053, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__195 = PyTuple_Pack(3, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__195)) __PYX_ERR(0, 4053, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__195);
__Pyx_GIVEREF(__pyx_tuple__195);
+4054: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4055: logger.info("Client %s requests to retry %d keys", client, len(keys))
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logger); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = PyObject_Length(__pyx_v_keys); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4055, __pyx_L1_error) __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_6 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_kp_u_Client_s_requests_to_retry_d_key, __pyx_v_client, __pyx_t_2}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4055, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_kp_u_Client_s_requests_to_retry_d_key, __pyx_v_client, __pyx_t_2}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4055, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_kp_u_Client_s_requests_to_retry_d_key); __Pyx_GIVEREF(__pyx_kp_u_Client_s_requests_to_retry_d_key); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_kp_u_Client_s_requests_to_retry_d_key); __Pyx_INCREF(__pyx_v_client); __Pyx_GIVEREF(__pyx_v_client); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_client); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4056: if client:
__pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_client); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4056, __pyx_L1_error) if (__pyx_t_8) { /* … */ }
+4057: self.log_event(client, {"action": "retry", "count": len(keys)})
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_log_event_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_u_action, __pyx_n_u_retry) < 0) __PYX_ERR(0, 4057, __pyx_L1_error) __pyx_t_4 = PyObject_Length(__pyx_v_keys); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4057, __pyx_L1_error) __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_7, __pyx_n_u_count, __pyx_t_2) < 0) __PYX_ERR(0, 4057, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_6 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_client, __pyx_t_7}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4057, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_client, __pyx_t_7}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4057, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_v_client); __Pyx_GIVEREF(__pyx_v_client); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_v_client); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4058:
+4059: stack = list(keys)
__pyx_t_1 = PySequence_List(__pyx_v_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4059, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stack = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+4060: seen = set()
__pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_seen = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+4061: roots = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_roots = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
4062: ts: TaskState
4063: dts: TaskState
+4064: while stack:
while (1) {
__pyx_t_8 = (PyList_GET_SIZE(__pyx_v_stack) != 0);
if (!__pyx_t_8) break;
+4065: key = stack.pop()
__pyx_t_1 = __Pyx_PyList_Pop(__pyx_v_stack); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_1); __pyx_t_1 = 0;
+4066: seen.add(key)
__pyx_t_9 = PySet_Add(__pyx_v_seen, __pyx_v_key); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 4066, __pyx_L1_error)
+4067: ts = parent._tasks[key]
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4067, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_parent->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4067, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4067, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1));
__pyx_t_1 = 0;
+4068: erred_deps = [dts._key for dts in ts._dependencies if dts._state == "erred"]
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4068, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = 0;
__pyx_t_5 = __Pyx_set_iterator(__pyx_v_ts->_dependencies, 1, (&__pyx_t_10), (&__pyx_t_6)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4068, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_3);
__pyx_t_3 = __pyx_t_5;
__pyx_t_5 = 0;
while (1) {
__pyx_t_11 = __Pyx_set_iter_next(__pyx_t_3, __pyx_t_10, &__pyx_t_4, &__pyx_t_5, __pyx_t_6);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 4068, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4068, __pyx_L8_error)
__Pyx_XDECREF_SET(__pyx_9genexpr43__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_5));
__pyx_t_5 = 0;
__pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_9genexpr43__pyx_v_dts->_state, __pyx_n_u_erred, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4068, __pyx_L8_error)
__pyx_t_12 = (__pyx_t_8 != 0);
if (__pyx_t_12) {
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_9genexpr43__pyx_v_dts->_key))) __PYX_ERR(0, 4068, __pyx_L8_error)
}
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr43__pyx_v_dts); __pyx_9genexpr43__pyx_v_dts = 0;
goto __pyx_L12_exit_scope;
__pyx_L8_error:;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr43__pyx_v_dts); __pyx_9genexpr43__pyx_v_dts = 0;
goto __pyx_L1_error;
__pyx_L12_exit_scope:;
} /* exit inner scope */
__Pyx_XDECREF_SET(__pyx_v_erred_deps, ((PyObject*)__pyx_t_1));
__pyx_t_1 = 0;
+4069: if erred_deps:
__pyx_t_12 = (PyList_GET_SIZE(__pyx_v_erred_deps) != 0);
if (__pyx_t_12) {
/* … */
goto __pyx_L13;
}
+4070: stack.extend(erred_deps)
__pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_stack, __pyx_v_erred_deps); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 4070, __pyx_L1_error)
4071: else:
+4072: roots.append(key)
/*else*/ {
__pyx_t_9 = __Pyx_PyList_Append(__pyx_v_roots, __pyx_v_key); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 4072, __pyx_L1_error)
}
__pyx_L13:;
}
4073:
+4074: recommendations: dict = {key: "waiting" for key in roots}
{ /* enter inner scope */
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4074, __pyx_L16_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = __pyx_v_roots; __Pyx_INCREF(__pyx_t_3); __pyx_t_10 = 0;
for (;;) {
if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4074, __pyx_L16_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4074, __pyx_L16_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
__Pyx_XDECREF_SET(__pyx_9genexpr44__pyx_v_key, __pyx_t_5);
__pyx_t_5 = 0;
if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_9genexpr44__pyx_v_key, (PyObject*)__pyx_n_u_waiting))) __PYX_ERR(0, 4074, __pyx_L16_error)
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_9genexpr44__pyx_v_key); __pyx_9genexpr44__pyx_v_key = 0;
goto __pyx_L19_exit_scope;
__pyx_L16_error:;
__Pyx_XDECREF(__pyx_9genexpr44__pyx_v_key); __pyx_9genexpr44__pyx_v_key = 0;
goto __pyx_L1_error;
__pyx_L19_exit_scope:;
} /* exit inner scope */
__pyx_v_recommendations = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+4075: self.transitions(recommendations)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transitions_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_v_recommendations) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_recommendations); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4076:
+4077: if parent._validate:
__pyx_t_12 = (__pyx_v_parent->_validate != 0);
if (__pyx_t_12) {
/* … */
}
+4078: for key in seen:
__pyx_t_10 = 0;
__pyx_t_3 = __Pyx_set_iterator(__pyx_v_seen, 1, (&__pyx_t_4), (&__pyx_t_6)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4078, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_3;
__pyx_t_3 = 0;
while (1) {
__pyx_t_11 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_4, &__pyx_t_10, &__pyx_t_3, __pyx_t_6);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 4078, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_3);
__pyx_t_3 = 0;
+4079: assert not parent._tasks[key].exception_blame
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4079, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_parent->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4079, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_exception_blame); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4079, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 4079, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!((!__pyx_t_12) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4079, __pyx_L1_error)
}
}
#endif
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4080:
+4081: return tuple(seen)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PySequence_Tuple(__pyx_v_seen); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
4082:
+4083: async def remove_worker(self, comm=None, address=None, safe=False, close=True):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_37remove_worker(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_36remove_worker[] = "\n Remove worker from cluster\n\n We do this when a worker reports that it plans to leave or when it\n appears to be unresponsive. This may send its tasks back to a released\n state.\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_37remove_worker = {"remove_worker", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_37remove_worker, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_36remove_worker};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_37remove_worker(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_address = 0;
PyObject *__pyx_v_safe = 0;
PyObject *__pyx_v_close = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("remove_worker (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_address,&__pyx_n_s_safe,&__pyx_n_s_close,0};
PyObject* values[5] = {0,0,0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject *)Py_False));
values[4] = ((PyObject *)((PyObject *)Py_True));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_address);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_safe);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close);
if (value) { values[4] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "remove_worker") < 0)) __PYX_ERR(0, 4083, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_address = values[2];
__pyx_v_safe = values[3];
__pyx_v_close = values[4];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("remove_worker", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4083, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.remove_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_36remove_worker(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_address, __pyx_v_safe, __pyx_v_close);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_36remove_worker(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_address, PyObject *__pyx_v_safe, PyObject *__pyx_v_close) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_17_remove_worker *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("remove_worker", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_17_remove_worker *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_17_remove_worker(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_17_remove_worker, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_17_remove_worker *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 4083, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_comm = __pyx_v_comm;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm);
__pyx_cur_scope->__pyx_v_address = __pyx_v_address;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_address);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_address);
__pyx_cur_scope->__pyx_v_safe = __pyx_v_safe;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_safe);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_safe);
__pyx_cur_scope->__pyx_v_close = __pyx_v_close;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_close);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_close);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_38generator5, __pyx_codeobj__58, (PyObject *) __pyx_cur_scope, __pyx_n_s_remove_worker, __pyx_n_s_Scheduler_remove_worker, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 4083, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.remove_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_38generator5(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("remove_worker", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4083, __pyx_L1_error)
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_19);
__Pyx_XDECREF(((PyObject *)__pyx_t_22));
__Pyx_XDECREF(__pyx_t_26);
__Pyx_AddTraceback("remove_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__196 = PyTuple_Pack(19, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_address, __pyx_n_s_safe, __pyx_n_s_close, __pyx_n_s_parent, __pyx_n_s_host, __pyx_n_s_ws, __pyx_n_s_recommendations, __pyx_n_s_ts, __pyx_n_s_k, __pyx_n_s_e, __pyx_n_s_r, __pyx_n_s_plugin, __pyx_n_s_result, __pyx_n_s_w, __pyx_n_s_remove_worker_from_events, __pyx_n_s_remove_worker_from_events, __pyx_n_s_cleanup_delay); if (unlikely(!__pyx_tuple__196)) __PYX_ERR(0, 4083, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__196);
__Pyx_GIVEREF(__pyx_tuple__196);
__pyx_codeobj__58 = (PyObject*)__Pyx_PyCode_New(5, 0, 19, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__196, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_remove_worker, 4083, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__58)) __PYX_ERR(0, 4083, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_37remove_worker, 0, __pyx_n_s_Scheduler_remove_worker, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4083, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__197);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_remove_worker, __pyx_t_12) < 0) __PYX_ERR(0, 4083, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__197 = PyTuple_Pack(4, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_False), ((PyObject *)Py_True)); if (unlikely(!__pyx_tuple__197)) __PYX_ERR(0, 4083, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__197);
__Pyx_GIVEREF(__pyx_tuple__197);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_17_remove_worker {
PyObject_HEAD
PyObject *__pyx_v_address;
PyObject *__pyx_v_cleanup_delay;
PyObject *__pyx_v_close;
PyObject *__pyx_v_comm;
PyObject *__pyx_v_e;
PyObject *__pyx_v_host;
PyObject *__pyx_v_k;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent;
PyObject *__pyx_v_plugin;
PyObject *__pyx_v_r;
PyObject *__pyx_v_recommendations;
PyObject *__pyx_v_remove_worker_from_events;
PyObject *__pyx_v_result;
PyObject *__pyx_v_safe;
PyObject *__pyx_v_self;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts;
PyObject *__pyx_v_w;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws;
PyObject *__pyx_t_0;
PyObject *__pyx_t_1;
PyObject *__pyx_t_2;
PyObject *__pyx_t_3;
PyObject *__pyx_t_4;
PyObject *__pyx_t_5;
PyObject *__pyx_t_6;
PyObject *__pyx_t_7;
Py_ssize_t __pyx_t_8;
PyObject *(*__pyx_t_9)(PyObject *);
};
4084: """
4085: Remove worker from cluster
4086:
4087: We do this when a worker reports that it plans to leave or when it
4088: appears to be unresponsive. This may send its tasks back to a released
4089: state.
4090: """
+4091: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_cur_scope->__pyx_v_self; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1); __pyx_t_1 = 0;
+4092: with log_errors():
/*with:*/ {
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_log_errors); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4092, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
}
}
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4092, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4092, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4092, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4092, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/*try:*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
goto __pyx_L13_try_end;
__pyx_L8_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(((PyObject *)__pyx_t_22)); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.remove_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_2, &__pyx_t_13) < 0) __PYX_ERR(0, 4092, __pyx_L10_except_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_26 = PyTuple_Pack(3, __pyx_t_5, __pyx_t_2, __pyx_t_13); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 4092, __pyx_L10_except_error)
__Pyx_GOTREF(__pyx_t_26);
__pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_26, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4092, __pyx_L10_except_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_16);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (__pyx_t_9 < 0) __PYX_ERR(0, 4092, __pyx_L10_except_error)
__pyx_t_10 = ((!(__pyx_t_9 != 0)) != 0);
if (__pyx_t_10) {
__Pyx_GIVEREF(__pyx_t_5);
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ErrRestoreWithState(__pyx_t_5, __pyx_t_2, __pyx_t_13);
__pyx_t_5 = 0; __pyx_t_2 = 0; __pyx_t_13 = 0;
__PYX_ERR(0, 4092, __pyx_L10_except_error)
}
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
goto __pyx_L9_exception_handled;
}
__pyx_L10_except_error:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L1_error;
__pyx_L12_try_return:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L5_return;
__pyx_L9_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
__pyx_L13_try_end:;
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_4) {
__pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4092, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
goto __pyx_L7;
}
__pyx_L5_return: {
__Pyx_PyThreadState_assign
__pyx_t_8 = 0; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_14 = 0;
if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_14);
if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6);
__Pyx_XGOTREF(__pyx_t_8);
__Pyx_XGOTREF(__pyx_t_7);
__Pyx_XGOTREF(__pyx_t_6);
__Pyx_XGOTREF(__pyx_t_16);
__Pyx_XGOTREF(__pyx_t_17);
__Pyx_XGOTREF(__pyx_t_14);
__pyx_t_31 = __pyx_r;
__pyx_r = 0;
if (__pyx_t_4) {
__pyx_t_30 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 4092, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_30);
__Pyx_DECREF(__pyx_t_30); __pyx_t_30 = 0;
}
__pyx_r = __pyx_t_31;
__pyx_t_31 = 0;
if (PY_MAJOR_VERSION >= 3) {
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_14);
}
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_ErrRestore(__pyx_t_8, __pyx_t_7, __pyx_t_6);
__pyx_t_8 = 0; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_14 = 0;
goto __pyx_L0;
}
__pyx_L7:;
}
goto __pyx_L69;
__pyx_L4_error:;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L1_error;
__pyx_L69:;
}
+4093: if self.status == Status.closed:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4093, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Status); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4093, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_closed); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4093, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4093, __pyx_L8_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 4093, __pyx_L8_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_9) { /* … */ }
+4094: return
__Pyx_XDECREF(__pyx_r);
__pyx_r = NULL;
goto __pyx_L12_try_return;
4095:
+4096: address = self.coerce_address(address)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_coerce_address); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4096, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_cur_scope->__pyx_v_address) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_cur_scope->__pyx_v_address); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4096, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_address); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_address, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
4097:
+4098: if address not in parent._workers_dv:
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4098, __pyx_L8_error)
}
__pyx_t_9 = (__Pyx_PyDict_ContainsTF(__pyx_cur_scope->__pyx_v_address, __pyx_cur_scope->__pyx_v_parent->_workers_dv, Py_NE)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 4098, __pyx_L8_error)
__pyx_t_10 = (__pyx_t_9 != 0);
if (__pyx_t_10) {
/* … */
}
+4099: return "already-removed"
__Pyx_XDECREF(__pyx_r); __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_kp_u_already_removed); goto __pyx_L12_try_return;
4100:
+4101: host = get_address_host(address)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_get_address_host); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4101, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_cur_scope->__pyx_v_address) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_cur_scope->__pyx_v_address); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4101, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_host = __pyx_t_2; __pyx_t_2 = 0;
4102:
+4103: ws: WorkerState = parent._workers_dv[address]
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4103, __pyx_L8_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_parent->_workers_dv, __pyx_cur_scope->__pyx_v_address); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4103, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_2);
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 4103, __pyx_L8_error)
__Pyx_GIVEREF(__pyx_t_2);
__pyx_cur_scope->__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_2);
__pyx_t_2 = 0;
4104:
+4105: self.log_event(
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_log_event_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4105, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3);
+4106: ["all", address],
__pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4106, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_all); __Pyx_GIVEREF(__pyx_n_u_all); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_all); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_address); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_address); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_cur_scope->__pyx_v_address);
4107: {
+4108: "action": "remove-worker",
__pyx_t_5 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4108, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_action, __pyx_kp_u_remove_worker_2) < 0) __PYX_ERR(0, 4108, __pyx_L8_error)
+4109: "worker": address,
if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_worker, __pyx_cur_scope->__pyx_v_address) < 0) __PYX_ERR(0, 4108, __pyx_L8_error)
+4110: "processing-tasks": dict(ws._processing),
if (unlikely(__pyx_cur_scope->__pyx_v_ws->_processing == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' is not iterable");
__PYX_ERR(0, 4110, __pyx_L8_error)
}
__pyx_t_11 = PyDict_Copy(__pyx_cur_scope->__pyx_v_ws->_processing); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4110, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_11);
if (PyDict_SetItem(__pyx_t_5, __pyx_kp_u_processing_tasks, __pyx_t_11) < 0) __PYX_ERR(0, 4108, __pyx_L8_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = NULL;
__pyx_t_12 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_11 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_11)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_11);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_12 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_11, __pyx_t_1, __pyx_t_5};
__pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4105, __pyx_L8_error)
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_11, __pyx_t_1, __pyx_t_5};
__pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4105, __pyx_L8_error)
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
} else
#endif
{
__pyx_t_13 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4105, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_13);
if (__pyx_t_11) {
__Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_11); __pyx_t_11 = NULL;
}
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_12, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_5);
PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_12, __pyx_t_5);
__pyx_t_1 = 0;
__pyx_t_5 = 0;
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_13, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4105, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4111: },
4112: )
+4113: logger.info("Remove worker %s", ws)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_logger); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4113, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_info); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4113, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_12 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); __pyx_t_12 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_13)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_u_Remove_worker_s, ((PyObject *)__pyx_cur_scope->__pyx_v_ws)}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4113, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_u_Remove_worker_s, ((PyObject *)__pyx_cur_scope->__pyx_v_ws)}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4113, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4113, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_kp_u_Remove_worker_s); __Pyx_GIVEREF(__pyx_kp_u_Remove_worker_s); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_12, __pyx_kp_u_Remove_worker_s); __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_ws)); __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_ws)); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_12, ((PyObject *)__pyx_cur_scope->__pyx_v_ws)); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4113, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4114: if close:
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_close); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 4114, __pyx_L8_error) if (__pyx_t_10) { /* … */ }
+4115: with suppress(AttributeError, CommClosedError):
/*with:*/ {
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_suppress); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4115, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CommClosedError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4115, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_3 = NULL;
__pyx_t_12 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
__pyx_t_12 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_13)) {
PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_builtin_AttributeError, __pyx_t_5};
__pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4115, __pyx_L8_error)
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_builtin_AttributeError, __pyx_t_5};
__pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4115, __pyx_L8_error)
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
} else
#endif
{
__pyx_t_1 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4115, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_1);
if (__pyx_t_3) {
__Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __pyx_t_3 = NULL;
}
__Pyx_INCREF(__pyx_builtin_AttributeError);
__Pyx_GIVEREF(__pyx_builtin_AttributeError);
PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_12, __pyx_builtin_AttributeError);
__Pyx_GIVEREF(__pyx_t_5);
PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_12, __pyx_t_5);
__pyx_t_5 = 0;
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4115, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_14 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_n_s_exit); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4115, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_n_s_enter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4115, __pyx_L17_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_1, function);
}
}
__pyx_t_13 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4115, __pyx_L17_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/*try:*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
goto __pyx_L26_try_end;
__pyx_L21_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.remove_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_13, &__pyx_t_1) < 0) __PYX_ERR(0, 4115, __pyx_L23_except_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_t_13);
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_13, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4115, __pyx_L23_except_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_5, NULL);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4115, __pyx_L23_except_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_18);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
if (__pyx_t_10 < 0) __PYX_ERR(0, 4115, __pyx_L23_except_error)
__pyx_t_9 = ((!(__pyx_t_10 != 0)) != 0);
if (__pyx_t_9) {
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_13, __pyx_t_1);
__pyx_t_2 = 0; __pyx_t_13 = 0; __pyx_t_1 = 0;
__PYX_ERR(0, 4115, __pyx_L23_except_error)
}
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L22_exception_handled;
}
__pyx_L23_except_error:;
__Pyx_XGIVEREF(__pyx_t_15);
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17);
goto __pyx_L8_error;
__pyx_L22_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_15);
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17);
__pyx_L26_try_end:;
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_14) {
__pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4115, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
}
goto __pyx_L20;
}
__pyx_L20:;
}
goto __pyx_L30;
__pyx_L17_error:;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
goto __pyx_L8_error;
__pyx_L30:;
}
+4116: self.stream_comms[address].send({"op": "close", "report": False})
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_stream_comms); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4116, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_cur_scope->__pyx_v_address); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4116, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_send); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4116, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4116, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_op, __pyx_n_u_close) < 0) __PYX_ERR(0, 4116, __pyx_L21_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_report, Py_False) < 0) __PYX_ERR(0, 4116, __pyx_L21_error) __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_5, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4116, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4117:
+4118: self.remove_resources(address)
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_remove_resources); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4118, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_2, __pyx_cur_scope->__pyx_v_address) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_cur_scope->__pyx_v_address); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4118, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4119:
+4120: parent._host_info[host]["nthreads"] -= ws._nthreads
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_parent->_host_info, __pyx_cur_scope->__pyx_v_host); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4120, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_nthreads); __pyx_t_19 = __pyx_n_u_nthreads; __pyx_t_13 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_t_19); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4120, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_2 = PyInt_FromSsize_t(__pyx_cur_scope->__pyx_v_ws->_nthreads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4120, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = PyNumber_InPlaceSubtract(__pyx_t_13, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4120, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_t_19, __pyx_t_5) < 0)) __PYX_ERR(0, 4120, __pyx_L8_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4121: parent._host_info[host]["addresses"].remove(address)
__pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_parent->_host_info, __pyx_cur_scope->__pyx_v_host); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4121, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_n_u_addresses); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4121, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_remove); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4121, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_2, __pyx_cur_scope->__pyx_v_address) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_cur_scope->__pyx_v_address); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4121, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4122: parent._total_nthreads -= ws._nthreads
__pyx_cur_scope->__pyx_v_parent->_total_nthreads = (__pyx_cur_scope->__pyx_v_parent->_total_nthreads - __pyx_cur_scope->__pyx_v_ws->_nthreads);
4123:
+4124: if not parent._host_info[host]["addresses"]:
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_parent->_host_info, __pyx_cur_scope->__pyx_v_host); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4124, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_addresses); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4124, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 4124, __pyx_L8_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_10 = ((!__pyx_t_9) != 0); if (__pyx_t_10) { /* … */ }
+4125: del parent._host_info[host]
if (unlikely(PyObject_DelItem(__pyx_cur_scope->__pyx_v_parent->_host_info, __pyx_cur_scope->__pyx_v_host) < 0)) __PYX_ERR(0, 4125, __pyx_L8_error)
4126:
+4127: self.rpc.remove(address)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_rpc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4127, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_remove); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4127, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_cur_scope->__pyx_v_address) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_cur_scope->__pyx_v_address); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4127, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4128: del self.stream_comms[address]
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_stream_comms); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4128, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(PyObject_DelItem(__pyx_t_5, __pyx_cur_scope->__pyx_v_address) < 0)) __PYX_ERR(0, 4128, __pyx_L8_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4129: del parent._aliases[ws._name]
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_aliases == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4129, __pyx_L8_error)
}
if (unlikely(PyDict_DelItem(__pyx_cur_scope->__pyx_v_parent->_aliases, __pyx_cur_scope->__pyx_v_ws->_name) < 0)) __PYX_ERR(0, 4129, __pyx_L8_error)
+4130: parent._idle.pop(ws._address, None)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_parent->_idle, __pyx_n_s_pop); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4130, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; __pyx_t_12 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_12 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_cur_scope->__pyx_v_ws->_address, Py_None}; __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4130, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_cur_scope->__pyx_v_ws->_address, Py_None}; __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4130, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif { __pyx_t_13 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4130, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_cur_scope->__pyx_v_ws->_address); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_ws->_address); PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_12, __pyx_cur_scope->__pyx_v_ws->_address); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_12, Py_None); __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_13, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4130, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4131: parent._saturated.discard(ws)
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_saturated == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "discard");
__PYX_ERR(0, 4131, __pyx_L8_error)
}
__pyx_t_20 = __Pyx_PySet_Discard(__pyx_cur_scope->__pyx_v_parent->_saturated, ((PyObject *)__pyx_cur_scope->__pyx_v_ws)); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 4131, __pyx_L8_error)
+4132: del parent._workers[address]
if (unlikely(PyObject_DelItem(__pyx_cur_scope->__pyx_v_parent->_workers, __pyx_cur_scope->__pyx_v_address) < 0)) __PYX_ERR(0, 4132, __pyx_L8_error)
+4133: ws.status = Status.closed
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_Status); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4133, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_closed); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4133, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_ws), __pyx_n_s_status, __pyx_t_2) < 0) __PYX_ERR(0, 4133, __pyx_L8_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4134: parent._total_occupancy -= ws._occupancy
__pyx_cur_scope->__pyx_v_parent->_total_occupancy = (__pyx_cur_scope->__pyx_v_parent->_total_occupancy - __pyx_cur_scope->__pyx_v_ws->_occupancy);
4135:
+4136: recommendations: dict = {}
__pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4136, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_recommendations = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
4137:
4138: ts: TaskState
+4139: for ts in list(ws._processing):
__pyx_t_2 = PySequence_List(__pyx_cur_scope->__pyx_v_ws->_processing); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4139, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (__pyx_t_21 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_21); __Pyx_INCREF(__pyx_t_2); __pyx_t_21++; if (unlikely(0 < 0)) __PYX_ERR(0, 4139, __pyx_L8_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_21); __pyx_t_21++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4139, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); #endif if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4139, __pyx_L8_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_ts)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_2)); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4140: k = ts._key
__pyx_t_2 = __pyx_cur_scope->__pyx_v_ts->_key;
__Pyx_INCREF(__pyx_t_2);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_k);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_k, ((PyObject*)__pyx_t_2));
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
+4141: recommendations[k] = "released"
if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_recommendations, __pyx_cur_scope->__pyx_v_k, __pyx_n_u_released) < 0)) __PYX_ERR(0, 4141, __pyx_L8_error)
+4142: if not safe:
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_safe); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 4142, __pyx_L8_error) __pyx_t_9 = ((!__pyx_t_10) != 0); if (__pyx_t_9) { /* … */ }
+4143: ts._suspicious += 1
__pyx_cur_scope->__pyx_v_ts->_suspicious = (__pyx_cur_scope->__pyx_v_ts->_suspicious + 1);
+4144: ts._prefix._suspicious += 1
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_ts->_prefix)); __pyx_t_22 = __pyx_cur_scope->__pyx_v_ts->_prefix; __pyx_t_22->_suspicious = (__pyx_t_22->_suspicious + 1); __Pyx_DECREF(((PyObject *)__pyx_t_22)); __pyx_t_22 = 0;
+4145: if ts._suspicious > self.allowed_failures:
__pyx_t_2 = PyInt_FromSsize_t(__pyx_cur_scope->__pyx_v_ts->_suspicious); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4145, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_allowed_failures); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4145, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_13, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4145, __pyx_L8_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 4145, __pyx_L8_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_9) { /* … */ }
+4146: del recommendations[k]
if (unlikely(PyDict_DelItem(__pyx_cur_scope->__pyx_v_recommendations, __pyx_cur_scope->__pyx_v_k) < 0)) __PYX_ERR(0, 4146, __pyx_L8_error)
+4147: e = pickle.dumps(
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pickle); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4147, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_dumps); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4147, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4147, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4147, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_e, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0;
+4148: KilledWorker(task=k, last_worker=ws.clean()), protocol=4
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_KilledWorker); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4148, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4148, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_task, __pyx_cur_scope->__pyx_v_k) < 0) __PYX_ERR(0, 4148, __pyx_L8_error) __pyx_t_3 = __pyx_f_11distributed_9scheduler_11WorkerState_clean(__pyx_cur_scope->__pyx_v_ws, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4148, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_last_worker, __pyx_t_3) < 0) __PYX_ERR(0, 4148, __pyx_L8_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4148, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4148, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_protocol, __pyx_int_4) < 0) __PYX_ERR(0, 4148, __pyx_L8_error)
4149: )
+4150: r = self.transition(k, "erred", exception=e, cause=k)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_transition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4150, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4150, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_k); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_k); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_cur_scope->__pyx_v_k); __Pyx_INCREF(__pyx_n_u_erred); __Pyx_GIVEREF(__pyx_n_u_erred); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_n_u_erred); __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4150, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_exception, __pyx_cur_scope->__pyx_v_e) < 0) __PYX_ERR(0, 4150, __pyx_L8_error) if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_cause, __pyx_cur_scope->__pyx_v_k) < 0) __PYX_ERR(0, 4150, __pyx_L8_error) __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4150, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_r); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_13); __pyx_t_13 = 0;
+4151: recommendations.update(r)
__pyx_t_13 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyDict_Type_update, __pyx_cur_scope->__pyx_v_recommendations, __pyx_cur_scope->__pyx_v_r); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4151, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+4152: logger.info(
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logger); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4152, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4152, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4153: "Task %s marked as failed because %d workers died"
4154: " while trying to run it",
4155: ts._key,
+4156: self.allowed_failures,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_allowed_failures); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4156, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; __pyx_t_12 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_12 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_kp_u_Task_s_marked_as_failed_because, __pyx_cur_scope->__pyx_v_ts->_key, __pyx_t_2}; __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4152, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_kp_u_Task_s_marked_as_failed_because, __pyx_cur_scope->__pyx_v_ts->_key, __pyx_t_2}; __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4152, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_11 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4152, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_kp_u_Task_s_marked_as_failed_because); __Pyx_GIVEREF(__pyx_kp_u_Task_s_marked_as_failed_because); PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_12, __pyx_kp_u_Task_s_marked_as_failed_because); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_ts->_key); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_ts->_key); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_12, __pyx_cur_scope->__pyx_v_ts->_key); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_12, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_11, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4152, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
4157: )
4158:
+4159: for ts in ws._has_what:
__pyx_t_21 = 0;
__pyx_t_13 = __Pyx_set_iterator(__pyx_cur_scope->__pyx_v_ws->_has_what, 1, (&__pyx_t_23), (&__pyx_t_12)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4159, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_5);
__pyx_t_5 = __pyx_t_13;
__pyx_t_13 = 0;
while (1) {
__pyx_t_24 = __Pyx_set_iter_next(__pyx_t_5, __pyx_t_23, &__pyx_t_21, &__pyx_t_13, __pyx_t_12);
if (unlikely(__pyx_t_24 == 0)) break;
if (unlikely(__pyx_t_24 == -1)) __PYX_ERR(0, 4159, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_13);
if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4159, __pyx_L8_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_ts));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_13));
__Pyx_GIVEREF(__pyx_t_13);
__pyx_t_13 = 0;
+4160: ts._who_has.remove(ws)
if (unlikely(__pyx_cur_scope->__pyx_v_ts->_who_has == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
__PYX_ERR(0, 4160, __pyx_L8_error)
}
__pyx_t_20 = __Pyx_PySet_Remove(__pyx_cur_scope->__pyx_v_ts->_who_has, ((PyObject *)__pyx_cur_scope->__pyx_v_ws)); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 4160, __pyx_L8_error)
+4161: if not ts._who_has:
__pyx_t_9 = (__pyx_cur_scope->__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_cur_scope->__pyx_v_ts->_who_has) != 0); __pyx_t_10 = ((!__pyx_t_9) != 0); if (__pyx_t_10) { /* … */ } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4162: if ts._run_spec:
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_ts->_run_spec); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 4162, __pyx_L8_error) if (__pyx_t_10) { /* … */ goto __pyx_L39; }
+4163: recommendations[ts._key] = "released"
if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_recommendations, __pyx_cur_scope->__pyx_v_ts->_key, __pyx_n_u_released) < 0)) __PYX_ERR(0, 4163, __pyx_L8_error)
4164: else: # pure data
+4165: recommendations[ts._key] = "forgotten"
/*else*/ {
if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_recommendations, __pyx_cur_scope->__pyx_v_ts->_key, __pyx_n_u_forgotten) < 0)) __PYX_ERR(0, 4165, __pyx_L8_error)
}
__pyx_L39:;
+4166: ws._has_what.clear()
if (unlikely(__pyx_cur_scope->__pyx_v_ws->_has_what == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear");
__PYX_ERR(0, 4166, __pyx_L8_error)
}
__pyx_t_20 = PySet_Clear(__pyx_cur_scope->__pyx_v_ws->_has_what); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 4166, __pyx_L8_error)
4167:
+4168: self.transitions(recommendations)
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_transitions_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4168, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_5 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_3, __pyx_cur_scope->__pyx_v_recommendations) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_cur_scope->__pyx_v_recommendations); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4168, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4169:
+4170: for plugin in self.plugins[:]:
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_plugins); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4170, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_13 = __Pyx_PyObject_GetSlice(__pyx_t_5, 0, 0, NULL, NULL, &__pyx_slice__57, 0, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4170, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) { __pyx_t_5 = __pyx_t_13; __Pyx_INCREF(__pyx_t_5); __pyx_t_23 = 0; __pyx_t_25 = NULL; } else { __pyx_t_23 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4170, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_25 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4170, __pyx_L8_error) } __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; for (;;) { if (likely(!__pyx_t_25)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_23 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_13 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_23); __Pyx_INCREF(__pyx_t_13); __pyx_t_23++; if (unlikely(0 < 0)) __PYX_ERR(0, 4170, __pyx_L8_error) #else __pyx_t_13 = PySequence_ITEM(__pyx_t_5, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4170, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); #endif } else { if (__pyx_t_23 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_23); __Pyx_INCREF(__pyx_t_13); __pyx_t_23++; if (unlikely(0 < 0)) __PYX_ERR(0, 4170, __pyx_L8_error) #else __pyx_t_13 = PySequence_ITEM(__pyx_t_5, __pyx_t_23); __pyx_t_23++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4170, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); #endif } } else { __pyx_t_13 = __pyx_t_25(__pyx_t_5); if (unlikely(!__pyx_t_13)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 4170, __pyx_L8_error) } break; } __Pyx_GOTREF(__pyx_t_13); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_plugin); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_plugin, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_13); __pyx_t_13 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4171: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
goto __pyx_L49_try_end;
__pyx_L42_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(((PyObject *)__pyx_t_22)); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_ExceptionReset(__pyx_t_14, __pyx_t_17, __pyx_t_16);
goto __pyx_L8_error;
__pyx_L43_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_ExceptionReset(__pyx_t_14, __pyx_t_17, __pyx_t_16);
__pyx_L49_try_end:;
}
+4172: result = plugin.remove_worker(scheduler=self, worker=address)
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_plugin, __pyx_n_s_remove_worker); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4172, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4172, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_scheduler, __pyx_cur_scope->__pyx_v_self) < 0) __PYX_ERR(0, 4172, __pyx_L42_error) if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_worker, __pyx_cur_scope->__pyx_v_address) < 0) __PYX_ERR(0, 4172, __pyx_L42_error) __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4172, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_result); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_result, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_11); __pyx_t_11 = 0;
+4173: if inspect.isawaitable(result):
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_inspect); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4173, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_isawaitable); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4173, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_11 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_3, __pyx_cur_scope->__pyx_v_result) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_cur_scope->__pyx_v_result); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4173, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 4173, __pyx_L42_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (__pyx_t_10) { /* … */ }
+4174: await result
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_result); __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_0 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_t_1 = __pyx_t_5; __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_2 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_3 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_4 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_14); __pyx_cur_scope->__pyx_t_5 = __pyx_t_14; __Pyx_XGIVEREF(__pyx_t_16); __pyx_cur_scope->__pyx_t_6 = __pyx_t_16; __Pyx_XGIVEREF(__pyx_t_17); __pyx_cur_scope->__pyx_t_7 = __pyx_t_17; __pyx_cur_scope->__pyx_t_8 = __pyx_t_23; __pyx_cur_scope->__pyx_t_9 = __pyx_t_25; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L51_resume_from_await:; __pyx_t_4 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_5 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_5); __pyx_t_6 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_7 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_14 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_14); __pyx_t_16 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_16); __pyx_t_17 = __pyx_cur_scope->__pyx_t_7; __pyx_cur_scope->__pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_t_17); __pyx_t_23 = __pyx_cur_scope->__pyx_t_8; __pyx_t_25 = __pyx_cur_scope->__pyx_t_9; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4174, __pyx_L42_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 4174, __pyx_L42_error) } }
+4175: except Exception as e:
__pyx_t_12 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_12) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.remove_worker", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_13, &__pyx_t_3) < 0) __PYX_ERR(0, 4175, __pyx_L44_except_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GOTREF(__pyx_t_13); __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_e, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_13); /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = NULL; goto __pyx_L58; } __pyx_L57_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_15 = 0; __pyx_t_18 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_t_31 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(((PyObject *)__pyx_t_22)); __pyx_t_22 = 0; __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_29, &__pyx_t_30, &__pyx_t_31); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_15, &__pyx_t_18, &__pyx_t_28) < 0)) __Pyx_ErrFetch(&__pyx_t_15, &__pyx_t_18, &__pyx_t_28); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_30); __Pyx_XGOTREF(__pyx_t_31); __pyx_t_12 = __pyx_lineno; __pyx_t_24 = __pyx_clineno; __pyx_t_27 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_30); __Pyx_XGIVEREF(__pyx_t_31); __Pyx_ExceptionReset(__pyx_t_29, __pyx_t_30, __pyx_t_31); } __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_ErrRestore(__pyx_t_15, __pyx_t_18, __pyx_t_28); __pyx_t_15 = 0; __pyx_t_18 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_t_31 = 0; __pyx_lineno = __pyx_t_12; __pyx_clineno = __pyx_t_24; __pyx_filename = __pyx_t_27; goto __pyx_L44_except_error; } __pyx_L58:; } __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L43_exception_handled; } goto __pyx_L44_except_error; __pyx_L44_except_error:;
+4176: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_logger); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4176, __pyx_L57_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_exception); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 4176, __pyx_L57_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_26))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_26); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_26); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_26, function); } } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_26, __pyx_t_1, __pyx_cur_scope->__pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_26, __pyx_cur_scope->__pyx_v_e); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4176, __pyx_L57_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; }
4177:
+4178: if not parent._workers_dv:
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_parent->_workers_dv); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 4178, __pyx_L8_error) __pyx_t_9 = ((!__pyx_t_10) != 0); if (__pyx_t_9) { /* … */ }
+4179: logger.info("Lost all workers")
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_logger); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4179, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_info); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4179, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_5 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_3, __pyx_kp_u_Lost_all_workers) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_u_Lost_all_workers); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4179, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4180:
+4181: for w in parent._workers_dv:
__pyx_t_23 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4181, __pyx_L8_error)
}
__pyx_t_13 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_parent->_workers_dv, 1, ((PyObject *)NULL), (&__pyx_t_21), (&__pyx_t_24)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4181, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_5);
__pyx_t_5 = __pyx_t_13;
__pyx_t_13 = 0;
while (1) {
__pyx_t_12 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_21, &__pyx_t_23, &__pyx_t_13, NULL, NULL, __pyx_t_24);
if (unlikely(__pyx_t_12 == 0)) break;
if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 4181, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_w);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_w, __pyx_t_13);
__Pyx_GIVEREF(__pyx_t_13);
__pyx_t_13 = 0;
+4182: self.bandwidth_workers.pop((address, w), None)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_bandwidth_workers); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4182, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_pop); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4182, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4182, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_address); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_address); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_cur_scope->__pyx_v_address); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_w); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_w); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_cur_scope->__pyx_v_w); __pyx_t_2 = NULL; __pyx_t_12 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); __pyx_t_12 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_11)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_3, Py_None}; __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4182, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_3, Py_None}; __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4182, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_26 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 4182, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_26); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_26, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_26, 0+__pyx_t_12, __pyx_t_3); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_26, 1+__pyx_t_12, Py_None); __pyx_t_3 = 0; __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_26, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4182, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+4183: self.bandwidth_workers.pop((w, address), None)
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_bandwidth_workers); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4183, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_pop); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 4183, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4183, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_w); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_w); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_cur_scope->__pyx_v_w); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_address); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_address); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_cur_scope->__pyx_v_address); __pyx_t_3 = NULL; __pyx_t_12 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_26))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_26); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_26); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_26, function); __pyx_t_12 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_26)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_11, Py_None}; __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_26, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4183, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_26)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_11, Py_None}; __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_26, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4183, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif { __pyx_t_2 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4183, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_12, __pyx_t_11); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_12, Py_None); __pyx_t_11 = 0; __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_26, __pyx_t_2, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4183, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4184:
+4185: def remove_worker_from_events():
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_13remove_worker_1remove_worker_from_events(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_13remove_worker_1remove_worker_from_events = {"remove_worker_from_events", (PyCFunction)__pyx_pw_11distributed_9scheduler_9Scheduler_13remove_worker_1remove_worker_from_events, METH_NOARGS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_13remove_worker_1remove_worker_from_events(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("remove_worker_from_events (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_13remove_worker_remove_worker_from_events(__pyx_self);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_13remove_worker_remove_worker_from_events(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_17_remove_worker *__pyx_cur_scope;
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_17_remove_worker *__pyx_outer_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("remove_worker_from_events", 0);
__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_17_remove_worker *) __Pyx_CyFunction_GetClosure(__pyx_self);
__pyx_cur_scope = __pyx_outer_scope;
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.remove_worker.remove_worker_from_events", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_13remove_worker_1remove_worker_from_events, 0, __pyx_n_s_Scheduler_remove_worker_locals_r, ((PyObject*)__pyx_cur_scope), __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4185, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_cur_scope->__pyx_v_remove_worker_from_events = __pyx_t_5;
__pyx_t_5 = 0;
/* … */
__pyx_codeobj__59 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_remove_worker_from_events, 4185, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__59)) __PYX_ERR(0, 4185, __pyx_L1_error)
4186: # If the worker isn't registered anymore after the delay, remove from events
+4187: if address not in parent._workers_dv and address in self.events:
if (unlikely(!__pyx_cur_scope->__pyx_v_address)) { __Pyx_RaiseClosureNameError("address"); __PYX_ERR(0, 4187, __pyx_L1_error) }
if (unlikely(!__pyx_cur_scope->__pyx_v_parent)) { __Pyx_RaiseClosureNameError("parent"); __PYX_ERR(0, 4187, __pyx_L1_error) }
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4187, __pyx_L1_error)
}
__pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_cur_scope->__pyx_v_address, __pyx_cur_scope->__pyx_v_parent->_workers_dv, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4187, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
} else {
__pyx_t_1 = __pyx_t_3;
goto __pyx_L4_bool_binop_done;
}
if (unlikely(!__pyx_cur_scope->__pyx_v_address)) { __Pyx_RaiseClosureNameError("address"); __PYX_ERR(0, 4187, __pyx_L1_error) }
if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 4187, __pyx_L1_error) }
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_events); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4187, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_cur_scope->__pyx_v_address, __pyx_t_4, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4187, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_2 = (__pyx_t_3 != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
+4188: del self.events[address]
if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 4188, __pyx_L1_error) }
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_events); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4188, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(!__pyx_cur_scope->__pyx_v_address)) { __Pyx_RaiseClosureNameError("address"); __PYX_ERR(0, 4188, __pyx_L1_error) }
if (unlikely(PyObject_DelItem(__pyx_t_4, __pyx_cur_scope->__pyx_v_address) < 0)) __PYX_ERR(0, 4188, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4189:
+4190: cleanup_delay = parse_timedelta(
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_parse_timedelta); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4190, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13);
+4191: dask.config.get("distributed.scheduler.events-cleanup-delay")
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_dask); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4191, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_config); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4191, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4191, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_26 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_11, __pyx_kp_u_distributed_scheduler_events_cle) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_u_distributed_scheduler_events_cle); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 4191, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_5 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_2, __pyx_t_26) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_26); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4190, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_cleanup_delay = __pyx_t_5; __pyx_t_5 = 0;
4192: )
+4193: self.loop.call_later(cleanup_delay, remove_worker_from_events)
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_loop); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4193, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_call_later); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 4193, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = NULL; __pyx_t_24 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_26))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_26); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_26); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_26, function); __pyx_t_24 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_26)) { PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_cur_scope->__pyx_v_cleanup_delay, __pyx_cur_scope->__pyx_v_remove_worker_from_events}; __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_26, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4193, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_26)) { PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_cur_scope->__pyx_v_cleanup_delay, __pyx_cur_scope->__pyx_v_remove_worker_from_events}; __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_26, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4193, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif { __pyx_t_2 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4193, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_13) { __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_13); __pyx_t_13 = NULL; } __Pyx_INCREF(__pyx_cur_scope->__pyx_v_cleanup_delay); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_cleanup_delay); PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_24, __pyx_cur_scope->__pyx_v_cleanup_delay); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_remove_worker_from_events); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_remove_worker_from_events); PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_24, __pyx_cur_scope->__pyx_v_remove_worker_from_events); __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_26, __pyx_t_2, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4193, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4194: logger.debug("Removed worker %s", ws)
__Pyx_GetModuleGlobalName(__pyx_t_26, __pyx_n_s_logger); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 4194, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_26, __pyx_n_s_debug); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4194, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_26 = NULL; __pyx_t_24 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_26 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_26)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_26); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_24 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_26, __pyx_kp_u_Removed_worker_s, ((PyObject *)__pyx_cur_scope->__pyx_v_ws)}; __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4194, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_26, __pyx_kp_u_Removed_worker_s, ((PyObject *)__pyx_cur_scope->__pyx_v_ws)}; __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4194, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif { __pyx_t_13 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4194, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); if (__pyx_t_26) { __Pyx_GIVEREF(__pyx_t_26); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_26); __pyx_t_26 = NULL; } __Pyx_INCREF(__pyx_kp_u_Removed_worker_s); __Pyx_GIVEREF(__pyx_kp_u_Removed_worker_s); PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_24, __pyx_kp_u_Removed_worker_s); __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_ws)); __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_ws)); PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_24, ((PyObject *)__pyx_cur_scope->__pyx_v_ws)); __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_13, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4194, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4195:
+4196: return "OK"
__Pyx_XDECREF(__pyx_r); __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_n_u_OK); goto __pyx_L0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
4197:
+4198: def stimulus_cancel(self, comm, keys=None, client=None, force=False):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_40stimulus_cancel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_39stimulus_cancel[] = " Stop execution on a list of keys ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_40stimulus_cancel = {"stimulus_cancel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_40stimulus_cancel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_39stimulus_cancel};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_40stimulus_cancel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_keys = 0;
PyObject *__pyx_v_client = 0;
PyObject *__pyx_v_force = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("stimulus_cancel (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_keys,&__pyx_n_s_client,&__pyx_n_s_force,0};
PyObject* values[5] = {0,0,0,0,0};
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject *)Py_None));
values[4] = ((PyObject *)((PyObject *)Py_False));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("stimulus_cancel", 0, 2, 5, 1); __PYX_ERR(0, 4198, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keys);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_client);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_force);
if (value) { values[4] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stimulus_cancel") < 0)) __PYX_ERR(0, 4198, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_keys = values[2];
__pyx_v_client = values[3];
__pyx_v_force = values[4];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("stimulus_cancel", 0, 2, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4198, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.stimulus_cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_39stimulus_cancel(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_keys, __pyx_v_client, __pyx_v_force);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_39stimulus_cancel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_keys, PyObject *__pyx_v_client, PyObject *__pyx_v_force) {
PyObject *__pyx_v_key = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("stimulus_cancel", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.stimulus_cancel", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_key);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__198 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_keys, __pyx_n_s_client, __pyx_n_s_force, __pyx_n_s_key); if (unlikely(!__pyx_tuple__198)) __PYX_ERR(0, 4198, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__198);
__Pyx_GIVEREF(__pyx_tuple__198);
__pyx_codeobj__199 = (PyObject*)__Pyx_PyCode_New(5, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__198, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_stimulus_cancel, 4198, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__199)) __PYX_ERR(0, 4198, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_40stimulus_cancel, 0, __pyx_n_s_Scheduler_stimulus_cancel, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__199)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4198, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__200);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_stimulus_cancel, __pyx_t_12) < 0) __PYX_ERR(0, 4198, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__200 = PyTuple_Pack(3, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_False)); if (unlikely(!__pyx_tuple__200)) __PYX_ERR(0, 4198, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__200);
__Pyx_GIVEREF(__pyx_tuple__200);
4199: """ Stop execution on a list of keys """
+4200: logger.info("Client %s requests to cancel %d keys", client, len(keys))
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logger); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = PyObject_Length(__pyx_v_keys); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4200, __pyx_L1_error) __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_6 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_kp_u_Client_s_requests_to_cancel_d_ke, __pyx_v_client, __pyx_t_2}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4200, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_kp_u_Client_s_requests_to_cancel_d_ke, __pyx_v_client, __pyx_t_2}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4200, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_kp_u_Client_s_requests_to_cancel_d_ke); __Pyx_GIVEREF(__pyx_kp_u_Client_s_requests_to_cancel_d_ke); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_kp_u_Client_s_requests_to_cancel_d_ke); __Pyx_INCREF(__pyx_v_client); __Pyx_GIVEREF(__pyx_v_client); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_client); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4201: if client:
__pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_client); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4201, __pyx_L1_error) if (__pyx_t_8) { /* … */ }
+4202: self.log_event(
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_log_event_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
+4203: client, {"action": "cancel", "count": len(keys), "force": force}
__pyx_t_7 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_u_action, __pyx_n_u_cancel) < 0) __PYX_ERR(0, 4203, __pyx_L1_error) __pyx_t_4 = PyObject_Length(__pyx_v_keys); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4203, __pyx_L1_error) __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_7, __pyx_n_u_count, __pyx_t_2) < 0) __PYX_ERR(0, 4203, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_t_7, __pyx_n_u_force, __pyx_v_force) < 0) __PYX_ERR(0, 4203, __pyx_L1_error) __pyx_t_2 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_6 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_client, __pyx_t_7}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4202, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_client, __pyx_t_7}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4202, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_v_client); __Pyx_GIVEREF(__pyx_v_client); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_v_client); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4204: )
+4205: for key in keys:
if (likely(PyList_CheckExact(__pyx_v_keys)) || PyTuple_CheckExact(__pyx_v_keys)) { __pyx_t_1 = __pyx_v_keys; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0; __pyx_t_9 = NULL; } else { __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4205, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4205, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4205, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_9(__pyx_t_1); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 4205, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4206: self.cancel_key(key, client, force=force)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cancel_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_key); __Pyx_INCREF(__pyx_v_client); __Pyx_GIVEREF(__pyx_v_client); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_client); __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_force, __pyx_v_force) < 0) __PYX_ERR(0, 4206, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4207:
+4208: def cancel_key(self, key, client, retries=5, force=False):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_42cancel_key(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_41cancel_key[] = " Cancel a particular key and all dependents ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_42cancel_key = {"cancel_key", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_42cancel_key, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_41cancel_key};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_42cancel_key(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_client = 0;
PyObject *__pyx_v_retries = 0;
PyObject *__pyx_v_force = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("cancel_key (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,&__pyx_n_s_client,&__pyx_n_s_retries,&__pyx_n_s_force,0};
PyObject* values[5] = {0,0,0,0,0};
values[3] = ((PyObject *)((PyObject *)__pyx_int_5));
values[4] = ((PyObject *)((PyObject *)Py_False));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("cancel_key", 0, 3, 5, 1); __PYX_ERR(0, 4208, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_client)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("cancel_key", 0, 3, 5, 2); __PYX_ERR(0, 4208, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_retries);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_force);
if (value) { values[4] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cancel_key") < 0)) __PYX_ERR(0, 4208, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_key = values[1];
__pyx_v_client = values[2];
__pyx_v_retries = values[3];
__pyx_v_force = values[4];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("cancel_key", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4208, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.cancel_key", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_41cancel_key(__pyx_self, __pyx_v_self, __pyx_v_key, __pyx_v_client, __pyx_v_retries, __pyx_v_force);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_41cancel_key(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_client, PyObject *__pyx_v_retries, PyObject *__pyx_v_force) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_18_cancel_key *__pyx_cur_scope;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_dts = 0;
struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_cs = 0;
PyObject *__pyx_v_clients = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("cancel_key", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_18_cancel_key *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_18_cancel_key(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_18_cancel_key, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_18_cancel_key *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 4208, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_key = __pyx_v_key;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_key);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_key);
__pyx_cur_scope->__pyx_v_client = __pyx_v_client;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_client);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_client);
__pyx_cur_scope->__pyx_v_retries = __pyx_v_retries;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_retries);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_retries);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.cancel_key", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_v_dts);
__Pyx_XDECREF((PyObject *)__pyx_v_cs);
__Pyx_XDECREF(__pyx_v_clients);
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__201 = PyTuple_Pack(10, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_client, __pyx_n_s_retries, __pyx_n_s_force, __pyx_n_s_parent, __pyx_n_s_ts, __pyx_n_s_dts, __pyx_n_s_cs, __pyx_n_s_clients); if (unlikely(!__pyx_tuple__201)) __PYX_ERR(0, 4208, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__201);
__Pyx_GIVEREF(__pyx_tuple__201);
__pyx_codeobj__202 = (PyObject*)__Pyx_PyCode_New(5, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__201, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_cancel_key, 4208, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__202)) __PYX_ERR(0, 4208, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_42cancel_key, 0, __pyx_n_s_Scheduler_cancel_key, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__202)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4208, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__203);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_cancel_key, __pyx_t_12) < 0) __PYX_ERR(0, 4208, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__203 = PyTuple_Pack(2, ((PyObject *)__pyx_int_5), ((PyObject *)Py_False)); if (unlikely(!__pyx_tuple__203)) __PYX_ERR(0, 4208, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__203);
__Pyx_GIVEREF(__pyx_tuple__203);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_18_cancel_key {
PyObject_HEAD
PyObject *__pyx_v_client;
PyObject *__pyx_v_key;
PyObject *__pyx_v_retries;
PyObject *__pyx_v_self;
};
4209: """ Cancel a particular key and all dependents """
4210: # TODO: this should be converted to use the transition mechanism
+4211: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_cur_scope->__pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4212: ts: TaskState = parent._tasks.get(key)
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 4212, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_parent->_tasks, __pyx_cur_scope->__pyx_v_key, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4212, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4212, __pyx_L1_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1);
__pyx_t_1 = 0;
4213: dts: TaskState
+4214: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L8_try_end;
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L1_error;
__pyx_L6_except_return:;
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L0;
__pyx_L8_try_end:;
}
+4215: cs: ClientState = parent._clients[client]
if (unlikely(__pyx_v_parent->_clients == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4215, __pyx_L3_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_parent->_clients, __pyx_cur_scope->__pyx_v_client); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4215, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 4215, __pyx_L3_error)
__pyx_v_cs = ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_1);
__pyx_t_1 = 0;
+4216: except KeyError:
__pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); if (__pyx_t_5) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.cancel_key", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(0, 4216, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7);
+4217: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L6_except_return; } goto __pyx_L5_except_error; __pyx_L5_except_error:;
+4218: if ts is None or not ts._who_wants: # no key yet, lets try again in a moment
__pyx_t_9 = (((PyObject *)__pyx_v_ts) == Py_None);
__pyx_t_10 = (__pyx_t_9 != 0);
if (!__pyx_t_10) {
} else {
__pyx_t_8 = __pyx_t_10;
goto __pyx_L12_bool_binop_done;
}
__pyx_t_10 = (__pyx_v_ts->_who_wants != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_wants) != 0);
__pyx_t_9 = ((!__pyx_t_10) != 0);
__pyx_t_8 = __pyx_t_9;
__pyx_L12_bool_binop_done:;
if (__pyx_t_8) {
/* … */
}
+4219: if retries:
__pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_retries); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4219, __pyx_L1_error) if (__pyx_t_8) { /* … */ }
+4220: self.loop.call_later(
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_loop); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_call_later); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+4221: 0.2, lambda: self.cancel_key(key, client, retries - 1)
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_10cancel_key_lambda9(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_10cancel_key_lambda9 = {"lambda9", (PyCFunction)__pyx_pw_11distributed_9scheduler_9Scheduler_10cancel_key_lambda9, METH_NOARGS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_10cancel_key_lambda9(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("lambda9 (wrapper)", 0);
__pyx_r = __pyx_lambda_funcdef_lambda9(__pyx_self);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_lambda_funcdef_lambda9(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_18_cancel_key *__pyx_cur_scope;
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_18_cancel_key *__pyx_outer_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("lambda9", 0);
__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_18_cancel_key *) __Pyx_CyFunction_GetClosure(__pyx_self);
__pyx_cur_scope = __pyx_outer_scope;
__Pyx_XDECREF(__pyx_r);
if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 4221, __pyx_L1_error) }
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_cancel_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4221, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(!__pyx_cur_scope->__pyx_v_key)) { __Pyx_RaiseClosureNameError("key"); __PYX_ERR(0, 4221, __pyx_L1_error) }
if (unlikely(!__pyx_cur_scope->__pyx_v_client)) { __Pyx_RaiseClosureNameError("client"); __PYX_ERR(0, 4221, __pyx_L1_error) }
if (unlikely(!__pyx_cur_scope->__pyx_v_retries)) { __Pyx_RaiseClosureNameError("retries"); __PYX_ERR(0, 4221, __pyx_L1_error) }
__pyx_t_3 = __Pyx_PyInt_SubtractObjC(__pyx_cur_scope->__pyx_v_retries, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4221, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_4)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_2)) {
PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_cur_scope->__pyx_v_key, __pyx_cur_scope->__pyx_v_client, __pyx_t_3};
__pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4221, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_cur_scope->__pyx_v_key, __pyx_cur_scope->__pyx_v_client, __pyx_t_3};
__pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4221, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} else
#endif
{
__pyx_t_6 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4221, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (__pyx_t_4) {
__Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
}
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_key);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_key);
PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_cur_scope->__pyx_v_key);
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_client);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_client);
PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_cur_scope->__pyx_v_client);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_t_3);
__pyx_t_3 = 0;
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4221, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.cancel_key.lambda9", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_10cancel_key_lambda9, 0, __pyx_n_s_Scheduler_cancel_key_locals_lamb, ((PyObject*)__pyx_cur_scope), __pyx_n_s_distributed_scheduler, __pyx_d, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4221, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_11 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_11 = PyMethod_GET_SELF(__pyx_t_1);
if (likely(__pyx_t_11)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_11);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_1, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_1)) {
PyObject *__pyx_temp[3] = {__pyx_t_11, __pyx_float_0_2, __pyx_t_6};
__pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4220, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
PyObject *__pyx_temp[3] = {__pyx_t_11, __pyx_float_0_2, __pyx_t_6};
__pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4220, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
} else
#endif
{
__pyx_t_12 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (__pyx_t_11) {
__Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_11); __pyx_t_11 = NULL;
}
__Pyx_INCREF(__pyx_float_0_2);
__Pyx_GIVEREF(__pyx_float_0_2);
PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_5, __pyx_float_0_2);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_5, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_12, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
4222: )
+4223: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
+4224: if force or ts._who_wants == {cs}: # no one else wants this key
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_force); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 4224, __pyx_L1_error) if (!__pyx_t_9) { } else { __pyx_t_8 = __pyx_t_9; goto __pyx_L16_bool_binop_done; } __pyx_t_7 = PySet_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PySet_Add(__pyx_t_7, ((PyObject *)__pyx_v_cs)) < 0) __PYX_ERR(0, 4224, __pyx_L1_error) __pyx_t_1 = PyObject_RichCompare(__pyx_v_ts->_who_wants, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4224, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 4224, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_8 = __pyx_t_9; __pyx_L16_bool_binop_done:; if (__pyx_t_8) { /* … */ }
+4225: for dts in list(ts._dependents):
__pyx_t_1 = PySequence_List(__pyx_v_ts->_dependents); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = __pyx_t_1; __Pyx_INCREF(__pyx_t_7); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_7)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 4225, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_7, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4225, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1)); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4226: self.cancel_key(dts._key, client, force=force)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_cancel_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_INCREF(__pyx_v_dts->_key); __Pyx_GIVEREF(__pyx_v_dts->_key); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_v_dts->_key); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_client); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_client); PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_cur_scope->__pyx_v_client); __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_force, __pyx_v_force) < 0) __PYX_ERR(0, 4226, __pyx_L1_error) __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_12, __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+4227: logger.info("Scheduler cancels key %s. Force=%s", key, force)
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_logger); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_info); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[4] = {__pyx_t_11, __pyx_kp_u_Scheduler_cancels_key_s_Force_s, __pyx_cur_scope->__pyx_v_key, __pyx_v_force}; __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4227, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[4] = {__pyx_t_11, __pyx_kp_u_Scheduler_cancels_key_s_Force_s, __pyx_cur_scope->__pyx_v_key, __pyx_v_force}; __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4227, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif { __pyx_t_12 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_11) { __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_11); __pyx_t_11 = NULL; } __Pyx_INCREF(__pyx_kp_u_Scheduler_cancels_key_s_Force_s); __Pyx_GIVEREF(__pyx_kp_u_Scheduler_cancels_key_s_Force_s); PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_5, __pyx_kp_u_Scheduler_cancels_key_s_Force_s); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_key); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_5, __pyx_cur_scope->__pyx_v_key); __Pyx_INCREF(__pyx_v_force); __Pyx_GIVEREF(__pyx_v_force); PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_5, __pyx_v_force); __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_12, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4228: self.report({"op": "cancelled-key", "key": key})
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_report); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_12 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (PyDict_SetItem(__pyx_t_12, __pyx_n_u_op, __pyx_kp_u_cancelled_key) < 0) __PYX_ERR(0, 4228, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_12, __pyx_n_u_key, __pyx_cur_scope->__pyx_v_key) < 0) __PYX_ERR(0, 4228, __pyx_L1_error) __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_7 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_11, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_12); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4229: clients = list(ts._who_wants) if force else [cs]
__pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_force); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4229, __pyx_L1_error) if (__pyx_t_8) { __pyx_t_6 = PySequence_List(__pyx_v_ts->_who_wants); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __pyx_t_6; __pyx_t_6 = 0; } else { __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(((PyObject *)__pyx_v_cs)); __Pyx_GIVEREF(((PyObject *)__pyx_v_cs)); PyList_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_cs)); __pyx_t_7 = __pyx_t_6; __pyx_t_6 = 0; } __pyx_v_clients = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0;
+4230: for cs in clients:
if (unlikely(__pyx_v_clients == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4230, __pyx_L1_error)
}
__pyx_t_7 = __pyx_v_clients; __Pyx_INCREF(__pyx_t_7); __pyx_t_13 = 0;
for (;;) {
if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_7)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_13); __Pyx_INCREF(__pyx_t_6); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 4230, __pyx_L1_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_7, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 4230, __pyx_L1_error)
__Pyx_DECREF_SET(__pyx_v_cs, ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_6));
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4231: self.client_releases_keys(keys=[key], client=cs._client_key)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_client_releases_keys_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_12 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_11 = PyList_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_key); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_key); PyList_SET_ITEM(__pyx_t_11, 0, __pyx_cur_scope->__pyx_v_key); if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_keys, __pyx_t_11) < 0) __PYX_ERR(0, 4231, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_client, __pyx_v_cs->_client_key) < 0) __PYX_ERR(0, 4231, __pyx_L1_error) __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_empty_tuple, __pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
4232:
+4233: def client_desires_keys(self, keys=None, client=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_44client_desires_keys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_44client_desires_keys = {"client_desires_keys", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_44client_desires_keys, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_44client_desires_keys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_keys = 0;
PyObject *__pyx_v_client = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("client_desires_keys (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_keys,&__pyx_n_s_client,0};
PyObject* values[3] = {0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keys);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_client);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "client_desires_keys") < 0)) __PYX_ERR(0, 4233, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_keys = values[1];
__pyx_v_client = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("client_desires_keys", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4233, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.client_desires_keys", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_43client_desires_keys(__pyx_self, __pyx_v_self, __pyx_v_keys, __pyx_v_client);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_43client_desires_keys(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_keys, PyObject *__pyx_v_client) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_cs = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_v_k = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("client_desires_keys", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.client_desires_keys", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_cs);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF(__pyx_v_k);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__204 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_keys, __pyx_n_s_client, __pyx_n_s_parent, __pyx_n_s_cs, __pyx_n_s_ts, __pyx_n_s_k); if (unlikely(!__pyx_tuple__204)) __PYX_ERR(0, 4233, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__204);
__Pyx_GIVEREF(__pyx_tuple__204);
__pyx_codeobj__205 = (PyObject*)__Pyx_PyCode_New(3, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__204, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_client_desires_keys_2, 4233, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__205)) __PYX_ERR(0, 4233, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_44client_desires_keys, 0, __pyx_n_s_Scheduler_client_desires_keys, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__205)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4233, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__206);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_client_desires_keys_2, __pyx_t_12) < 0) __PYX_ERR(0, 4233, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__206 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__206)) __PYX_ERR(0, 4233, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__206);
__Pyx_GIVEREF(__pyx_tuple__206);
+4234: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4235: cs: ClientState = parent._clients.get(client)
if (unlikely(__pyx_v_parent->_clients == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 4235, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_parent->_clients, __pyx_v_client, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4235, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 4235, __pyx_L1_error)
__pyx_v_cs = ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_1);
__pyx_t_1 = 0;
+4236: if cs is None:
__pyx_t_2 = (((PyObject *)__pyx_v_cs) == Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
}
4237: # For publish, queues etc.
+4238: parent._clients[client] = cs = ClientState(client)
__pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_11distributed_9scheduler_ClientState), __pyx_v_client); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_parent->_clients == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4238, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_parent->_clients, __pyx_v_client, __pyx_t_1) < 0)) __PYX_ERR(0, 4238, __pyx_L1_error) __Pyx_INCREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_cs, ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_1)); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4239: ts: TaskState
+4240: for k in keys:
if (likely(PyList_CheckExact(__pyx_v_keys)) || PyTuple_CheckExact(__pyx_v_keys)) { __pyx_t_1 = __pyx_v_keys; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4240, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_5)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4240, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4240, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif } } else { __pyx_t_6 = __pyx_t_5(__pyx_t_1); if (unlikely(!__pyx_t_6)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 4240, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_6); } __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_6); __pyx_t_6 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4241: ts = parent._tasks.get(k)
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 4241, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItemDefault(__pyx_v_parent->_tasks, __pyx_v_k, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4241, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4241, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6));
__pyx_t_6 = 0;
+4242: if ts is None:
__pyx_t_3 = (((PyObject *)__pyx_v_ts) == Py_None);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
/* … */
}
4243: # For publish, queues etc.
+4244: ts = self.new_task(k, None, "released")
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_new_task); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_9 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_k, Py_None, __pyx_n_u_released}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4244, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_6); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_k, Py_None, __pyx_n_u_released}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4244, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_6); } else #endif { __pyx_t_10 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_INCREF(__pyx_v_k); __Pyx_GIVEREF(__pyx_v_k); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_v_k); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, Py_None); __Pyx_INCREF(__pyx_n_u_released); __Pyx_GIVEREF(__pyx_n_u_released); PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_n_u_released); __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4244, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6)); __pyx_t_6 = 0;
+4245: ts._who_wants.add(cs)
if (unlikely(__pyx_v_ts->_who_wants == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 4245, __pyx_L1_error)
}
__pyx_t_11 = PySet_Add(__pyx_v_ts->_who_wants, ((PyObject *)__pyx_v_cs)); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 4245, __pyx_L1_error)
+4246: cs._wants_what.add(ts)
if (unlikely(__pyx_v_cs->_wants_what == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 4246, __pyx_L1_error)
}
__pyx_t_11 = PySet_Add(__pyx_v_cs->_wants_what, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 4246, __pyx_L1_error)
4247:
+4248: if ts._state in ("memory", "erred"):
__Pyx_INCREF(__pyx_v_ts->_state); __pyx_t_12 = __pyx_v_ts->_state; __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_12, __pyx_n_u_memory_2, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4248, __pyx_L1_error) __pyx_t_13 = (__pyx_t_3 != 0); if (!__pyx_t_13) { } else { __pyx_t_2 = __pyx_t_13; goto __pyx_L8_bool_binop_done; } __pyx_t_13 = (__Pyx_PyUnicode_Equals(__pyx_t_12, __pyx_n_u_erred, Py_EQ)); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 4248, __pyx_L1_error) __pyx_t_3 = (__pyx_t_13 != 0); __pyx_t_2 = __pyx_t_3; __pyx_L8_bool_binop_done:; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* … */ }
+4249: self.report_on_key(ts=ts, client=client)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_report_on_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_ts, ((PyObject *)__pyx_v_ts)) < 0) __PYX_ERR(0, 4249, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_client, __pyx_v_client) < 0) __PYX_ERR(0, 4249, __pyx_L1_error) __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_empty_tuple, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
4250:
+4251: def client_releases_keys(self, keys=None, client=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_46client_releases_keys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_45client_releases_keys[] = " Remove keys from client desired list ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_46client_releases_keys = {"client_releases_keys", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_46client_releases_keys, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_45client_releases_keys};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_46client_releases_keys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_keys = 0;
PyObject *__pyx_v_client = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("client_releases_keys (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_keys,&__pyx_n_s_client,0};
PyObject* values[3] = {0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keys);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_client);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "client_releases_keys") < 0)) __PYX_ERR(0, 4251, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_keys = values[1];
__pyx_v_client = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("client_releases_keys", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4251, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.client_releases_keys", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_45client_releases_keys(__pyx_self, __pyx_v_self, __pyx_v_keys, __pyx_v_client);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_45client_releases_keys(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_keys, PyObject *__pyx_v_client) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_cs = 0;
PyObject *__pyx_v_recommendations = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("client_releases_keys", 0);
__Pyx_INCREF(__pyx_v_keys);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.client_releases_keys", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_cs);
__Pyx_XDECREF(__pyx_v_recommendations);
__Pyx_XDECREF(__pyx_v_keys);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__207 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_keys, __pyx_n_s_client, __pyx_n_s_parent, __pyx_n_s_cs, __pyx_n_s_recommendations); if (unlikely(!__pyx_tuple__207)) __PYX_ERR(0, 4251, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__207);
__Pyx_GIVEREF(__pyx_tuple__207);
__pyx_codeobj__208 = (PyObject*)__Pyx_PyCode_New(3, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__207, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_client_releases_keys_2, 4251, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__208)) __PYX_ERR(0, 4251, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_46client_releases_keys, 0, __pyx_n_s_Scheduler_client_releases_keys, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__208)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4251, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__209);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_client_releases_keys_2, __pyx_t_12) < 0) __PYX_ERR(0, 4251, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__209 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__209)) __PYX_ERR(0, 4251, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__209);
__Pyx_GIVEREF(__pyx_tuple__209);
4252: """ Remove keys from client desired list """
4253:
+4254: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4255: if not isinstance(keys, list):
__pyx_t_2 = PyList_Check(__pyx_v_keys);
__pyx_t_3 = ((!(__pyx_t_2 != 0)) != 0);
if (__pyx_t_3) {
/* … */
}
+4256: keys = list(keys)
__pyx_t_1 = PySequence_List(__pyx_v_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_keys, __pyx_t_1); __pyx_t_1 = 0;
+4257: cs: ClientState = parent._clients[client]
if (unlikely(__pyx_v_parent->_clients == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4257, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_parent->_clients, __pyx_v_client); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4257, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 4257, __pyx_L1_error)
__pyx_v_cs = ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_1);
__pyx_t_1 = 0;
+4258: recommendations: dict = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_recommendations = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
4259:
+4260: _client_releases_keys(parent, keys=keys, cs=cs, recommendations=recommendations)
if (!(likely(PyList_CheckExact(__pyx_v_keys))||((__pyx_v_keys) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_keys)->tp_name), 0))) __PYX_ERR(0, 4260, __pyx_L1_error) __pyx_t_1 = __pyx_f_11distributed_9scheduler__client_releases_keys(__pyx_v_parent, ((PyObject*)__pyx_v_keys), __pyx_v_cs, __pyx_v_recommendations); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4261: self.transitions(recommendations)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transitions_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_recommendations) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_recommendations); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4262:
+4263: def client_heartbeat(self, client=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_48client_heartbeat(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_47client_heartbeat[] = " Handle heartbeats from Client ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_48client_heartbeat = {"client_heartbeat", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_48client_heartbeat, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_47client_heartbeat};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_48client_heartbeat(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_client = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("client_heartbeat (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_client,0};
PyObject* values[2] = {0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_client);
if (value) { values[1] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "client_heartbeat") < 0)) __PYX_ERR(0, 4263, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_client = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("client_heartbeat", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4263, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.client_heartbeat", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_47client_heartbeat(__pyx_self, __pyx_v_self, __pyx_v_client);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_47client_heartbeat(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_client) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_cs = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("client_heartbeat", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.client_heartbeat", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_cs);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__210 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_client, __pyx_n_s_parent, __pyx_n_s_cs); if (unlikely(!__pyx_tuple__210)) __PYX_ERR(0, 4263, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__210);
__Pyx_GIVEREF(__pyx_tuple__210);
__pyx_codeobj__211 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__210, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_client_heartbeat, 4263, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__211)) __PYX_ERR(0, 4263, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_48client_heartbeat, 0, __pyx_n_s_Scheduler_client_heartbeat, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__211)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4263, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__212);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_client_heartbeat, __pyx_t_12) < 0) __PYX_ERR(0, 4263, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__212 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__212)) __PYX_ERR(0, 4263, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__212);
__Pyx_GIVEREF(__pyx_tuple__212);
4264: """ Handle heartbeats from Client """
+4265: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4266: cs: ClientState = parent._clients[client]
if (unlikely(__pyx_v_parent->_clients == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4266, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_parent->_clients, __pyx_v_client); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4266, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 4266, __pyx_L1_error)
__pyx_v_cs = ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_1);
__pyx_t_1 = 0;
+4267: cs._last_seen = time()
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_time); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4267, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_cs->_last_seen = __pyx_t_4;
4268:
4269: ###################
4270: # Task Validation #
4271: ###################
4272:
+4273: def validate_released(self, key):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_50validate_released(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_50validate_released = {"validate_released", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_50validate_released, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_50validate_released(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate_released (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("validate_released", 1, 2, 2, 1); __PYX_ERR(0, 4273, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "validate_released") < 0)) __PYX_ERR(0, 4273, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_self = values[0];
__pyx_v_key = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("validate_released", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4273, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.validate_released", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_49validate_released(__pyx_self, __pyx_v_self, __pyx_v_key);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_49validate_released(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_9genexpr45__pyx_v_dts = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate_released", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.validate_released", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_9genexpr45__pyx_v_dts);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__213 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_parent, __pyx_n_s_ts, __pyx_n_s_dts, __pyx_n_s_dts); if (unlikely(!__pyx_tuple__213)) __PYX_ERR(0, 4273, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__213);
__Pyx_GIVEREF(__pyx_tuple__213);
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_50validate_released, 0, __pyx_n_s_Scheduler_validate_released, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__214)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4273, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_validate_released, __pyx_t_12) < 0) __PYX_ERR(0, 4273, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_codeobj__214 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__213, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_validate_released, 4273, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__214)) __PYX_ERR(0, 4273, __pyx_L1_error)
+4274: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4275: ts: TaskState = parent._tasks[key]
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4275, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_parent->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4275, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4275, __pyx_L1_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1);
__pyx_t_1 = 0;
4276: dts: TaskState
+4277: assert ts._state == "released"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_released, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4277, __pyx_L1_error)
if (unlikely(!(__pyx_t_2 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4277, __pyx_L1_error)
}
}
#endif
+4278: assert not ts._waiters
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (__pyx_v_ts->_waiters != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiters) != 0);
if (unlikely(!((!__pyx_t_2) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4278, __pyx_L1_error)
}
}
#endif
+4279: assert not ts._waiting_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (unlikely(!((!__pyx_t_2) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4279, __pyx_L1_error)
}
}
#endif
+4280: assert not ts._who_has
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
if (unlikely(!((!__pyx_t_2) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4280, __pyx_L1_error)
}
}
#endif
+4281: assert not ts._processing_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ts->_processing_on)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4281, __pyx_L1_error)
if (unlikely(!((!__pyx_t_2) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4281, __pyx_L1_error)
}
}
#endif
+4282: assert not any([ts in dts._waiters for dts in ts._dependencies])
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4282, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = 0;
__pyx_t_7 = __Pyx_set_iterator(__pyx_v_ts->_dependencies, 1, (&__pyx_t_5), (&__pyx_t_6)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4282, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_3);
__pyx_t_3 = __pyx_t_7;
__pyx_t_7 = 0;
while (1) {
__pyx_t_8 = __Pyx_set_iter_next(__pyx_t_3, __pyx_t_5, &__pyx_t_4, &__pyx_t_7, __pyx_t_6);
if (unlikely(__pyx_t_8 == 0)) break;
if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 4282, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_7);
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4282, __pyx_L5_error)
__Pyx_XDECREF_SET(__pyx_9genexpr45__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_7));
__pyx_t_7 = 0;
if (unlikely(__pyx_9genexpr45__pyx_v_dts->_waiters == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4282, __pyx_L5_error)
}
__pyx_t_2 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_9genexpr45__pyx_v_dts->_waiters, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4282, __pyx_L5_error)
__pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4282, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_7);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_7))) __PYX_ERR(0, 4282, __pyx_L5_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr45__pyx_v_dts); __pyx_9genexpr45__pyx_v_dts = 0;
goto __pyx_L8_exit_scope;
__pyx_L5_error:;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr45__pyx_v_dts); __pyx_9genexpr45__pyx_v_dts = 0;
goto __pyx_L1_error;
__pyx_L8_exit_scope:;
} /* exit inner scope */
__pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_any, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4282, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4282, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!((!__pyx_t_2) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4282, __pyx_L1_error)
}
}
#endif
+4283: assert ts not in parent._unrunnable
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_parent->_unrunnable == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4283, __pyx_L1_error)
}
__pyx_t_2 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_parent->_unrunnable, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4283, __pyx_L1_error)
if (unlikely(!(__pyx_t_2 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4283, __pyx_L1_error)
}
}
#endif
4284:
+4285: def validate_waiting(self, key):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_52validate_waiting(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_52validate_waiting = {"validate_waiting", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_52validate_waiting, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_52validate_waiting(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate_waiting (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("validate_waiting", 1, 2, 2, 1); __PYX_ERR(0, 4285, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "validate_waiting") < 0)) __PYX_ERR(0, 4285, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_self = values[0];
__pyx_v_key = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("validate_waiting", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4285, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.validate_waiting", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_51validate_waiting(__pyx_self, __pyx_v_self, __pyx_v_key);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_51validate_waiting(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_dts = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate_waiting", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.validate_waiting", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_v_dts);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__215 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_parent, __pyx_n_s_ts, __pyx_n_s_dts); if (unlikely(!__pyx_tuple__215)) __PYX_ERR(0, 4285, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__215);
__Pyx_GIVEREF(__pyx_tuple__215);
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_52validate_waiting, 0, __pyx_n_s_Scheduler_validate_waiting, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__216)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4285, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_validate_waiting, __pyx_t_12) < 0) __PYX_ERR(0, 4285, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_codeobj__216 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__215, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_validate_waiting, 4285, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__216)) __PYX_ERR(0, 4285, __pyx_L1_error)
+4286: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4287: ts: TaskState = parent._tasks[key]
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4287, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_parent->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4287, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4287, __pyx_L1_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1);
__pyx_t_1 = 0;
4288: dts: TaskState
+4289: assert ts._waiting_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (unlikely(!__pyx_t_2)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4289, __pyx_L1_error)
}
}
#endif
+4290: assert not ts._who_has
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
if (unlikely(!((!__pyx_t_2) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4290, __pyx_L1_error)
}
}
#endif
+4291: assert not ts._processing_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ts->_processing_on)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4291, __pyx_L1_error)
if (unlikely(!((!__pyx_t_2) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4291, __pyx_L1_error)
}
}
#endif
+4292: assert ts not in parent._unrunnable
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_parent->_unrunnable == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4292, __pyx_L1_error)
}
__pyx_t_2 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_parent->_unrunnable, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4292, __pyx_L1_error)
if (unlikely(!(__pyx_t_2 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4292, __pyx_L1_error)
}
}
#endif
+4293: for dts in ts._dependencies:
__pyx_t_3 = 0; __pyx_t_6 = __Pyx_set_iterator(__pyx_v_ts->_dependencies, 1, (&__pyx_t_4), (&__pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_6; __pyx_t_6 = 0; while (1) { __pyx_t_7 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_4, &__pyx_t_3, &__pyx_t_6, __pyx_t_5); if (unlikely(__pyx_t_7 == 0)) break; if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 4293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4293, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6)); __pyx_t_6 = 0;
4294: # We are waiting on a dependency iff it's not stored
+4295: assert (not not dts._who_has) != (dts in ts._waiting_on)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (__pyx_v_dts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_dts->_who_has) != 0);
if (unlikely(__pyx_v_ts->_waiting_on == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4295, __pyx_L1_error)
}
__pyx_t_8 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_dts), __pyx_v_ts->_waiting_on, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4295, __pyx_L1_error)
if (unlikely(!(((!((!__pyx_t_2) != 0)) != __pyx_t_8) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4295, __pyx_L1_error)
}
}
#endif
+4296: assert ts in dts._waiters # XXX even if dts._who_has?
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_dts->_waiters == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4296, __pyx_L1_error)
}
__pyx_t_8 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_dts->_waiters, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4296, __pyx_L1_error)
if (unlikely(!(__pyx_t_8 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4296, __pyx_L1_error)
}
}
#endif
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4297:
+4298: def validate_processing(self, key):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_54validate_processing(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_54validate_processing = {"validate_processing", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_54validate_processing, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_54validate_processing(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate_processing (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("validate_processing", 1, 2, 2, 1); __PYX_ERR(0, 4298, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "validate_processing") < 0)) __PYX_ERR(0, 4298, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_self = values[0];
__pyx_v_key = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("validate_processing", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4298, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.validate_processing", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_53validate_processing(__pyx_self, __pyx_v_self, __pyx_v_key);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_53validate_processing(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_dts = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate_processing", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.validate_processing", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_v_dts);
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__217 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_parent, __pyx_n_s_ts, __pyx_n_s_dts, __pyx_n_s_ws); if (unlikely(!__pyx_tuple__217)) __PYX_ERR(0, 4298, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__217);
__Pyx_GIVEREF(__pyx_tuple__217);
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_54validate_processing, 0, __pyx_n_s_Scheduler_validate_processing, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__218)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4298, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_validate_processing, __pyx_t_12) < 0) __PYX_ERR(0, 4298, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_codeobj__218 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__217, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_validate_processing, 4298, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__218)) __PYX_ERR(0, 4298, __pyx_L1_error)
+4299: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4300: ts: TaskState = parent._tasks[key]
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4300, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_parent->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4300, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4300, __pyx_L1_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1);
__pyx_t_1 = 0;
4301: dts: TaskState
+4302: assert not ts._waiting_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (unlikely(!((!__pyx_t_2) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4302, __pyx_L1_error)
}
}
#endif
+4303: ws: WorkerState = ts._processing_on
__pyx_t_1 = ((PyObject *)__pyx_v_ts->_processing_on);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4304: assert ws
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ws)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4304, __pyx_L1_error)
if (unlikely(!__pyx_t_2)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4304, __pyx_L1_error)
}
}
#endif
+4305: assert ts in ws._processing
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_ws->_processing == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4305, __pyx_L1_error)
}
__pyx_t_2 = (__Pyx_PyDict_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_ws->_processing, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4305, __pyx_L1_error)
if (unlikely(!(__pyx_t_2 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4305, __pyx_L1_error)
}
}
#endif
+4306: assert not ts._who_has
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
if (unlikely(!((!__pyx_t_2) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4306, __pyx_L1_error)
}
}
#endif
+4307: for dts in ts._dependencies:
__pyx_t_3 = 0; __pyx_t_6 = __Pyx_set_iterator(__pyx_v_ts->_dependencies, 1, (&__pyx_t_4), (&__pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_6; __pyx_t_6 = 0; while (1) { __pyx_t_7 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_4, &__pyx_t_3, &__pyx_t_6, __pyx_t_5); if (unlikely(__pyx_t_7 == 0)) break; if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 4307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4307, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6)); __pyx_t_6 = 0;
+4308: assert dts._who_has
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (__pyx_v_dts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_dts->_who_has) != 0);
if (unlikely(!__pyx_t_2)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4308, __pyx_L1_error)
}
}
#endif
+4309: assert ts in dts._waiters
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_dts->_waiters == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4309, __pyx_L1_error)
}
__pyx_t_2 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_dts->_waiters, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4309, __pyx_L1_error)
if (unlikely(!(__pyx_t_2 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4309, __pyx_L1_error)
}
}
#endif
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4310:
+4311: def validate_memory(self, key):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_56validate_memory(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_56validate_memory = {"validate_memory", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_56validate_memory, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_56validate_memory(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate_memory (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("validate_memory", 1, 2, 2, 1); __PYX_ERR(0, 4311, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "validate_memory") < 0)) __PYX_ERR(0, 4311, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_self = values[0];
__pyx_v_key = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("validate_memory", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4311, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.validate_memory", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_55validate_memory(__pyx_self, __pyx_v_self, __pyx_v_key);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_55validate_memory(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_dts = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate_memory", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.validate_memory", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_v_dts);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__219 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_parent, __pyx_n_s_ts, __pyx_n_s_dts); if (unlikely(!__pyx_tuple__219)) __PYX_ERR(0, 4311, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__219);
__Pyx_GIVEREF(__pyx_tuple__219);
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_56validate_memory, 0, __pyx_n_s_Scheduler_validate_memory, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__220)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4311, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_validate_memory, __pyx_t_12) < 0) __PYX_ERR(0, 4311, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_codeobj__220 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__219, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_validate_memory, 4311, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__220)) __PYX_ERR(0, 4311, __pyx_L1_error)
+4312: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4313: ts: TaskState = parent._tasks[key]
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4313, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_parent->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4313, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4313, __pyx_L1_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1);
__pyx_t_1 = 0;
4314: dts: TaskState
+4315: assert ts._who_has
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
if (unlikely(!__pyx_t_2)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4315, __pyx_L1_error)
}
}
#endif
+4316: assert not ts._processing_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ts->_processing_on)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4316, __pyx_L1_error)
if (unlikely(!((!__pyx_t_2) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4316, __pyx_L1_error)
}
}
#endif
+4317: assert not ts._waiting_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (unlikely(!((!__pyx_t_2) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4317, __pyx_L1_error)
}
}
#endif
+4318: assert ts not in parent._unrunnable
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_parent->_unrunnable == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4318, __pyx_L1_error)
}
__pyx_t_2 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_parent->_unrunnable, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4318, __pyx_L1_error)
if (unlikely(!(__pyx_t_2 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4318, __pyx_L1_error)
}
}
#endif
+4319: for dts in ts._dependents:
__pyx_t_3 = 0; __pyx_t_6 = __Pyx_set_iterator(__pyx_v_ts->_dependents, 1, (&__pyx_t_4), (&__pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_6; __pyx_t_6 = 0; while (1) { __pyx_t_7 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_4, &__pyx_t_3, &__pyx_t_6, __pyx_t_5); if (unlikely(__pyx_t_7 == 0)) break; if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 4319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4319, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6)); __pyx_t_6 = 0;
+4320: assert (dts in ts._waiters) == (dts._state in ("waiting", "processing"))
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_ts->_waiters == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4320, __pyx_L1_error)
}
__pyx_t_2 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_dts), __pyx_v_ts->_waiters, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4320, __pyx_L1_error)
__Pyx_INCREF(__pyx_v_dts->_state);
__pyx_t_8 = __pyx_v_dts->_state;
__pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_8, __pyx_n_u_waiting, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 4320, __pyx_L1_error)
__pyx_t_11 = (__pyx_t_10 != 0);
if (!__pyx_t_11) {
} else {
__pyx_t_9 = __pyx_t_11;
goto __pyx_L5_bool_binop_done;
}
__pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_t_8, __pyx_n_u_processing_2, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 4320, __pyx_L1_error)
__pyx_t_10 = (__pyx_t_11 != 0);
__pyx_t_9 = __pyx_t_10;
__pyx_L5_bool_binop_done:;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(!((__pyx_t_2 == __pyx_t_9) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4320, __pyx_L1_error)
}
}
#endif
+4321: assert ts not in dts._waiting_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_dts->_waiting_on == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4321, __pyx_L1_error)
}
__pyx_t_9 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_dts->_waiting_on, Py_NE)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 4321, __pyx_L1_error)
if (unlikely(!(__pyx_t_9 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4321, __pyx_L1_error)
}
}
#endif
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4322:
+4323: def validate_no_worker(self, key):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_58validate_no_worker(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_58validate_no_worker = {"validate_no_worker", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_58validate_no_worker, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_58validate_no_worker(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate_no_worker (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("validate_no_worker", 1, 2, 2, 1); __PYX_ERR(0, 4323, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "validate_no_worker") < 0)) __PYX_ERR(0, 4323, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_self = values[0];
__pyx_v_key = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("validate_no_worker", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4323, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.validate_no_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_57validate_no_worker(__pyx_self, __pyx_v_self, __pyx_v_key);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_57validate_no_worker(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_dts = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate_no_worker", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.validate_no_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_v_dts);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__221 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_parent, __pyx_n_s_ts, __pyx_n_s_dts); if (unlikely(!__pyx_tuple__221)) __PYX_ERR(0, 4323, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__221);
__Pyx_GIVEREF(__pyx_tuple__221);
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_58validate_no_worker, 0, __pyx_n_s_Scheduler_validate_no_worker, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__222)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4323, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_validate_no_worker, __pyx_t_12) < 0) __PYX_ERR(0, 4323, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_codeobj__222 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__221, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_validate_no_worker, 4323, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__222)) __PYX_ERR(0, 4323, __pyx_L1_error)
+4324: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4325: ts: TaskState = parent._tasks[key]
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4325, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_parent->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4325, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4325, __pyx_L1_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1);
__pyx_t_1 = 0;
4326: dts: TaskState
+4327: assert ts in parent._unrunnable
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_parent->_unrunnable == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4327, __pyx_L1_error)
}
__pyx_t_2 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_parent->_unrunnable, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4327, __pyx_L1_error)
if (unlikely(!(__pyx_t_2 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4327, __pyx_L1_error)
}
}
#endif
+4328: assert not ts._waiting_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (unlikely(!((!__pyx_t_2) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4328, __pyx_L1_error)
}
}
#endif
+4329: assert ts in parent._unrunnable
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_parent->_unrunnable == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4329, __pyx_L1_error)
}
__pyx_t_2 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_parent->_unrunnable, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4329, __pyx_L1_error)
if (unlikely(!(__pyx_t_2 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4329, __pyx_L1_error)
}
}
#endif
+4330: assert not ts._processing_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ts->_processing_on)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4330, __pyx_L1_error)
if (unlikely(!((!__pyx_t_2) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4330, __pyx_L1_error)
}
}
#endif
+4331: assert not ts._who_has
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
if (unlikely(!((!__pyx_t_2) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4331, __pyx_L1_error)
}
}
#endif
+4332: for dts in ts._dependencies:
__pyx_t_3 = 0; __pyx_t_6 = __Pyx_set_iterator(__pyx_v_ts->_dependencies, 1, (&__pyx_t_4), (&__pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_6; __pyx_t_6 = 0; while (1) { __pyx_t_7 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_4, &__pyx_t_3, &__pyx_t_6, __pyx_t_5); if (unlikely(__pyx_t_7 == 0)) break; if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 4332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4332, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6)); __pyx_t_6 = 0;
+4333: assert dts._who_has
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (__pyx_v_dts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_dts->_who_has) != 0);
if (unlikely(!__pyx_t_2)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4333, __pyx_L1_error)
}
}
#endif
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4334:
+4335: def validate_erred(self, key):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_60validate_erred(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_60validate_erred = {"validate_erred", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_60validate_erred, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_60validate_erred(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate_erred (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("validate_erred", 1, 2, 2, 1); __PYX_ERR(0, 4335, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "validate_erred") < 0)) __PYX_ERR(0, 4335, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_self = values[0];
__pyx_v_key = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("validate_erred", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4335, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.validate_erred", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_59validate_erred(__pyx_self, __pyx_v_self, __pyx_v_key);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_59validate_erred(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate_erred", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.validate_erred", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__223 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_parent, __pyx_n_s_ts); if (unlikely(!__pyx_tuple__223)) __PYX_ERR(0, 4335, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__223);
__Pyx_GIVEREF(__pyx_tuple__223);
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_60validate_erred, 0, __pyx_n_s_Scheduler_validate_erred, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__224)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4335, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_validate_erred, __pyx_t_12) < 0) __PYX_ERR(0, 4335, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_codeobj__224 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__223, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_validate_erred, 4335, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__224)) __PYX_ERR(0, 4335, __pyx_L1_error)
+4336: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4337: ts: TaskState = parent._tasks[key]
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4337, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_parent->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4337, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4337, __pyx_L1_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1);
__pyx_t_1 = 0;
+4338: assert ts._exception_blame
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_ts->_exception_blame); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4338, __pyx_L1_error)
if (unlikely(!__pyx_t_2)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4338, __pyx_L1_error)
}
}
#endif
+4339: assert not ts._who_has
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
if (unlikely(!((!__pyx_t_2) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4339, __pyx_L1_error)
}
}
#endif
4340:
+4341: def validate_key(self, key, ts: TaskState = None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_62validate_key(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_62validate_key = {"validate_key", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_62validate_key, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_62validate_key(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate_key (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,&__pyx_n_s_ts,0};
PyObject* values[3] = {0,0,0};
values[2] = (PyObject *)((struct __pyx_obj_11distributed_9scheduler_TaskState *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("validate_key", 0, 2, 3, 1); __PYX_ERR(0, 4341, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ts);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "validate_key") < 0)) __PYX_ERR(0, 4341, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_key = values[1];
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)values[2]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("validate_key", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4341, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.validate_key", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ts), __pyx_ptype_11distributed_9scheduler_TaskState, 1, "ts", 0))) __PYX_ERR(0, 4341, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_61validate_key(__pyx_self, __pyx_v_self, __pyx_v_key, __pyx_v_ts);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_61validate_key(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_v_func = NULL;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_pdb = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate_key", 0);
__Pyx_INCREF((PyObject *)__pyx_v_ts);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.validate_key", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_v_func);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_pdb);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__225 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_ts, __pyx_n_s_parent, __pyx_n_s_func, __pyx_n_s_e, __pyx_n_s_pdb); if (unlikely(!__pyx_tuple__225)) __PYX_ERR(0, 4341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__225);
__Pyx_GIVEREF(__pyx_tuple__225);
__pyx_codeobj__226 = (PyObject*)__Pyx_PyCode_New(3, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__225, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_validate_key, 4341, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__226)) __PYX_ERR(0, 4341, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_ts, __pyx_n_u_TaskState) < 0) __PYX_ERR(0, 4341, __pyx_L1_error)
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_62validate_key, 0, __pyx_n_s_Scheduler_validate_key, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__226)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__227);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_12);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_validate_key, __pyx_t_2) < 0) __PYX_ERR(0, 4341, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__227 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__227)) __PYX_ERR(0, 4341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__227);
__Pyx_GIVEREF(__pyx_tuple__227);
+4342: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4343: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L8_try_end;
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L1_error;
__pyx_L8_try_end:;
}
+4344: if ts is None:
__pyx_t_5 = (((PyObject *)__pyx_v_ts) == Py_None);
__pyx_t_6 = (__pyx_t_5 != 0);
if (__pyx_t_6) {
/* … */
}
+4345: ts = parent._tasks.get(key)
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 4345, __pyx_L3_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_parent->_tasks, __pyx_v_key, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4345, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4345, __pyx_L3_error)
__Pyx_DECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1));
__pyx_t_1 = 0;
+4346: if ts is None:
__pyx_t_6 = (((PyObject *)__pyx_v_ts) == Py_None);
__pyx_t_5 = (__pyx_t_6 != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L10;
}
+4347: logger.debug("Key lost: %s", key)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_logger); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4347, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_debug); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4347, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); __pyx_t_9 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_kp_u_Key_lost_s, __pyx_v_key}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4347, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_kp_u_Key_lost_s, __pyx_v_key}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4347, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4347, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_kp_u_Key_lost_s); __Pyx_GIVEREF(__pyx_kp_u_Key_lost_s); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_kp_u_Key_lost_s); __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_v_key); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4347, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4348: else:
+4349: ts.validate()
/*else*/ {
__pyx_t_1 = __pyx_f_11distributed_9scheduler_9TaskState_validate(__pyx_v_ts, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4349, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4350: try:
{
/*try:*/ {
/* … */
}
/* … */
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
goto __pyx_L3_error;
__pyx_L12_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
__pyx_L16_try_end:;
}
}
__pyx_L10:;
+4351: func = getattr(self, "validate_" + ts._state.replace("-", "_"))
if (unlikely(__pyx_v_ts->_state == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "replace");
__PYX_ERR(0, 4351, __pyx_L11_error)
}
__pyx_t_1 = PyUnicode_Replace(__pyx_v_ts->_state, __pyx_kp_u__60, __pyx_n_u__61, -1L); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4351, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_8 = __Pyx_PyUnicode_Concat(__pyx_n_u_validate_2, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4351, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_GetAttr(__pyx_v_self, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4351, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_v_func = __pyx_t_1;
__pyx_t_1 = 0;
+4352: except AttributeError:
__pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError); if (__pyx_t_9) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.validate_key", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_10) < 0) __PYX_ERR(0, 4352, __pyx_L13_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_10);
+4353: logger.error(
__Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_logger); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4353, __pyx_L13_except_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_error); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4353, __pyx_L13_except_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+4354: "self.validate_%s not found", ts._state.replace("-", "_")
if (unlikely(__pyx_v_ts->_state == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "replace");
__PYX_ERR(0, 4354, __pyx_L13_except_error)
}
__pyx_t_14 = PyUnicode_Replace(__pyx_v_ts->_state, __pyx_kp_u__60, __pyx_n_u__61, -1L); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4354, __pyx_L13_except_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_16 = NULL;
__pyx_t_9 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
__pyx_t_16 = PyMethod_GET_SELF(__pyx_t_15);
if (likely(__pyx_t_16)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
__Pyx_INCREF(__pyx_t_16);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_15, function);
__pyx_t_9 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_15)) {
PyObject *__pyx_temp[3] = {__pyx_t_16, __pyx_kp_u_self_validate__s_not_found, __pyx_t_14};
__pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4353, __pyx_L13_except_error)
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
PyObject *__pyx_temp[3] = {__pyx_t_16, __pyx_kp_u_self_validate__s_not_found, __pyx_t_14};
__pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4353, __pyx_L13_except_error)
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
} else
#endif
{
__pyx_t_17 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4353, __pyx_L13_except_error)
__Pyx_GOTREF(__pyx_t_17);
if (__pyx_t_16) {
__Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_16); __pyx_t_16 = NULL;
}
__Pyx_INCREF(__pyx_kp_u_self_validate__s_not_found);
__Pyx_GIVEREF(__pyx_kp_u_self_validate__s_not_found);
PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_9, __pyx_kp_u_self_validate__s_not_found);
__Pyx_GIVEREF(__pyx_t_14);
PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_9, __pyx_t_14);
__pyx_t_14 = 0;
__pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_17, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4353, __pyx_L13_except_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
goto __pyx_L12_exception_handled;
}
goto __pyx_L13_except_error;
__pyx_L13_except_error:;
4355: )
4356: else:
+4357: func(key)
/*else:*/ {
__Pyx_INCREF(__pyx_v_func);
__pyx_t_8 = __pyx_v_func; __pyx_t_10 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
__pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8);
if (likely(__pyx_t_10)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
__Pyx_INCREF(__pyx_t_10);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_8, function);
}
}
__pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_10, __pyx_v_key) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_key);
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4357, __pyx_L13_except_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
goto __pyx_L16_try_end;
__pyx_L11_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
+4358: except Exception as e:
__pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_9) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.validate_key", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_8, &__pyx_t_1) < 0) __PYX_ERR(0, 4358, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_8); __pyx_v_e = __pyx_t_8; /*try:*/ { /* … */ /*finally:*/ { __pyx_L24_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_12, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_12, &__pyx_t_11); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __pyx_t_9 = __pyx_lineno; __pyx_t_18 = __pyx_clineno; __pyx_t_19 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); } __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_12, __pyx_t_11); __pyx_t_13 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_18; __pyx_filename = __pyx_t_19; goto __pyx_L5_except_error; } } } goto __pyx_L5_except_error; __pyx_L5_except_error:;
+4359: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_logger); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4359, __pyx_L24_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_exception); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4359, __pyx_L24_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_17))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_17); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_17, function); } } __pyx_t_7 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_15, __pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_v_e); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4359, __pyx_L24_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4360: if LOG_PDB:
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_LOG_PDB); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4360, __pyx_L24_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4360, __pyx_L24_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_5) { /* … */ }
+4361: import pdb
__pyx_t_7 = __Pyx_Import(__pyx_n_s_pdb, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4361, __pyx_L24_error) __Pyx_GOTREF(__pyx_t_7); __pyx_v_pdb = __pyx_t_7; __pyx_t_7 = 0;
4362:
+4363: pdb.set_trace()
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_pdb, __pyx_n_s_set_trace); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4363, __pyx_L24_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_17); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_17, function); } } __pyx_t_7 = (__pyx_t_15) ? __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_t_15) : __Pyx_PyObject_CallNoArg(__pyx_t_17); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4363, __pyx_L24_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4364: raise
__Pyx_GIVEREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_1); __Pyx_ErrRestoreWithState(__pyx_t_10, __pyx_t_8, __pyx_t_1); __pyx_t_10 = 0; __pyx_t_8 = 0; __pyx_t_1 = 0; __PYX_ERR(0, 4364, __pyx_L24_error) }
4365:
+4366: def validate_state(self, allow_overlap=False):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_64validate_state(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_64validate_state = {"validate_state", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_64validate_state, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_64validate_state(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_allow_overlap = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate_state (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_allow_overlap,0};
PyObject* values[2] = {0,0};
values[1] = ((PyObject *)((PyObject *)Py_False));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_overlap);
if (value) { values[1] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "validate_state") < 0)) __PYX_ERR(0, 4366, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_allow_overlap = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("validate_state", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4366, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.validate_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_63validate_state(__pyx_self, __pyx_v_self, __pyx_v_allow_overlap);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_14validate_state_9genexpr47_2generator32(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_63validate_state(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_allow_overlap) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_19_validate_state *__pyx_cur_scope;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_v_w = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_v_k = NULL;
PyObject *__pyx_v_c = 0;
struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_cs = 0;
PyObject *__pyx_v_a = NULL;
PyObject *__pyx_v_b = NULL;
PyObject *__pyx_v_actual_total_occupancy = NULL;
CYTHON_UNUSED PyObject *__pyx_v_worker = NULL;
PyObject *__pyx_9genexpr46__pyx_v_w = NULL;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_9genexpr46__pyx_v_ws = NULL;
PyObject *__pyx_9genexpr47__pyx_v_w = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate_state", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_19_validate_state *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_19_validate_state(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_19_validate_state, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_19_validate_state *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 4366, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.validate_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF(__pyx_v_w);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF(__pyx_v_k);
__Pyx_XDECREF(__pyx_v_c);
__Pyx_XDECREF((PyObject *)__pyx_v_cs);
__Pyx_XDECREF(__pyx_v_a);
__Pyx_XDECREF(__pyx_v_b);
__Pyx_XDECREF(__pyx_v_actual_total_occupancy);
__Pyx_XDECREF(__pyx_v_worker);
__Pyx_XDECREF(__pyx_9genexpr46__pyx_v_w);
__Pyx_XDECREF((PyObject *)__pyx_9genexpr46__pyx_v_ws);
__Pyx_XDECREF(__pyx_9genexpr47__pyx_v_w);
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__228 = PyTuple_Pack(19, __pyx_n_s_self, __pyx_n_s_allow_overlap, __pyx_n_s_parent, __pyx_n_s_ws, __pyx_n_s_w, __pyx_n_s_ts, __pyx_n_s_k, __pyx_n_s_c, __pyx_n_s_cs, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_actual_total_occupancy, __pyx_n_s_worker, __pyx_n_s_w, __pyx_n_s_ws, __pyx_n_s_w, __pyx_n_s_ws, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__228)) __PYX_ERR(0, 4366, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__228);
__Pyx_GIVEREF(__pyx_tuple__228);
__pyx_codeobj__229 = (PyObject*)__Pyx_PyCode_New(2, 0, 19, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__228, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_validate_state, 4366, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__229)) __PYX_ERR(0, 4366, __pyx_L1_error)
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_64validate_state, 0, __pyx_n_s_Scheduler_validate_state, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__229)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4366, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__230);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_validate_state, __pyx_t_2) < 0) __PYX_ERR(0, 4366, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__230 = PyTuple_Pack(1, ((PyObject *)Py_False)); if (unlikely(!__pyx_tuple__230)) __PYX_ERR(0, 4366, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__230);
__Pyx_GIVEREF(__pyx_tuple__230);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_19_validate_state {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_9genexpr47__pyx_v_ws;
};
+4367: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4368: validate_state(parent._tasks, parent._workers, parent._clients)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_validate_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_parent->_tasks, __pyx_v_parent->_workers, __pyx_v_parent->_clients}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4368, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_parent->_tasks, __pyx_v_parent->_workers, __pyx_v_parent->_clients}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4368, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_5 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_parent->_tasks); __Pyx_GIVEREF(__pyx_v_parent->_tasks); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_parent->_tasks); __Pyx_INCREF(__pyx_v_parent->_workers); __Pyx_GIVEREF(__pyx_v_parent->_workers); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_parent->_workers); __Pyx_INCREF(__pyx_v_parent->_clients); __Pyx_GIVEREF(__pyx_v_parent->_clients); PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_4, __pyx_v_parent->_clients); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4369:
+4370: if not (set(parent._workers_dv) == set(self.stream_comms)):
__pyx_t_1 = PySet_New(__pyx_v_parent->_workers_dv); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_stream_comms); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = PySet_New(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4370, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4370, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = ((!__pyx_t_6) != 0); if (unlikely(__pyx_t_7)) { /* … */ }
+4371: raise ValueError("Workers not the same in all collections")
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__62, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 4371, __pyx_L1_error) /* … */ __pyx_tuple__62 = PyTuple_Pack(1, __pyx_kp_u_Workers_not_the_same_in_all_coll); if (unlikely(!__pyx_tuple__62)) __PYX_ERR(0, 4371, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__62); __Pyx_GIVEREF(__pyx_tuple__62);
4372:
4373: ws: WorkerState
+4374: for w, ws in parent._workers_dv.items():
__pyx_t_8 = 0;
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 4374, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_dict_iterator(__pyx_v_parent->_workers_dv, 1, __pyx_n_s_items, (&__pyx_t_9), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4374, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_2);
__pyx_t_2 = __pyx_t_5;
__pyx_t_5 = 0;
while (1) {
__pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_9, &__pyx_t_8, &__pyx_t_5, &__pyx_t_1, NULL, __pyx_t_4);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 4374, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 4374, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_w, __pyx_t_5);
__pyx_t_5 = 0;
__Pyx_XDECREF_SET(__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1));
__pyx_t_1 = 0;
+4375: assert isinstance(w, str), (type(w), w)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_7 = PyUnicode_Check(__pyx_v_w);
if (unlikely(!(__pyx_t_7 != 0))) {
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4375, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_w)));
__Pyx_GIVEREF(((PyObject *)Py_TYPE(__pyx_v_w)));
PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(__pyx_v_w)));
__Pyx_INCREF(__pyx_v_w);
__Pyx_GIVEREF(__pyx_v_w);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_w);
__pyx_t_5 = PyTuple_Pack(1, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4375, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyErr_SetObject(PyExc_AssertionError, __pyx_t_5);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__PYX_ERR(0, 4375, __pyx_L1_error)
}
}
#endif
+4376: assert isinstance(ws, WorkerState), (type(ws), ws)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_7 = __Pyx_TypeCheck(((PyObject *)__pyx_v_ws), __pyx_ptype_11distributed_9scheduler_WorkerState);
if (unlikely(!(__pyx_t_7 != 0))) {
__pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4376, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_ws))));
__Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_ws))));
PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_ws))));
__Pyx_INCREF(((PyObject *)__pyx_v_ws));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ws));
PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_ws));
__pyx_t_1 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4376, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
PyErr_SetObject(PyExc_AssertionError, __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 4376, __pyx_L1_error)
}
}
#endif
+4377: assert ws._address == w
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_ws->_address, __pyx_v_w, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 4377, __pyx_L1_error)
if (unlikely(!__pyx_t_7)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4377, __pyx_L1_error)
}
}
#endif
+4378: if not ws._processing:
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_ws->_processing); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 4378, __pyx_L1_error) __pyx_t_6 = ((!__pyx_t_7) != 0); if (__pyx_t_6) { /* … */ } } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4379: assert not ws._occupancy
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(!((!(__pyx_v_ws->_occupancy != 0)) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4379, __pyx_L1_error)
}
}
#endif
+4380: assert ws._address in parent._idle_dv
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_parent->_idle_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4380, __pyx_L1_error)
}
__pyx_t_6 = (__Pyx_PyDict_ContainsTF(__pyx_v_ws->_address, __pyx_v_parent->_idle_dv, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4380, __pyx_L1_error)
if (unlikely(!(__pyx_t_6 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4380, __pyx_L1_error)
}
}
#endif
4381:
4382: ts: TaskState
+4383: for k, ts in parent._tasks.items():
__pyx_t_9 = 0;
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 4383, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_dict_iterator(__pyx_v_parent->_tasks, 1, __pyx_n_s_items, (&__pyx_t_8), (&__pyx_t_4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4383, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__pyx_t_2 = __pyx_t_1;
__pyx_t_1 = 0;
while (1) {
__pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_8, &__pyx_t_9, &__pyx_t_1, &__pyx_t_5, NULL, __pyx_t_4);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 4383, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4383, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_1);
__pyx_t_1 = 0;
__Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_5));
__pyx_t_5 = 0;
+4384: assert isinstance(ts, TaskState), (type(ts), ts)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_6 = __Pyx_TypeCheck(((PyObject *)__pyx_v_ts), __pyx_ptype_11distributed_9scheduler_TaskState);
if (unlikely(!(__pyx_t_6 != 0))) {
__pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4384, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_ts))));
__Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_ts))));
PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_ts))));
__Pyx_INCREF(((PyObject *)__pyx_v_ts));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ts));
PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_ts));
__pyx_t_1 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4384, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
PyErr_SetObject(PyExc_AssertionError, __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 4384, __pyx_L1_error)
}
}
#endif
+4385: assert ts._key == k
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_key, __pyx_v_k, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4385, __pyx_L1_error)
if (unlikely(!__pyx_t_6)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4385, __pyx_L1_error)
}
}
#endif
+4386: self.validate_key(k, ts)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_validate_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_k, ((PyObject *)__pyx_v_ts)}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4386, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_k, ((PyObject *)__pyx_v_ts)}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4386, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_11 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_k); __Pyx_GIVEREF(__pyx_v_k); PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_v_k); __Pyx_INCREF(((PyObject *)__pyx_v_ts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_ts)); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, ((PyObject *)__pyx_v_ts)); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4387:
4388: c: str
4389: cs: ClientState
+4390: for c, cs in parent._clients.items():
__pyx_t_8 = 0;
if (unlikely(__pyx_v_parent->_clients == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 4390, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_dict_iterator(__pyx_v_parent->_clients, 1, __pyx_n_s_items, (&__pyx_t_9), (&__pyx_t_4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4390, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__pyx_t_2 = __pyx_t_1;
__pyx_t_1 = 0;
while (1) {
__pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_9, &__pyx_t_8, &__pyx_t_1, &__pyx_t_5, NULL, __pyx_t_4);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 4390, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 4390, __pyx_L1_error)
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 4390, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_c, ((PyObject*)__pyx_t_1));
__pyx_t_1 = 0;
__Pyx_XDECREF_SET(__pyx_v_cs, ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_5));
__pyx_t_5 = 0;
4391: # client=None is often used in tests...
+4392: assert c is None or type(c) == str, (type(c), c)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_7 = (__pyx_v_c == ((PyObject*)Py_None));
__pyx_t_12 = (__pyx_t_7 != 0);
if (!__pyx_t_12) {
} else {
__pyx_t_6 = __pyx_t_12;
goto __pyx_L11_bool_binop_done;
}
__pyx_t_5 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_c)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4392, __pyx_L1_error)
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 4392, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_6 = __pyx_t_12;
__pyx_L11_bool_binop_done:;
if (unlikely(!__pyx_t_6)) {
__pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4392, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_c)));
__Pyx_GIVEREF(((PyObject *)Py_TYPE(__pyx_v_c)));
PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(__pyx_v_c)));
__Pyx_INCREF(__pyx_v_c);
__Pyx_GIVEREF(__pyx_v_c);
PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_c);
__pyx_t_1 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4392, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
PyErr_SetObject(PyExc_AssertionError, __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 4392, __pyx_L1_error)
}
}
#endif
+4393: assert type(cs) == ClientState, (type(cs), cs)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_cs))), ((PyObject *)__pyx_ptype_11distributed_9scheduler_ClientState), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4393, __pyx_L1_error)
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4393, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_6)) {
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4393, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_cs))));
__Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_cs))));
PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_cs))));
__Pyx_INCREF(((PyObject *)__pyx_v_cs));
__Pyx_GIVEREF(((PyObject *)__pyx_v_cs));
PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_cs));
__pyx_t_5 = PyTuple_Pack(1, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4393, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyErr_SetObject(PyExc_AssertionError, __pyx_t_5);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__PYX_ERR(0, 4393, __pyx_L1_error)
}
}
#endif
+4394: assert cs._client_key == c
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_cs->_client_key, __pyx_v_c, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4394, __pyx_L1_error)
if (unlikely(!(__pyx_t_6 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4394, __pyx_L1_error)
}
}
#endif
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4395:
+4396: a = {w: ws._nbytes for w, ws in parent._workers_dv.items()}
{ /* enter inner scope */
__pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4396, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_9 = 0;
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 4396, __pyx_L15_error)
}
__pyx_t_1 = __Pyx_dict_iterator(__pyx_v_parent->_workers_dv, 1, __pyx_n_s_items, (&__pyx_t_8), (&__pyx_t_4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4396, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__pyx_t_5 = __pyx_t_1;
__pyx_t_1 = 0;
while (1) {
__pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_8, &__pyx_t_9, &__pyx_t_1, &__pyx_t_11, NULL, __pyx_t_4);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 4396, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_t_11);
if (!(likely(((__pyx_t_11) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_11, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 4396, __pyx_L15_error)
__Pyx_XDECREF_SET(__pyx_9genexpr46__pyx_v_w, __pyx_t_1);
__pyx_t_1 = 0;
__Pyx_XDECREF_SET(__pyx_9genexpr46__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_11));
__pyx_t_11 = 0;
__pyx_t_11 = PyInt_FromSsize_t(__pyx_9genexpr46__pyx_v_ws->_nbytes); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4396, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_11);
if (unlikely(PyDict_SetItem(__pyx_t_2, (PyObject*)__pyx_9genexpr46__pyx_v_w, (PyObject*)__pyx_t_11))) __PYX_ERR(0, 4396, __pyx_L15_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_9genexpr46__pyx_v_w); __pyx_9genexpr46__pyx_v_w = 0;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr46__pyx_v_ws); __pyx_9genexpr46__pyx_v_ws = 0;
goto __pyx_L18_exit_scope;
__pyx_L15_error:;
__Pyx_XDECREF(__pyx_9genexpr46__pyx_v_w); __pyx_9genexpr46__pyx_v_w = 0;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr46__pyx_v_ws); __pyx_9genexpr46__pyx_v_ws = 0;
goto __pyx_L1_error;
__pyx_L18_exit_scope:;
} /* exit inner scope */
__pyx_v_a = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
+4397: b = {
{ /* enter inner scope */
__pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4397, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_2);
+4398: w: sum(ts.get_nbytes() for ts in ws._has_what)
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_14validate_state_9genexpr47_genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_20_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_20_genexpr *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_20_genexpr(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_20_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_20_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 4398, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_19_validate_state *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_14validate_state_9genexpr47_2generator32, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_Scheduler_validate_state_locals, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 4398, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.validate_state.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_14validate_state_9genexpr47_2generator32(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4398, __pyx_L1_error)
__pyx_t_2 = 0;
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_9genexpr47__pyx_v_ws)) { __Pyx_RaiseClosureNameError("ws"); __PYX_ERR(0, 4398, __pyx_L1_error) }
__pyx_t_5 = __Pyx_set_iterator(__pyx_cur_scope->__pyx_outer_scope->__pyx_9genexpr47__pyx_v_ws->_has_what, 1, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4398, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_5;
__pyx_t_5 = 0;
while (1) {
__pyx_t_6 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, __pyx_t_4);
if (unlikely(__pyx_t_6 == 0)) break;
if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 4398, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_ts);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_ts, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_ts, __pyx_n_s_get_nbytes); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4398, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_8 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
__pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
if (likely(__pyx_t_8)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
__Pyx_INCREF(__pyx_t_8);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_7, function);
}
}
__pyx_t_5 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4398, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_r = __pyx_t_5;
__pyx_t_5 = 0;
__Pyx_XGIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
__pyx_cur_scope->__pyx_t_3 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, yielding value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L6_resume_from_yield:;
__pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
__pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
__pyx_t_4 = __pyx_cur_scope->__pyx_t_3;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4398, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_1 = __pyx_pf_11distributed_9scheduler_9Scheduler_14validate_state_9genexpr47_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4398, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4398, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(PyDict_SetItem(__pyx_t_2, (PyObject*)__pyx_9genexpr47__pyx_v_w, (PyObject*)__pyx_t_11))) __PYX_ERR(0, 4398, __pyx_L21_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_9genexpr47__pyx_v_w); __pyx_9genexpr47__pyx_v_w = 0;
goto __pyx_L24_exit_scope;
__pyx_L21_error:;
__Pyx_XDECREF(__pyx_9genexpr47__pyx_v_w); __pyx_9genexpr47__pyx_v_w = 0;
goto __pyx_L1_error;
__pyx_L24_exit_scope:;
} /* exit inner scope */
__pyx_v_b = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_20_genexpr {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_19_validate_state *__pyx_outer_scope;
PyObject *__pyx_v_ts;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
Py_ssize_t __pyx_t_2;
int __pyx_t_3;
};
+4399: for w, ws in parent._workers_dv.items()
__pyx_t_8 = 0;
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 4399, __pyx_L21_error)
}
__pyx_t_11 = __Pyx_dict_iterator(__pyx_v_parent->_workers_dv, 1, __pyx_n_s_items, (&__pyx_t_9), (&__pyx_t_4)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4399, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_5);
__pyx_t_5 = __pyx_t_11;
__pyx_t_11 = 0;
while (1) {
__pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_9, &__pyx_t_8, &__pyx_t_11, &__pyx_t_1, NULL, __pyx_t_4);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 4399, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 4399, __pyx_L21_error)
__Pyx_XDECREF_SET(__pyx_9genexpr47__pyx_v_w, __pyx_t_11);
__pyx_t_11 = 0;
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_9genexpr47__pyx_v_ws));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr47__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1));
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
4400: }
+4401: assert a == b, (a, b)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = PyObject_RichCompare(__pyx_v_a, __pyx_v_b, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4401, __pyx_L1_error)
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4401, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_6)) {
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4401, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__pyx_v_a);
__Pyx_GIVEREF(__pyx_v_a);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_a);
__Pyx_INCREF(__pyx_v_b);
__Pyx_GIVEREF(__pyx_v_b);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_b);
__pyx_t_5 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4401, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
PyErr_SetObject(PyExc_AssertionError, __pyx_t_5);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__PYX_ERR(0, 4401, __pyx_L1_error)
}
}
#endif
4402:
+4403: actual_total_occupancy = 0
__Pyx_INCREF(__pyx_int_0);
__pyx_v_actual_total_occupancy = __pyx_int_0;
+4404: for worker, ws in parent._workers_dv.items():
__pyx_t_9 = 0;
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 4404, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_dict_iterator(__pyx_v_parent->_workers_dv, 1, __pyx_n_s_items, (&__pyx_t_8), (&__pyx_t_4)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4404, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5);
__pyx_t_5 = __pyx_t_2;
__pyx_t_2 = 0;
while (1) {
__pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_8, &__pyx_t_9, &__pyx_t_2, &__pyx_t_11, NULL, __pyx_t_4);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 4404, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_t_11);
if (!(likely(((__pyx_t_11) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_11, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 4404, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_worker, __pyx_t_2);
__pyx_t_2 = 0;
__Pyx_XDECREF_SET(__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_11));
__pyx_t_11 = 0;
+4405: assert abs(sum(ws._processing.values()) - ws._occupancy) < 1e-8
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_ws->_processing == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
__PYX_ERR(0, 4405, __pyx_L1_error)
}
__pyx_t_11 = __Pyx_PyDict_Values(__pyx_v_ws->_processing); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4405, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4405, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = PyFloat_FromDouble(__pyx_v_ws->_occupancy); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4405, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_1 = PyNumber_Subtract(__pyx_t_2, __pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4405, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = __Pyx_PyNumber_Absolute(__pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4405, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyObject_RichCompare(__pyx_t_11, __pyx_float_1eneg_8, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4405, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4405, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_6)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4405, __pyx_L1_error)
}
}
#endif
+4406: actual_total_occupancy += ws._occupancy
__pyx_t_1 = PyFloat_FromDouble(__pyx_v_ws->_occupancy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_11 = PyNumber_InPlaceAdd(__pyx_v_actual_total_occupancy, __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_actual_total_occupancy, __pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4407:
+4408: assert abs(actual_total_occupancy - parent._total_occupancy) < 1e-8, (
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = PyFloat_FromDouble(__pyx_v_parent->_total_occupancy); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4408, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_11 = PyNumber_Subtract(__pyx_v_actual_total_occupancy, __pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4408, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyNumber_Absolute(__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4408, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = PyObject_RichCompare(__pyx_t_5, __pyx_float_1eneg_8, Py_LT); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4408, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4408, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(!__pyx_t_6)) {
+4409: actual_total_occupancy,
__pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_actual_total_occupancy); __Pyx_GIVEREF(__pyx_v_actual_total_occupancy); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_actual_total_occupancy); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyErr_SetObject(PyExc_AssertionError, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 4408, __pyx_L1_error) } } #endif
+4410: parent._total_occupancy,
__pyx_t_11 = PyFloat_FromDouble(__pyx_v_parent->_total_occupancy); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11);
4411: )
4412:
4413: ###################
4414: # Manage Messages #
4415: ###################
4416:
+4417: def report(self, msg: dict, ts: TaskState = None, client: str = None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_66report(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_65report[] = "\n Publish updates to all listening Queues and Comms\n\n If the message contains a key then we only send the message to those\n comms that care about the key.\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_66report = {"report", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_66report, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_65report};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_66report(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_msg = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_v_client = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("report (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_msg,&__pyx_n_s_ts,&__pyx_n_s_client,0};
PyObject* values[4] = {0,0,0,0};
values[2] = (PyObject *)((struct __pyx_obj_11distributed_9scheduler_TaskState *)((PyObject *)Py_None));
values[3] = ((PyObject*)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_msg)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("report", 0, 2, 4, 1); __PYX_ERR(0, 4417, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ts);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_client);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "report") < 0)) __PYX_ERR(0, 4417, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_msg = ((PyObject*)values[1]);
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)values[2]);
__pyx_v_client = ((PyObject*)values[3]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("report", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4417, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.report", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_msg), (&PyDict_Type), 1, "msg", 1))) __PYX_ERR(0, 4417, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ts), __pyx_ptype_11distributed_9scheduler_TaskState, 1, "ts", 0))) __PYX_ERR(0, 4417, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_client), (&PyUnicode_Type), 1, "client", 1))) __PYX_ERR(0, 4417, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_65report(__pyx_self, __pyx_v_self, __pyx_v_msg, __pyx_v_ts, __pyx_v_client);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_65report(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_msg, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts, PyObject *__pyx_v_client) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_v_msg_key = NULL;
PyObject *__pyx_v_tasks = 0;
PyObject *__pyx_v_client_comms = 0;
PyObject *__pyx_v_client_keys = 0;
PyObject *__pyx_v_k = 0;
PyObject *__pyx_v_c = NULL;
struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_9genexpr49__pyx_v_cs = NULL;
struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_9genexpr50__pyx_v_cs = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("report", 0);
__Pyx_INCREF((PyObject *)__pyx_v_ts);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_XDECREF(__pyx_t_18);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.report", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_v_msg_key);
__Pyx_XDECREF(__pyx_v_tasks);
__Pyx_XDECREF(__pyx_v_client_comms);
__Pyx_XDECREF(__pyx_v_client_keys);
__Pyx_XDECREF(__pyx_v_k);
__Pyx_XDECREF(__pyx_v_c);
__Pyx_XDECREF((PyObject *)__pyx_9genexpr49__pyx_v_cs);
__Pyx_XDECREF((PyObject *)__pyx_9genexpr50__pyx_v_cs);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_69generator6(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__231 = PyTuple_Pack(14, __pyx_n_s_self, __pyx_n_s_msg, __pyx_n_s_ts, __pyx_n_s_client, __pyx_n_s_parent, __pyx_n_s_msg_key, __pyx_n_s_tasks, __pyx_n_s_cs, __pyx_n_s_client_comms, __pyx_n_s_client_keys, __pyx_n_s_k, __pyx_n_s_c, __pyx_n_s_cs, __pyx_n_s_cs); if (unlikely(!__pyx_tuple__231)) __PYX_ERR(0, 4417, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__231);
__Pyx_GIVEREF(__pyx_tuple__231);
__pyx_codeobj__232 = (PyObject*)__Pyx_PyCode_New(4, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__231, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_report, 4417, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__232)) __PYX_ERR(0, 4417, __pyx_L1_error)
/* … */
__pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4417, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_msg, __pyx_n_u_dict_2) < 0) __PYX_ERR(0, 4417, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ts, __pyx_n_u_TaskState) < 0) __PYX_ERR(0, 4417, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_client, __pyx_n_u_unicode) < 0) __PYX_ERR(0, 4417, __pyx_L1_error)
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_66report, 0, __pyx_n_s_Scheduler_report, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__232)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4417, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__233);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_12, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_report, __pyx_t_12) < 0) __PYX_ERR(0, 4417, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__233 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__233)) __PYX_ERR(0, 4417, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__233);
__Pyx_GIVEREF(__pyx_tuple__233);
4418: """
4419: Publish updates to all listening Queues and Comms
4420:
4421: If the message contains a key then we only send the message to those
4422: comms that care about the key.
4423: """
+4424: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4425: if ts is None:
__pyx_t_2 = (((PyObject *)__pyx_v_ts) == Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
}
+4426: msg_key = msg.get("key")
if (unlikely(__pyx_v_msg == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 4426, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_msg, __pyx_n_u_key, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4426, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_msg_key = __pyx_t_1;
__pyx_t_1 = 0;
+4427: if msg_key is not None:
__pyx_t_3 = (__pyx_v_msg_key != Py_None);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
/* … */
}
+4428: tasks: dict = parent._tasks
__pyx_t_1 = __pyx_v_parent->_tasks;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_tasks = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+4429: ts = tasks.get(msg_key)
if (unlikely(__pyx_v_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 4429, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_tasks, __pyx_v_msg_key, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4429, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4429, __pyx_L1_error)
__Pyx_DECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1));
__pyx_t_1 = 0;
4430:
4431: cs: ClientState
+4432: client_comms: dict = self.client_comms
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_client_comms); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4432, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 4432, __pyx_L1_error) __pyx_v_client_comms = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
4433: client_keys: list
+4434: if ts is None:
__pyx_t_2 = (((PyObject *)__pyx_v_ts) == Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
goto __pyx_L5;
}
4435: # Notify all clients
+4436: client_keys = list(client_comms)
__pyx_t_1 = PySequence_List(__pyx_v_client_comms); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_client_keys = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+4437: elif client is None:
__pyx_t_3 = (__pyx_v_client == ((PyObject*)Py_None));
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L5;
}
4438: # Notify clients interested in key
+4439: client_keys = [cs._client_key for cs in ts._who_wants]
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4439, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = 0;
__pyx_t_8 = __Pyx_set_iterator(__pyx_v_ts->_who_wants, 1, (&__pyx_t_6), (&__pyx_t_7)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4439, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_8;
__pyx_t_8 = 0;
while (1) {
__pyx_t_9 = __Pyx_set_iter_next(__pyx_t_4, __pyx_t_6, &__pyx_t_5, &__pyx_t_8, __pyx_t_7);
if (unlikely(__pyx_t_9 == 0)) break;
if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 4439, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_8);
if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 4439, __pyx_L8_error)
__Pyx_XDECREF_SET(__pyx_9genexpr49__pyx_v_cs, ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_8));
__pyx_t_8 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_9genexpr49__pyx_v_cs->_client_key))) __PYX_ERR(0, 4439, __pyx_L8_error)
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr49__pyx_v_cs); __pyx_9genexpr49__pyx_v_cs = 0;
goto __pyx_L11_exit_scope;
__pyx_L8_error:;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr49__pyx_v_cs); __pyx_9genexpr49__pyx_v_cs = 0;
goto __pyx_L1_error;
__pyx_L11_exit_scope:;
} /* exit inner scope */
__pyx_v_client_keys = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
4440: else:
4441: # Notify clients interested in key (including `client`)
+4442: client_keys = [
/*else*/ {
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4442, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_1);
+4443: cs._client_key for cs in ts._who_wants if cs._client_key != client
__pyx_t_6 = 0;
__pyx_t_8 = __Pyx_set_iterator(__pyx_v_ts->_who_wants, 1, (&__pyx_t_5), (&__pyx_t_7)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4443, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_8;
__pyx_t_8 = 0;
while (1) {
__pyx_t_9 = __Pyx_set_iter_next(__pyx_t_4, __pyx_t_5, &__pyx_t_6, &__pyx_t_8, __pyx_t_7);
if (unlikely(__pyx_t_9 == 0)) break;
if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 4443, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_8);
if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 4443, __pyx_L14_error)
__Pyx_XDECREF_SET(__pyx_9genexpr50__pyx_v_cs, ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_8));
__pyx_t_8 = 0;
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_9genexpr50__pyx_v_cs->_client_key, __pyx_v_client, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4443, __pyx_L14_error)
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_9genexpr50__pyx_v_cs->_client_key))) __PYX_ERR(0, 4442, __pyx_L14_error)
}
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr50__pyx_v_cs); __pyx_9genexpr50__pyx_v_cs = 0;
goto __pyx_L18_exit_scope;
__pyx_L14_error:;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr50__pyx_v_cs); __pyx_9genexpr50__pyx_v_cs = 0;
goto __pyx_L1_error;
__pyx_L18_exit_scope:;
} /* exit inner scope */
__pyx_v_client_keys = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
4444: ]
+4445: client_keys.append(client)
__pyx_t_10 = __Pyx_PyList_Append(__pyx_v_client_keys, __pyx_v_client); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 4445, __pyx_L1_error) } __pyx_L5:;
4446:
4447: k: str
+4448: for k in client_keys:
__pyx_t_1 = __pyx_v_client_keys; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; for (;;) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4448, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif if (!(likely(PyUnicode_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 4448, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_k, ((PyObject*)__pyx_t_4)); __pyx_t_4 = 0; /* … */ __pyx_L19_continue:; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4449: c = client_comms.get(k)
if (unlikely(__pyx_v_client_comms == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 4449, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItemDefault(__pyx_v_client_comms, __pyx_v_k, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4449, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF_SET(__pyx_v_c, __pyx_t_4);
__pyx_t_4 = 0;
+4450: if c is None:
__pyx_t_3 = (__pyx_v_c == Py_None);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
/* … */
}
+4451: continue
goto __pyx_L19_continue;
+4452: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
goto __pyx_L29_try_end;
__pyx_L22_error:;
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
goto __pyx_L1_error;
__pyx_L23_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
__pyx_L29_try_end:;
}
+4453: c.send(msg)
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_c, __pyx_n_s_send); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4453, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_4 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_14, __pyx_v_msg) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_msg); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4453, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4454: # logger.debug("Scheduler sends message to client %s", msg)
+4455: except CommClosedError:
__Pyx_ErrFetch(&__pyx_t_4, &__pyx_t_8, &__pyx_t_14); __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_CommClosedError); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4455, __pyx_L24_except_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_7 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_4, __pyx_t_15); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_ErrRestore(__pyx_t_4, __pyx_t_8, __pyx_t_14); __pyx_t_4 = 0; __pyx_t_8 = 0; __pyx_t_14 = 0; if (__pyx_t_7) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.report", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_14, &__pyx_t_8, &__pyx_t_4) < 0) __PYX_ERR(0, 4455, __pyx_L24_except_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_4);
+4456: if self.status == Status.running:
__pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_status); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4456, __pyx_L24_except_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_Status); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4456, __pyx_L24_except_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_running); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4456, __pyx_L24_except_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = PyObject_RichCompare(__pyx_t_15, __pyx_t_17, Py_EQ); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4456, __pyx_L24_except_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4456, __pyx_L24_except_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (__pyx_t_2) { /* … */ } __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L23_exception_handled; } goto __pyx_L24_except_error; __pyx_L24_except_error:;
+4457: logger.critical("Tried writing to closed comm: %s", msg)
__Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_n_s_logger); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4457, __pyx_L24_except_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_critical); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4457, __pyx_L24_except_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_t_17 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_17)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_17); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_15)) { PyObject *__pyx_temp[3] = {__pyx_t_17, __pyx_kp_u_Tried_writing_to_closed_comm_s, __pyx_v_msg}; __pyx_t_16 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4457, __pyx_L24_except_error) __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_GOTREF(__pyx_t_16); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) { PyObject *__pyx_temp[3] = {__pyx_t_17, __pyx_kp_u_Tried_writing_to_closed_comm_s, __pyx_v_msg}; __pyx_t_16 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4457, __pyx_L24_except_error) __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_GOTREF(__pyx_t_16); } else #endif { __pyx_t_18 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4457, __pyx_L24_except_error) __Pyx_GOTREF(__pyx_t_18); if (__pyx_t_17) { __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_17); __pyx_t_17 = NULL; } __Pyx_INCREF(__pyx_kp_u_Tried_writing_to_closed_comm_s); __Pyx_GIVEREF(__pyx_kp_u_Tried_writing_to_closed_comm_s); PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_7, __pyx_kp_u_Tried_writing_to_closed_comm_s); __Pyx_INCREF(__pyx_v_msg); __Pyx_GIVEREF(__pyx_v_msg); PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_7, __pyx_v_msg); __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_18, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4457, __pyx_L24_except_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; } __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
4458:
+4459: async def add_client(self, comm, client=None, versions=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_68add_client(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_67add_client[] = "Add client to network\n\n We listen to all future messages from this Comm.\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_68add_client = {"add_client", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_68add_client, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_67add_client};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_68add_client(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_client = 0;
PyObject *__pyx_v_versions = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("add_client (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_client,&__pyx_n_s_versions,0};
PyObject* values[4] = {0,0,0,0};
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("add_client", 0, 2, 4, 1); __PYX_ERR(0, 4459, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_client);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_versions);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "add_client") < 0)) __PYX_ERR(0, 4459, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_client = values[2];
__pyx_v_versions = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("add_client", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4459, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.add_client", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_67add_client(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_client, __pyx_v_versions);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_67add_client(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_comm, PyObject *__pyx_v_client, PyObject *__pyx_v_versions) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_21_add_client *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("add_client", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_21_add_client *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_21_add_client(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_21_add_client, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_21_add_client *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 4459, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_comm = __pyx_v_comm;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm);
__pyx_cur_scope->__pyx_v_client = __pyx_v_client;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_client);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_client);
__pyx_cur_scope->__pyx_v_versions = __pyx_v_versions;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_versions);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_versions);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_69generator6, __pyx_codeobj__63, (PyObject *) __pyx_cur_scope, __pyx_n_s_add_client, __pyx_n_s_Scheduler_add_client, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 4459, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.add_client", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_69generator6(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("add_client", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4459, __pyx_L1_error)
/* … */
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("add_client", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__234 = PyTuple_Pack(13, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_client, __pyx_n_s_versions, __pyx_n_s_parent, __pyx_n_s_plugin, __pyx_n_s_e, __pyx_n_s_bcomm, __pyx_n_s_msg, __pyx_n_s_ws, __pyx_n_s_version_warning, __pyx_n_s_w, __pyx_n_s_ws); if (unlikely(!__pyx_tuple__234)) __PYX_ERR(0, 4459, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__234);
__Pyx_GIVEREF(__pyx_tuple__234);
__pyx_codeobj__63 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__234, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_add_client, 4459, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__63)) __PYX_ERR(0, 4459, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_68add_client, 0, __pyx_n_s_Scheduler_add_client, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__63)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4459, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__235);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_add_client, __pyx_t_12) < 0) __PYX_ERR(0, 4459, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__235 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__235)) __PYX_ERR(0, 4459, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__235);
__Pyx_GIVEREF(__pyx_tuple__235);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_21_add_client {
PyObject_HEAD
PyObject *__pyx_v_bcomm;
PyObject *__pyx_v_client;
PyObject *__pyx_v_comm;
PyObject *__pyx_v_e;
PyObject *__pyx_v_msg;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent;
PyObject *__pyx_v_plugin;
PyObject *__pyx_v_self;
PyObject *__pyx_v_version_warning;
PyObject *__pyx_v_versions;
PyObject *__pyx_9genexpr51__pyx_v_w;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_9genexpr51__pyx_v_ws;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws;
PyObject *__pyx_t_0;
PyObject *__pyx_t_1;
PyObject *__pyx_t_2;
int __pyx_t_3;
int __pyx_t_4;
PyObject *__pyx_t_5;
PyObject *__pyx_t_6;
PyObject *__pyx_t_7;
PyObject *__pyx_t_8;
PyObject *__pyx_t_9;
PyObject *__pyx_t_10;
char const *__pyx_t_11;
};
4460: """Add client to network
4461:
4462: We listen to all future messages from this Comm.
4463: """
+4464: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_cur_scope->__pyx_v_self; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1); __pyx_t_1 = 0;
+4465: assert client is not None
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (__pyx_cur_scope->__pyx_v_client != Py_None);
if (unlikely(!(__pyx_t_2 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4465, __pyx_L1_error)
}
}
#endif
+4466: comm.name = "Scheduler->Client"
if (__Pyx_PyObject_SetAttrStr(__pyx_cur_scope->__pyx_v_comm, __pyx_n_s_name, __pyx_kp_u_Scheduler_Client) < 0) __PYX_ERR(0, 4466, __pyx_L1_error)
+4467: logger.info("Receive client connection: %s", client)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_logger); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_u_Receive_client_connection_s, __pyx_cur_scope->__pyx_v_client}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4467, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_u_Receive_client_connection_s, __pyx_cur_scope->__pyx_v_client}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4467, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_kp_u_Receive_client_connection_s); __Pyx_GIVEREF(__pyx_kp_u_Receive_client_connection_s); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_kp_u_Receive_client_connection_s); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_client); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_client); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_cur_scope->__pyx_v_client); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4468: self.log_event(["all", client], {"action": "add-client", "client": client})
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_log_event_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_n_u_all); __Pyx_GIVEREF(__pyx_n_u_all); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_n_u_all); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_client); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_client); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_cur_scope->__pyx_v_client); __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_action, __pyx_kp_u_add_client_2) < 0) __PYX_ERR(0, 4468, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_client, __pyx_cur_scope->__pyx_v_client) < 0) __PYX_ERR(0, 4468, __pyx_L1_error) __pyx_t_7 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_t_3}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4468, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_t_3}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4468, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_8 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_5, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_5, __pyx_t_3); __pyx_t_6 = 0; __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4469: parent._clients[client] = ClientState(client, versions=versions)
__pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_client); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_client); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_v_client); __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_versions, __pyx_cur_scope->__pyx_v_versions) < 0) __PYX_ERR(0, 4469, __pyx_L1_error) __pyx_t_8 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_11distributed_9scheduler_ClientState), __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__pyx_cur_scope->__pyx_v_parent->_clients == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4469, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_parent->_clients, __pyx_cur_scope->__pyx_v_client, __pyx_t_8) < 0)) __PYX_ERR(0, 4469, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
4470:
+4471: for plugin in self.plugins[:]:
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_plugins); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_t_8, 0, 0, NULL, NULL, &__pyx_slice__57, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { __pyx_t_8 = __pyx_t_4; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0; __pyx_t_10 = NULL; } else { __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4471, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; for (;;) { if (likely(!__pyx_t_10)) { if (likely(PyList_CheckExact(__pyx_t_8))) { if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4471, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4471, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } } else { __pyx_t_4 = __pyx_t_10(__pyx_t_8); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 4471, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_4); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_plugin); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_plugin, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+4472: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
goto __pyx_L13_try_end;
__pyx_L6_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
goto __pyx_L1_error;
__pyx_L7_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
__pyx_L13_try_end:;
}
+4473: plugin.add_client(scheduler=self, client=client)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_plugin, __pyx_n_s_add_client); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4473, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4473, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_scheduler, __pyx_cur_scope->__pyx_v_self) < 0) __PYX_ERR(0, 4473, __pyx_L6_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_client, __pyx_cur_scope->__pyx_v_client) < 0) __PYX_ERR(0, 4473, __pyx_L6_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4473, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4474: except Exception as e:
__pyx_t_5 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_5) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.add_client", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_1, &__pyx_t_4) < 0) __PYX_ERR(0, 4474, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_e = __pyx_t_1; /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = NULL; goto __pyx_L20; } __pyx_L19_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19) < 0)) __Pyx_ErrFetch(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __pyx_t_5 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_16 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); } __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_ErrRestore(__pyx_t_17, __pyx_t_18, __pyx_t_19); __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_16; goto __pyx_L8_except_error; } __pyx_L20:; } __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L7_exception_handled; } goto __pyx_L8_except_error; __pyx_L8_except_error:;
+4475: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_logger); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4475, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_exception); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4475, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } __pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_7, __pyx_cur_scope->__pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_cur_scope->__pyx_v_e); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4475, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; }
4476:
+4477: try:
/*try:*/ {
+4478: bcomm = BatchedSend(interval="2ms", loop=self.loop)
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_BatchedSend); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4478, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4478, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_interval, __pyx_kp_u_2ms) < 0) __PYX_ERR(0, 4478, __pyx_L26_error) __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_loop); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4478, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_loop, __pyx_t_1) < 0) __PYX_ERR(0, 4478, __pyx_L26_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4478, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_bcomm = __pyx_t_1; __pyx_t_1 = 0;
+4479: bcomm.start(comm)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_bcomm, __pyx_n_s_start); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4479, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_8, __pyx_cur_scope->__pyx_v_comm) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_cur_scope->__pyx_v_comm); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4479, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4480: self.client_comms[client] = bcomm
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_client_comms); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4480, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_cur_scope->__pyx_v_client, __pyx_cur_scope->__pyx_v_bcomm) < 0)) __PYX_ERR(0, 4480, __pyx_L26_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4481: msg = {"op": "stream-start"}
__pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4481, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_op, __pyx_kp_u_stream_start) < 0) __PYX_ERR(0, 4481, __pyx_L26_error) __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_msg = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
4482: ws: WorkerState
+4483: version_warning = version_module.error_message(
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_version_module); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4483, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_error_message); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4483, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+4484: version_module.get_versions(),
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_version_module); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4484, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_get_versions); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4484, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_6); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4484, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; { /* enter inner scope */
+4485: {w: ws._versions for w, ws in parent._workers_dv.items()},
__pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4485, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = 0; if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers_dv == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); __PYX_ERR(0, 4485, __pyx_L26_error) } __pyx_t_14 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_parent->_workers_dv, 1, __pyx_n_s_items, (&__pyx_t_23), (&__pyx_t_15)); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4485, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = __pyx_t_14; __pyx_t_14 = 0; while (1) { __pyx_t_5 = __Pyx_dict_iter_next(__pyx_t_3, __pyx_t_23, &__pyx_t_9, &__pyx_t_14, &__pyx_t_7, NULL, __pyx_t_15); if (unlikely(__pyx_t_5 == 0)) break; if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 4485, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GOTREF(__pyx_t_7); if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 4485, __pyx_L26_error) __Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr51__pyx_v_w); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr51__pyx_v_w, __pyx_t_14); __Pyx_GIVEREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_9genexpr51__pyx_v_ws)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr51__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_7)); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(PyDict_SetItem(__pyx_t_6, (PyObject*)__pyx_cur_scope->__pyx_9genexpr51__pyx_v_w, (PyObject*)__pyx_cur_scope->__pyx_9genexpr51__pyx_v_ws->_versions))) __PYX_ERR(0, 4485, __pyx_L26_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } /* exit inner scope */
+4486: versions,
__pyx_t_3 = NULL;
__pyx_t_15 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_8);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_8, function);
__pyx_t_15 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_8)) {
PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_t_4, __pyx_t_6, __pyx_cur_scope->__pyx_v_versions};
__pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_15, 3+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4483, __pyx_L26_error)
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_t_4, __pyx_t_6, __pyx_cur_scope->__pyx_v_versions};
__pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_15, 3+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4483, __pyx_L26_error)
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
} else
#endif
{
__pyx_t_7 = PyTuple_New(3+__pyx_t_15); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4483, __pyx_L26_error)
__Pyx_GOTREF(__pyx_t_7);
if (__pyx_t_3) {
__Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); __pyx_t_3 = NULL;
}
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_15, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_15, __pyx_t_6);
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_versions);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_versions);
PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_15, __pyx_cur_scope->__pyx_v_versions);
__pyx_t_4 = 0;
__pyx_t_6 = 0;
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4483, __pyx_L26_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_v_version_warning = __pyx_t_1;
__pyx_t_1 = 0;
4487: )
+4488: msg.update(version_warning)
__pyx_t_1 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyDict_Type_update, __pyx_cur_scope->__pyx_v_msg, __pyx_cur_scope->__pyx_v_version_warning); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4488, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4489: bcomm.send(msg)
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_bcomm, __pyx_n_s_send); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4489, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_7, __pyx_cur_scope->__pyx_v_msg) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_cur_scope->__pyx_v_msg); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4489, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4490:
+4491: try:
/*try:*/ {
+4492: await self.handle_stream(comm=comm, extra={"client": client})
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_handle_stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4492, __pyx_L31_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4492, __pyx_L31_error) __Pyx_GOTREF(__pyx_t_8); if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_comm, __pyx_cur_scope->__pyx_v_comm) < 0) __PYX_ERR(0, 4492, __pyx_L31_error) __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4492, __pyx_L31_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_u_client, __pyx_cur_scope->__pyx_v_client) < 0) __PYX_ERR(0, 4492, __pyx_L31_error) if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_extra, __pyx_t_7) < 0) __PYX_ERR(0, 4492, __pyx_L31_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4492, __pyx_L31_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_7); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L33_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4492, __pyx_L31_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 4492, __pyx_L31_error) } } }
4493: finally:
+4494: self.remove_client(client=client)
/*finally:*/ {
/*normal exit:*/{
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_remove_client); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4494, __pyx_L26_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4494, __pyx_L26_error)
__Pyx_GOTREF(__pyx_t_8);
if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_client, __pyx_cur_scope->__pyx_v_client) < 0) __PYX_ERR(0, 4494, __pyx_L26_error)
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_empty_tuple, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4494, __pyx_L26_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* … */
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_remove_client); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4494, __pyx_L35_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4494, __pyx_L35_error)
__Pyx_GOTREF(__pyx_t_7);
if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_client, __pyx_cur_scope->__pyx_v_client) < 0) __PYX_ERR(0, 4494, __pyx_L35_error)
__pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4494, __pyx_L35_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+4495: logger.debug("Finished handling client %s", client)
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_logger); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4495, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_debug); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4495, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_kp_u_Finished_handling_client_s, __pyx_cur_scope->__pyx_v_client}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4495, __pyx_L26_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_kp_u_Finished_handling_client_s, __pyx_cur_scope->__pyx_v_client}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4495, __pyx_L26_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_6 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4495, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_INCREF(__pyx_kp_u_Finished_handling_client_s); __Pyx_GIVEREF(__pyx_kp_u_Finished_handling_client_s); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_15, __pyx_kp_u_Finished_handling_client_s); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_client); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_client); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_15, __pyx_cur_scope->__pyx_v_client); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4495, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L32; } __pyx_L31_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_13 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_12, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_12, &__pyx_t_11); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_20); __pyx_t_15 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_24 = __pyx_filename; { /* … */ __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_logger); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4495, __pyx_L35_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_debug); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4495, __pyx_L35_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_25 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_25 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_kp_u_Finished_handling_client_s, __pyx_cur_scope->__pyx_v_client}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_25, 2+__pyx_t_25); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4495, __pyx_L35_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_6); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_kp_u_Finished_handling_client_s, __pyx_cur_scope->__pyx_v_client}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_25, 2+__pyx_t_25); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4495, __pyx_L35_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_6); } else #endif { __pyx_t_8 = PyTuple_New(2+__pyx_t_25); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4495, __pyx_L35_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_kp_u_Finished_handling_client_s); __Pyx_GIVEREF(__pyx_kp_u_Finished_handling_client_s); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_25, __pyx_kp_u_Finished_handling_client_s); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_client); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_client); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_25, __pyx_cur_scope->__pyx_v_client); __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4495, __pyx_L35_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ExceptionReset(__pyx_t_22, __pyx_t_21, __pyx_t_20); } __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ErrRestore(__pyx_t_13, __pyx_t_12, __pyx_t_11); __pyx_t_13 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_lineno = __pyx_t_15; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_24; goto __pyx_L26_error; __pyx_L35_error:; if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ExceptionReset(__pyx_t_22, __pyx_t_21, __pyx_t_20); } __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_t_20 = 0; goto __pyx_L26_error; } __pyx_L32:; } }
4496: finally:
+4497: if not comm.closed():
/*finally:*/ {
/*normal exit:*/{
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_comm, __pyx_n_s_closed); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4497, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_8 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1);
if (likely(__pyx_t_8)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_8);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_1, function);
}
}
__pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4497, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4497, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_26 = ((!__pyx_t_2) != 0);
if (__pyx_t_26) {
/* … */
}
/* … */
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_comm, __pyx_n_s_closed); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4497, __pyx_L47_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
__pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
if (likely(__pyx_t_7)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
__Pyx_INCREF(__pyx_t_7);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_6, function);
}
}
__pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4497, __pyx_L47_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4497, __pyx_L47_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_26 = ((!__pyx_t_2) != 0);
if (__pyx_t_26) {
/* … */
}
+4498: self.client_comms[client].send({"op": "stream-closed"})
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_client_comms); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_cur_scope->__pyx_v_client); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_send); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (PyDict_SetItem(__pyx_t_8, __pyx_n_u_op, __pyx_kp_u_stream_closed) < 0) __PYX_ERR(0, 4498, __pyx_L1_error) __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* … */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_client_comms); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4498, __pyx_L47_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_cur_scope->__pyx_v_client); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4498, __pyx_L47_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_send); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4498, __pyx_L47_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4498, __pyx_L47_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_u_op, __pyx_kp_u_stream_closed) < 0) __PYX_ERR(0, 4498, __pyx_L47_error) __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_8, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4498, __pyx_L47_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4499: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
goto __pyx_L42_try_end;
__pyx_L37_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22);
goto __pyx_L1_error;
__pyx_L38_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22);
__pyx_L42_try_end:;
}
goto __pyx_L27;
}
__pyx_L26_error:;
/*exception exit:*/{
__Pyx_PyThreadState_assign
__pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13);
if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20) < 0)) __Pyx_ErrFetch(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20);
__Pyx_XGOTREF(__pyx_t_22);
__Pyx_XGOTREF(__pyx_t_21);
__Pyx_XGOTREF(__pyx_t_20);
__Pyx_XGOTREF(__pyx_t_11);
__Pyx_XGOTREF(__pyx_t_12);
__Pyx_XGOTREF(__pyx_t_13);
__pyx_t_5 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_27 = __pyx_filename;
{
/* … */
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
goto __pyx_L54_try_end;
__pyx_L49_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_ExceptionReset(__pyx_t_19, __pyx_t_18, __pyx_t_17);
goto __pyx_L47_error;
__pyx_L50_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_ExceptionReset(__pyx_t_19, __pyx_t_18, __pyx_t_17);
__pyx_L54_try_end:;
}
}
if (PY_MAJOR_VERSION >= 3) {
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
}
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_ErrRestore(__pyx_t_22, __pyx_t_21, __pyx_t_20);
__pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0;
__pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_27;
goto __pyx_L1_error;
__pyx_L47_error:;
if (PY_MAJOR_VERSION >= 3) {
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
}
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0;
goto __pyx_L1_error;
}
__pyx_L27:;
}
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
+4500: if not shutting_down():
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_shutting_down); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4500, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4500, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_26 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_26 < 0)) __PYX_ERR(0, 4500, __pyx_L37_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((!__pyx_t_26) != 0); if (__pyx_t_2) { /* … */ } /* … */ __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_shutting_down); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4500, __pyx_L49_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4500, __pyx_L49_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_26 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_26 < 0)) __PYX_ERR(0, 4500, __pyx_L49_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = ((!__pyx_t_26) != 0); if (__pyx_t_2) { /* … */ }
+4501: await self.client_comms[client].close()
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_client_comms); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4501, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_cur_scope->__pyx_v_client); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4501, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_close); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4501, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4501, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_6); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_20); __pyx_cur_scope->__pyx_t_0 = __pyx_t_20; __Pyx_XGIVEREF(__pyx_t_21); __pyx_cur_scope->__pyx_t_1 = __pyx_t_21; __Pyx_XGIVEREF(__pyx_t_22); __pyx_cur_scope->__pyx_t_2 = __pyx_t_22; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L44_resume_from_await:; __pyx_t_20 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_20); __pyx_t_21 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_21); __pyx_t_22 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_22); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4501, __pyx_L37_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 4501, __pyx_L37_error) } } /* … */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_client_comms); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4501, __pyx_L49_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_cur_scope->__pyx_v_client); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4501, __pyx_L49_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_close); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4501, __pyx_L49_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4501, __pyx_L49_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __pyx_cur_scope->__pyx_t_3 = __pyx_t_5; __Pyx_XGIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_t_0 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_t_12); __pyx_cur_scope->__pyx_t_1 = __pyx_t_12; __Pyx_XGIVEREF(__pyx_t_13); __pyx_cur_scope->__pyx_t_2 = __pyx_t_13; __pyx_cur_scope->__pyx_t_4 = __pyx_t_15; __Pyx_XGIVEREF(__pyx_t_17); __pyx_cur_scope->__pyx_t_5 = __pyx_t_17; __Pyx_XGIVEREF(__pyx_t_18); __pyx_cur_scope->__pyx_t_6 = __pyx_t_18; __Pyx_XGIVEREF(__pyx_t_19); __pyx_cur_scope->__pyx_t_7 = __pyx_t_19; __Pyx_XGIVEREF(__pyx_t_20); __pyx_cur_scope->__pyx_t_8 = __pyx_t_20; __Pyx_XGIVEREF(__pyx_t_21); __pyx_cur_scope->__pyx_t_9 = __pyx_t_21; __Pyx_XGIVEREF(__pyx_t_22); __pyx_cur_scope->__pyx_t_10 = __pyx_t_22; __pyx_cur_scope->__pyx_t_11 = __pyx_t_27; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 3; return __pyx_r; __pyx_L56_resume_from_await:; __pyx_t_5 = __pyx_cur_scope->__pyx_t_3; __pyx_t_11 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_11); __pyx_t_12 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_12); __pyx_t_13 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_13); __pyx_t_15 = __pyx_cur_scope->__pyx_t_4; __pyx_t_17 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_17); __pyx_t_18 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_18); __pyx_t_19 = __pyx_cur_scope->__pyx_t_7; __pyx_cur_scope->__pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_t_19); __pyx_t_20 = __pyx_cur_scope->__pyx_t_8; __pyx_cur_scope->__pyx_t_8 = 0; __Pyx_XGOTREF(__pyx_t_20); __pyx_t_21 = __pyx_cur_scope->__pyx_t_9; __pyx_cur_scope->__pyx_t_9 = 0; __Pyx_XGOTREF(__pyx_t_21); __pyx_t_22 = __pyx_cur_scope->__pyx_t_10; __pyx_cur_scope->__pyx_t_10 = 0; __Pyx_XGOTREF(__pyx_t_22); __pyx_t_27 = __pyx_cur_scope->__pyx_t_11; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4501, __pyx_L49_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 4501, __pyx_L49_error) } }
+4502: del self.client_comms[client]
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_client_comms); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4502, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(PyObject_DelItem(__pyx_t_6, __pyx_cur_scope->__pyx_v_client) < 0)) __PYX_ERR(0, 4502, __pyx_L37_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* … */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_client_comms); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4502, __pyx_L49_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_DelItem(__pyx_t_1, __pyx_cur_scope->__pyx_v_client) < 0)) __PYX_ERR(0, 4502, __pyx_L49_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4503: if self.status == Status.running:
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_status); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4503, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4503, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_running); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4503, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(__pyx_t_6, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4503, __pyx_L37_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4503, __pyx_L37_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ } /* … */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4503, __pyx_L49_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_Status); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4503, __pyx_L49_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_running); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4503, __pyx_L49_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4503, __pyx_L49_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4503, __pyx_L49_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { /* … */ }
+4504: logger.info("Close client connection: %s", client)
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_logger); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4504, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_info); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4504, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_kp_u_Close_client_connection_s, __pyx_cur_scope->__pyx_v_client}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4504, __pyx_L37_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_kp_u_Close_client_connection_s, __pyx_cur_scope->__pyx_v_client}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4504, __pyx_L37_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_7 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4504, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_INCREF(__pyx_kp_u_Close_client_connection_s); __Pyx_GIVEREF(__pyx_kp_u_Close_client_connection_s); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_5, __pyx_kp_u_Close_client_connection_s); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_client); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_client); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_5, __pyx_cur_scope->__pyx_v_client); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4504, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_logger); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4504, __pyx_L49_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4504, __pyx_L49_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_25 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_25 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_kp_u_Close_client_connection_s, __pyx_cur_scope->__pyx_v_client}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_25, 2+__pyx_t_25); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4504, __pyx_L49_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_6); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_kp_u_Close_client_connection_s, __pyx_cur_scope->__pyx_v_client}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_25, 2+__pyx_t_25); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4504, __pyx_L49_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_6); } else #endif { __pyx_t_8 = PyTuple_New(2+__pyx_t_25); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4504, __pyx_L49_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_kp_u_Close_client_connection_s); __Pyx_GIVEREF(__pyx_kp_u_Close_client_connection_s); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_25, __pyx_kp_u_Close_client_connection_s); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_client); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_client); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_25, __pyx_cur_scope->__pyx_v_client); __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4504, __pyx_L49_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+4505: except TypeError: # comm becomes None during GC
__pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError); if (__pyx_t_5) { __Pyx_ErrRestore(0,0,0); goto __pyx_L38_exception_handled; } goto __pyx_L39_except_error; __pyx_L39_except_error:; /* … */ __pyx_t_25 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError); if (__pyx_t_25) { __Pyx_ErrRestore(0,0,0); goto __pyx_L50_exception_handled; } goto __pyx_L51_except_error; __pyx_L51_except_error:;
4506: pass
4507:
+4508: def remove_client(self, client=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_71remove_client(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_70remove_client[] = " Remove client from network ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_71remove_client = {"remove_client", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_71remove_client, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_70remove_client};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_71remove_client(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_client = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("remove_client (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_client,0};
PyObject* values[2] = {0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_client);
if (value) { values[1] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "remove_client") < 0)) __PYX_ERR(0, 4508, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_client = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("remove_client", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4508, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.remove_client", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_70remove_client(__pyx_self, __pyx_v_self, __pyx_v_client);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_70remove_client(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_client) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_22_remove_client *__pyx_cur_scope;
struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_cs = 0;
PyObject *__pyx_v_plugin = NULL;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_remove_client_from_events = 0;
PyObject *__pyx_v_cleanup_delay = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_9genexpr52__pyx_v_ts = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("remove_client", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_22_remove_client *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_22_remove_client(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_22_remove_client, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_22_remove_client *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 4508, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_client = __pyx_v_client;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_client);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_client);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_19);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.remove_client", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_cs);
__Pyx_XDECREF(__pyx_v_plugin);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_remove_client_from_events);
__Pyx_XDECREF(__pyx_v_cleanup_delay);
__Pyx_XDECREF((PyObject *)__pyx_9genexpr52__pyx_v_ts);
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__236 = PyTuple_Pack(11, __pyx_n_s_self, __pyx_n_s_client, __pyx_n_s_parent, __pyx_n_s_cs, __pyx_n_s_ts, __pyx_n_s_plugin, __pyx_n_s_e, __pyx_n_s_remove_client_from_events, __pyx_n_s_remove_client_from_events, __pyx_n_s_cleanup_delay, __pyx_n_s_ts); if (unlikely(!__pyx_tuple__236)) __PYX_ERR(0, 4508, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__236);
__Pyx_GIVEREF(__pyx_tuple__236);
__pyx_codeobj__237 = (PyObject*)__Pyx_PyCode_New(2, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__236, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_remove_client, 4508, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__237)) __PYX_ERR(0, 4508, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_71remove_client, 0, __pyx_n_s_Scheduler_remove_client, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__237)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4508, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__238);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_remove_client, __pyx_t_12) < 0) __PYX_ERR(0, 4508, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__238 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__238)) __PYX_ERR(0, 4508, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__238);
__Pyx_GIVEREF(__pyx_tuple__238);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_22_remove_client {
PyObject_HEAD
PyObject *__pyx_v_client;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent;
PyObject *__pyx_v_self;
};
4509: """ Remove client from network """
+4510: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_cur_scope->__pyx_v_self; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1); __pyx_t_1 = 0;
+4511: if self.status == Status.running:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Status); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_running); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4511, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4511, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* … */ }
+4512: logger.info("Remove client %s", client)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_logger); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_u_Remove_client_s, __pyx_cur_scope->__pyx_v_client}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4512, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_u_Remove_client_s, __pyx_cur_scope->__pyx_v_client}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4512, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_kp_u_Remove_client_s); __Pyx_GIVEREF(__pyx_kp_u_Remove_client_s); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_kp_u_Remove_client_s); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_client); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_client); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_cur_scope->__pyx_v_client); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4513: self.log_event(["all", client], {"action": "remove-client", "client": client})
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_log_event_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_n_u_all); __Pyx_GIVEREF(__pyx_n_u_all); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_n_u_all); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_client); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_client); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_cur_scope->__pyx_v_client); __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_action, __pyx_kp_u_remove_client_2) < 0) __PYX_ERR(0, 4513, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_client, __pyx_cur_scope->__pyx_v_client) < 0) __PYX_ERR(0, 4513, __pyx_L1_error) __pyx_t_7 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_t_3}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4513, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_t_3}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4513, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_8 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_5, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_5, __pyx_t_3); __pyx_t_6 = 0; __pyx_t_3 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4514: try:
{
/*try:*/ {
/* … */
}
/* … */
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
goto __pyx_L1_error;
__pyx_L5_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
__pyx_L9_try_end:;
}
+4515: cs: ClientState = parent._clients[client]
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_clients == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4515, __pyx_L4_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_parent->_clients, __pyx_cur_scope->__pyx_v_client); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4515, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_2);
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 4515, __pyx_L4_error)
__pyx_v_cs = ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_2);
__pyx_t_2 = 0;
+4516: except KeyError:
__pyx_t_14 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); if (__pyx_t_14) { __Pyx_ErrRestore(0,0,0); goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; __pyx_L6_except_error:;
4517: # XXX is this a legitimate condition?
4518: pass
4519: else:
+4520: ts: TaskState
/*else:*/ {
+4521: self.client_releases_keys(
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_client_releases_keys_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4521, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_2); /* … */ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4521, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+4522: keys=[ts._key for ts in cs._wants_what], client=cs._client_key
__pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4522, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_1); { /* enter inner scope */ __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4522, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_12 = 0; __pyx_t_6 = __Pyx_set_iterator(__pyx_v_cs->_wants_what, 1, (&__pyx_t_13), (&__pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4522, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = __pyx_t_6; __pyx_t_6 = 0; while (1) { __pyx_t_14 = __Pyx_set_iter_next(__pyx_t_3, __pyx_t_13, &__pyx_t_12, &__pyx_t_6, __pyx_t_5); if (unlikely(__pyx_t_14 == 0)) break; if (unlikely(__pyx_t_14 == -1)) __PYX_ERR(0, 4522, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_6); if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4522, __pyx_L12_error) __Pyx_XDECREF_SET(__pyx_9genexpr52__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6)); __pyx_t_6 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_8, (PyObject*)__pyx_9genexpr52__pyx_v_ts->_key))) __PYX_ERR(0, 4522, __pyx_L12_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF((PyObject *)__pyx_9genexpr52__pyx_v_ts); __pyx_9genexpr52__pyx_v_ts = 0; goto __pyx_L15_exit_scope; __pyx_L12_error:; __Pyx_XDECREF((PyObject *)__pyx_9genexpr52__pyx_v_ts); __pyx_9genexpr52__pyx_v_ts = 0; goto __pyx_L6_except_error; __pyx_L15_exit_scope:; } /* exit inner scope */ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_keys, __pyx_t_8) < 0) __PYX_ERR(0, 4522, __pyx_L6_except_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_client, __pyx_v_cs->_client_key) < 0) __PYX_ERR(0, 4522, __pyx_L6_except_error)
4523: )
+4524: del parent._clients[client]
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_clients == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4524, __pyx_L6_except_error)
}
if (unlikely(PyDict_DelItem(__pyx_cur_scope->__pyx_v_parent->_clients, __pyx_cur_scope->__pyx_v_client) < 0)) __PYX_ERR(0, 4524, __pyx_L6_except_error)
4525:
+4526: for plugin in self.plugins[:]:
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_plugins); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4526, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_t_8, 0, 0, NULL, NULL, &__pyx_slice__57, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4526, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_8 = __pyx_t_1; __Pyx_INCREF(__pyx_t_8); __pyx_t_13 = 0; __pyx_t_15 = NULL; } else { __pyx_t_13 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4526, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_15 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4526, __pyx_L6_except_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_15)) { if (likely(PyList_CheckExact(__pyx_t_8))) { if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 4526, __pyx_L6_except_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_8, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4526, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 4526, __pyx_L6_except_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_8, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4526, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_15(__pyx_t_8); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 4526, __pyx_L6_except_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_plugin, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
+4527: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
goto __pyx_L25_try_end;
__pyx_L18_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18);
goto __pyx_L6_except_error;
__pyx_L19_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18);
__pyx_L25_try_end:;
}
+4528: plugin.remove_client(scheduler=self, client=client)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin, __pyx_n_s_remove_client); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4528, __pyx_L18_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4528, __pyx_L18_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_scheduler, __pyx_cur_scope->__pyx_v_self) < 0) __PYX_ERR(0, 4528, __pyx_L18_error) if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_client, __pyx_cur_scope->__pyx_v_client) < 0) __PYX_ERR(0, 4528, __pyx_L18_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4528, __pyx_L18_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4529: except Exception as e:
__pyx_t_5 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_5) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.remove_client", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_2, &__pyx_t_1) < 0) __PYX_ERR(0, 4529, __pyx_L20_except_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __pyx_v_e = __pyx_t_2; /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; goto __pyx_L32; } __pyx_L31_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_24, &__pyx_t_25, &__pyx_t_26); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23) < 0)) __Pyx_ErrFetch(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_26); __pyx_t_5 = __pyx_lineno; __pyx_t_14 = __pyx_clineno; __pyx_t_20 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_24); __Pyx_XGIVEREF(__pyx_t_25); __Pyx_XGIVEREF(__pyx_t_26); __Pyx_ExceptionReset(__pyx_t_24, __pyx_t_25, __pyx_t_26); } __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_ErrRestore(__pyx_t_21, __pyx_t_22, __pyx_t_23); __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_14; __pyx_filename = __pyx_t_20; goto __pyx_L20_except_error; } __pyx_L32:; } __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L19_exception_handled; } goto __pyx_L20_except_error; __pyx_L20_except_error:;
+4530: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_logger); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4530, __pyx_L31_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_exception); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4530, __pyx_L31_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_19))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_19); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_19, function); } } __pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_19, __pyx_t_7, __pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_19, __pyx_v_e); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4530, __pyx_L31_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; }
4531:
+4532: def remove_client_from_events():
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_13remove_client_1remove_client_from_events(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_13remove_client_1remove_client_from_events = {"remove_client_from_events", (PyCFunction)__pyx_pw_11distributed_9scheduler_9Scheduler_13remove_client_1remove_client_from_events, METH_NOARGS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_13remove_client_1remove_client_from_events(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("remove_client_from_events (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_13remove_client_remove_client_from_events(__pyx_self);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_13remove_client_remove_client_from_events(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_22_remove_client *__pyx_cur_scope;
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_22_remove_client *__pyx_outer_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("remove_client_from_events", 0);
__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_22_remove_client *) __Pyx_CyFunction_GetClosure(__pyx_self);
__pyx_cur_scope = __pyx_outer_scope;
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.remove_client.remove_client_from_events", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_13remove_client_1remove_client_from_events, 0, __pyx_n_s_Scheduler_remove_client_locals_r, ((PyObject*)__pyx_cur_scope), __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4532, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_v_remove_client_from_events = __pyx_t_8;
__pyx_t_8 = 0;
/* … */
__pyx_codeobj__64 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_remove_client_from_events, 4532, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__64)) __PYX_ERR(0, 4532, __pyx_L1_error)
4533: # If the client isn't registered anymore after the delay, remove from events
+4534: if client not in parent._clients and client in self.events:
if (unlikely(!__pyx_cur_scope->__pyx_v_client)) { __Pyx_RaiseClosureNameError("client"); __PYX_ERR(0, 4534, __pyx_L1_error) }
if (unlikely(!__pyx_cur_scope->__pyx_v_parent)) { __Pyx_RaiseClosureNameError("parent"); __PYX_ERR(0, 4534, __pyx_L1_error) }
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_clients == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4534, __pyx_L1_error)
}
__pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_cur_scope->__pyx_v_client, __pyx_cur_scope->__pyx_v_parent->_clients, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4534, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
} else {
__pyx_t_1 = __pyx_t_3;
goto __pyx_L4_bool_binop_done;
}
if (unlikely(!__pyx_cur_scope->__pyx_v_client)) { __Pyx_RaiseClosureNameError("client"); __PYX_ERR(0, 4534, __pyx_L1_error) }
if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 4534, __pyx_L1_error) }
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_events); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4534, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_cur_scope->__pyx_v_client, __pyx_t_4, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4534, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_2 = (__pyx_t_3 != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
+4535: del self.events[client]
if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 4535, __pyx_L1_error) }
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_events); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4535, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(!__pyx_cur_scope->__pyx_v_client)) { __Pyx_RaiseClosureNameError("client"); __PYX_ERR(0, 4535, __pyx_L1_error) }
if (unlikely(PyObject_DelItem(__pyx_t_4, __pyx_cur_scope->__pyx_v_client) < 0)) __PYX_ERR(0, 4535, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4536:
+4537: cleanup_delay = parse_timedelta(
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_parse_timedelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
+4538: dask.config.get("distributed.scheduler.events-cleanup-delay")
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_dask); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_config); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_get); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_6, __pyx_kp_u_distributed_scheduler_events_cle) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_u_distributed_scheduler_events_cle); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_8 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_cleanup_delay = __pyx_t_8; __pyx_t_8 = 0;
4539: )
+4540: self.loop.call_later(cleanup_delay, remove_client_from_events)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_loop); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_call_later); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_14 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_14 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_cleanup_delay, __pyx_v_remove_client_from_events}; __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4540, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_8); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_cleanup_delay, __pyx_v_remove_client_from_events}; __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4540, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_8); } else #endif { __pyx_t_3 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_cleanup_delay); __Pyx_GIVEREF(__pyx_v_cleanup_delay); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_14, __pyx_v_cleanup_delay); __Pyx_INCREF(__pyx_v_remove_client_from_events); __Pyx_GIVEREF(__pyx_v_remove_client_from_events); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_14, __pyx_v_remove_client_from_events); __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
4541:
+4542: def send_task_to_worker(self, worker, ts: TaskState, duration=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_73send_task_to_worker(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_72send_task_to_worker[] = " Send a single computational task to a worker ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_73send_task_to_worker = {"send_task_to_worker", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_73send_task_to_worker, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_72send_task_to_worker};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_73send_task_to_worker(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_worker = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_v_duration = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("send_task_to_worker (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_worker,&__pyx_n_s_ts,&__pyx_n_s_duration,0};
PyObject* values[4] = {0,0,0,0};
values[3] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("send_task_to_worker", 0, 3, 4, 1); __PYX_ERR(0, 4542, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ts)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("send_task_to_worker", 0, 3, 4, 2); __PYX_ERR(0, 4542, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_duration);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "send_task_to_worker") < 0)) __PYX_ERR(0, 4542, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_worker = values[1];
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)values[2]);
__pyx_v_duration = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("send_task_to_worker", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4542, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.send_task_to_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ts), __pyx_ptype_11distributed_9scheduler_TaskState, 1, "ts", 0))) __PYX_ERR(0, 4542, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_72send_task_to_worker(__pyx_self, __pyx_v_self, __pyx_v_worker, __pyx_v_ts, __pyx_v_duration);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_72send_task_to_worker(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_worker, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts, PyObject *__pyx_v_duration) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_v_msg = 0;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_pdb = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("send_task_to_worker", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.send_task_to_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_v_msg);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_pdb);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__239 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_worker, __pyx_n_s_ts, __pyx_n_s_duration, __pyx_n_s_parent, __pyx_n_s_msg, __pyx_n_s_e, __pyx_n_s_pdb); if (unlikely(!__pyx_tuple__239)) __PYX_ERR(0, 4542, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__239);
__Pyx_GIVEREF(__pyx_tuple__239);
__pyx_codeobj__240 = (PyObject*)__Pyx_PyCode_New(4, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__239, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_send_task_to_worker, 4542, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__240)) __PYX_ERR(0, 4542, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4542, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_ts, __pyx_n_u_TaskState) < 0) __PYX_ERR(0, 4542, __pyx_L1_error)
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_73send_task_to_worker, 0, __pyx_n_s_Scheduler_send_task_to_worker, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__240)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4542, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__241);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_12);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_send_task_to_worker, __pyx_t_2) < 0) __PYX_ERR(0, 4542, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__241 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__241)) __PYX_ERR(0, 4542, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__241);
__Pyx_GIVEREF(__pyx_tuple__241);
4543: """ Send a single computational task to a worker """
+4544: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4545: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L8_try_end;
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L1_error;
__pyx_L8_try_end:;
}
+4546: msg: dict = _task_to_msg(parent, ts, duration)
__pyx_t_5.__pyx_n = 1;
__pyx_t_5.duration = __pyx_v_duration;
__pyx_t_1 = __pyx_f_11distributed_9scheduler__task_to_msg(__pyx_v_parent, __pyx_v_ts, &__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4546, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_msg = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+4547: self.worker_send(worker, msg)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_worker_send); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4547, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_worker, __pyx_v_msg}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4547, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_worker, __pyx_v_msg}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4547, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4547, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_worker); __Pyx_GIVEREF(__pyx_v_worker); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_worker); __Pyx_INCREF(__pyx_v_msg); __Pyx_GIVEREF(__pyx_v_msg); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_msg); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4547, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4548: except Exception as e:
__pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_8) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.send_task_to_worker", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_9) < 0) __PYX_ERR(0, 4548, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_v_e = __pyx_t_6; /*try:*/ { /* … */ /*finally:*/ { __pyx_L14_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17) < 0)) __Pyx_ErrFetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __pyx_t_8 = __pyx_lineno; __pyx_t_13 = __pyx_clineno; __pyx_t_14 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20); } __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_ErrRestore(__pyx_t_15, __pyx_t_16, __pyx_t_17); __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_13; __pyx_filename = __pyx_t_14; goto __pyx_L5_except_error; } } } goto __pyx_L5_except_error; __pyx_L5_except_error:;
+4549: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_logger); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4549, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_exception); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4549, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_7 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_v_e); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4549, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4550: if LOG_PDB:
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_LOG_PDB); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4550, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 4550, __pyx_L14_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_12) { /* … */ }
+4551: import pdb
__pyx_t_7 = __Pyx_Import(__pyx_n_s_pdb, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4551, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_7); __pyx_v_pdb = __pyx_t_7; __pyx_t_7 = 0;
4552:
+4553: pdb.set_trace()
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_pdb, __pyx_n_s_set_trace); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4553, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_7 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_11); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4553, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4554: raise
__Pyx_GIVEREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_6, __pyx_t_9); __pyx_t_1 = 0; __pyx_t_6 = 0; __pyx_t_9 = 0; __PYX_ERR(0, 4554, __pyx_L14_error) }
4555:
+4556: def handle_uncaught_error(self, **msg):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_75handle_uncaught_error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_75handle_uncaught_error = {"handle_uncaught_error", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_75handle_uncaught_error, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_75handle_uncaught_error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
CYTHON_UNUSED PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_msg = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("handle_uncaught_error (wrapper)", 0);
__pyx_v_msg = PyDict_New(); if (unlikely(!__pyx_v_msg)) return NULL;
__Pyx_GOTREF(__pyx_v_msg);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
PyObject* values[1] = {0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_msg, values, pos_args, "handle_uncaught_error") < 0)) __PYX_ERR(0, 4556, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
}
__pyx_v_self = values[0];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("handle_uncaught_error", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4556, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_msg); __pyx_v_msg = 0;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.handle_uncaught_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_74handle_uncaught_error(__pyx_self, __pyx_v_self, __pyx_v_msg);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_XDECREF(__pyx_v_msg);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_74handle_uncaught_error(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, PyObject *__pyx_v_msg) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("handle_uncaught_error", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.handle_uncaught_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__242 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_msg); if (unlikely(!__pyx_tuple__242)) __PYX_ERR(0, 4556, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__242);
__Pyx_GIVEREF(__pyx_tuple__242);
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_75handle_uncaught_error, 0, __pyx_n_s_Scheduler_handle_uncaught_error, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__243)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4556, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_handle_uncaught_error, __pyx_t_2) < 0) __PYX_ERR(0, 4556, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__243 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__242, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_handle_uncaught_error, 4556, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__243)) __PYX_ERR(0, 4556, __pyx_L1_error)
+4557: logger.exception(clean_exception(**msg)[1])
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logger); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_exception); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_clean_exception); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_v_msg); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_4, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4558:
+4559: def handle_task_finished(self, key=None, worker=None, **msg):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_77handle_task_finished(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_77handle_task_finished = {"handle_task_finished", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_77handle_task_finished, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_77handle_task_finished(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_worker = 0;
PyObject *__pyx_v_msg = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("handle_task_finished (wrapper)", 0);
__pyx_v_msg = PyDict_New(); if (unlikely(!__pyx_v_msg)) return NULL;
__Pyx_GOTREF(__pyx_v_msg);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,&__pyx_n_s_worker,0};
PyObject* values[3] = {0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_msg, values, pos_args, "handle_task_finished") < 0)) __PYX_ERR(0, 4559, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_key = values[1];
__pyx_v_worker = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("handle_task_finished", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4559, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_msg); __pyx_v_msg = 0;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.handle_task_finished", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_76handle_task_finished(__pyx_self, __pyx_v_self, __pyx_v_key, __pyx_v_worker, __pyx_v_msg);
/* function exit code */
__Pyx_XDECREF(__pyx_v_msg);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_76handle_task_finished(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_worker, PyObject *__pyx_v_msg) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_v_r = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("handle_task_finished", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.handle_task_finished", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_v_r);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__244 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_worker, __pyx_n_s_msg, __pyx_n_s_parent, __pyx_n_s_r); if (unlikely(!__pyx_tuple__244)) __PYX_ERR(0, 4559, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__244);
__Pyx_GIVEREF(__pyx_tuple__244);
__pyx_codeobj__245 = (PyObject*)__Pyx_PyCode_New(3, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__244, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_handle_task_finished, 4559, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__245)) __PYX_ERR(0, 4559, __pyx_L1_error)
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_77handle_task_finished, 0, __pyx_n_s_Scheduler_handle_task_finished, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__245)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4559, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__246);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_handle_task_finished, __pyx_t_2) < 0) __PYX_ERR(0, 4559, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__246 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__246)) __PYX_ERR(0, 4559, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__246);
__Pyx_GIVEREF(__pyx_tuple__246);
+4560: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4561: if worker not in parent._workers_dv:
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4561, __pyx_L1_error)
}
__pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_worker, __pyx_v_parent->_workers_dv, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4561, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
}
+4562: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
+4563: validate_key(key)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_validate_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_key) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_key); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4564: r = self.stimulus_task_finished(key=key, worker=worker, **msg)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_stimulus_task_finished); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_key, __pyx_v_key) < 0) __PYX_ERR(0, 4564, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_worker, __pyx_v_worker) < 0) __PYX_ERR(0, 4564, __pyx_L1_error) __pyx_t_4 = __pyx_t_5; __pyx_t_5 = 0; if (__Pyx_MergeKeywords(__pyx_t_4, __pyx_v_msg) < 0) __PYX_ERR(0, 4564, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_r = __pyx_t_5; __pyx_t_5 = 0;
+4565: self.transitions(r)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transitions_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_1, __pyx_v_r) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_r); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4566:
+4567: def handle_task_erred(self, key=None, **msg):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_79handle_task_erred(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_79handle_task_erred = {"handle_task_erred", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_79handle_task_erred, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_79handle_task_erred(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_msg = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("handle_task_erred (wrapper)", 0);
__pyx_v_msg = PyDict_New(); if (unlikely(!__pyx_v_msg)) return NULL;
__Pyx_GOTREF(__pyx_v_msg);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,0};
PyObject* values[2] = {0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key);
if (value) { values[1] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_msg, values, pos_args, "handle_task_erred") < 0)) __PYX_ERR(0, 4567, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_key = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("handle_task_erred", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4567, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_msg); __pyx_v_msg = 0;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.handle_task_erred", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_78handle_task_erred(__pyx_self, __pyx_v_self, __pyx_v_key, __pyx_v_msg);
/* function exit code */
__Pyx_XDECREF(__pyx_v_msg);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_78handle_task_erred(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_msg) {
PyObject *__pyx_v_r = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("handle_task_erred", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.handle_task_erred", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_r);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__247 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_msg, __pyx_n_s_r); if (unlikely(!__pyx_tuple__247)) __PYX_ERR(0, 4567, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__247);
__Pyx_GIVEREF(__pyx_tuple__247);
__pyx_codeobj__248 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__247, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_handle_task_erred, 4567, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__248)) __PYX_ERR(0, 4567, __pyx_L1_error)
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_79handle_task_erred, 0, __pyx_n_s_Scheduler_handle_task_erred, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__248)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4567, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__249);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_handle_task_erred, __pyx_t_2) < 0) __PYX_ERR(0, 4567, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__249 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__249)) __PYX_ERR(0, 4567, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__249);
__Pyx_GIVEREF(__pyx_tuple__249);
+4568: r = self.stimulus_task_erred(key=key, **msg)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_stimulus_task_erred); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4568, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4568, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_key, __pyx_v_key) < 0) __PYX_ERR(0, 4568, __pyx_L1_error) __pyx_t_2 = __pyx_t_3; __pyx_t_3 = 0; if (__Pyx_MergeKeywords(__pyx_t_2, __pyx_v_msg) < 0) __PYX_ERR(0, 4568, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4568, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_r = __pyx_t_3; __pyx_t_3 = 0;
+4569: self.transitions(r)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transitions_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4569, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_v_r) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_r); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4569, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4570:
+4571: def handle_release_data(self, key=None, worker=None, client=None, **msg):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_81handle_release_data(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_81handle_release_data = {"handle_release_data", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_81handle_release_data, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_81handle_release_data(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_worker = 0;
CYTHON_UNUSED PyObject *__pyx_v_client = 0;
PyObject *__pyx_v_msg = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("handle_release_data (wrapper)", 0);
__pyx_v_msg = PyDict_New(); if (unlikely(!__pyx_v_msg)) return NULL;
__Pyx_GOTREF(__pyx_v_msg);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,&__pyx_n_s_worker,&__pyx_n_s_client,0};
PyObject* values[4] = {0,0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_client);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_msg, values, pos_args, "handle_release_data") < 0)) __PYX_ERR(0, 4571, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_key = values[1];
__pyx_v_worker = values[2];
__pyx_v_client = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("handle_release_data", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4571, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_msg); __pyx_v_msg = 0;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.handle_release_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_80handle_release_data(__pyx_self, __pyx_v_self, __pyx_v_key, __pyx_v_worker, __pyx_v_client, __pyx_v_msg);
/* function exit code */
__Pyx_XDECREF(__pyx_v_msg);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_80handle_release_data(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_worker, CYTHON_UNUSED PyObject *__pyx_v_client, PyObject *__pyx_v_msg) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_v_r = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("handle_release_data", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.handle_release_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF(__pyx_v_r);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__250 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_worker, __pyx_n_s_client, __pyx_n_s_msg, __pyx_n_s_parent, __pyx_n_s_ts, __pyx_n_s_ws, __pyx_n_s_r); if (unlikely(!__pyx_tuple__250)) __PYX_ERR(0, 4571, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__250);
__Pyx_GIVEREF(__pyx_tuple__250);
__pyx_codeobj__251 = (PyObject*)__Pyx_PyCode_New(4, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__250, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_handle_release_data, 4571, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__251)) __PYX_ERR(0, 4571, __pyx_L1_error)
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_81handle_release_data, 0, __pyx_n_s_Scheduler_handle_release_data, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__251)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4571, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__252);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_handle_release_data, __pyx_t_2) < 0) __PYX_ERR(0, 4571, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__252 = PyTuple_Pack(3, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__252)) __PYX_ERR(0, 4571, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__252);
__Pyx_GIVEREF(__pyx_tuple__252);
+4572: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4573: ts: TaskState = parent._tasks.get(key)
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 4573, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_parent->_tasks, __pyx_v_key, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4573, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4573, __pyx_L1_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1);
__pyx_t_1 = 0;
+4574: if ts is None:
__pyx_t_2 = (((PyObject *)__pyx_v_ts) == Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
}
+4575: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
+4576: ws: WorkerState = parent._workers_dv[worker]
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4576, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_parent->_workers_dv, __pyx_v_worker); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4576, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 4576, __pyx_L1_error)
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4577: if ts._processing_on != ws:
__pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_ts->_processing_on), ((PyObject *)__pyx_v_ws), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4577, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4577, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* … */ }
+4578: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
+4579: r = self.stimulus_missing_data(key=key, ensure=False, **msg)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_stimulus_missing_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_key, __pyx_v_key) < 0) __PYX_ERR(0, 4579, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_ensure, Py_False) < 0) __PYX_ERR(0, 4579, __pyx_L1_error) __pyx_t_4 = __pyx_t_5; __pyx_t_5 = 0; if (__Pyx_MergeKeywords(__pyx_t_4, __pyx_v_msg) < 0) __PYX_ERR(0, 4579, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_r = __pyx_t_5; __pyx_t_5 = 0;
+4580: self.transitions(r)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transitions_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_1, __pyx_v_r) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_r); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4581:
+4582: def handle_missing_data(self, key=None, errant_worker=None, **kwargs):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_83handle_missing_data(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_83handle_missing_data = {"handle_missing_data", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_83handle_missing_data, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_83handle_missing_data(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_errant_worker = 0;
CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("handle_missing_data (wrapper)", 0);
__pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
__Pyx_GOTREF(__pyx_v_kwargs);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,&__pyx_n_s_errant_worker,0};
PyObject* values[3] = {0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_errant_worker);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "handle_missing_data") < 0)) __PYX_ERR(0, 4582, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_key = values[1];
__pyx_v_errant_worker = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("handle_missing_data", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4582, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.handle_missing_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_82handle_missing_data(__pyx_self, __pyx_v_self, __pyx_v_key, __pyx_v_errant_worker, __pyx_v_kwargs);
/* function exit code */
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_82handle_missing_data(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_errant_worker, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("handle_missing_data", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.handle_missing_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__253 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_errant_worker, __pyx_n_s_kwargs, __pyx_n_s_parent, __pyx_n_s_ts, __pyx_n_s_ws); if (unlikely(!__pyx_tuple__253)) __PYX_ERR(0, 4582, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__253);
__Pyx_GIVEREF(__pyx_tuple__253);
__pyx_codeobj__254 = (PyObject*)__Pyx_PyCode_New(3, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__253, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_handle_missing_data, 4582, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__254)) __PYX_ERR(0, 4582, __pyx_L1_error)
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_83handle_missing_data, 0, __pyx_n_s_Scheduler_handle_missing_data, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__254)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4582, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__255);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_handle_missing_data, __pyx_t_2) < 0) __PYX_ERR(0, 4582, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__255 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__255)) __PYX_ERR(0, 4582, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__255);
__Pyx_GIVEREF(__pyx_tuple__255);
+4583: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4584: logger.debug("handle missing data key=%s worker=%s", key, errant_worker)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logger); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_debug); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_kp_u_handle_missing_data_key_s_worker, __pyx_v_key, __pyx_v_errant_worker}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4584, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_kp_u_handle_missing_data_key_s_worker, __pyx_v_key, __pyx_v_errant_worker}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4584, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_5 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_kp_u_handle_missing_data_key_s_worker); __Pyx_GIVEREF(__pyx_kp_u_handle_missing_data_key_s_worker); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_kp_u_handle_missing_data_key_s_worker); __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_key); __Pyx_INCREF(__pyx_v_errant_worker); __Pyx_GIVEREF(__pyx_v_errant_worker); PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_4, __pyx_v_errant_worker); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4585: self.log.append(("missing", key, errant_worker))
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_n_u_missing); __Pyx_GIVEREF(__pyx_n_u_missing); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_missing); __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_key); __Pyx_INCREF(__pyx_v_errant_worker); __Pyx_GIVEREF(__pyx_v_errant_worker); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_errant_worker); __pyx_t_6 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_t_3); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 4585, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4586:
+4587: ts: TaskState = parent._tasks.get(key)
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 4587, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_parent->_tasks, __pyx_v_key, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4587, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4587, __pyx_L1_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_3);
__pyx_t_3 = 0;
+4588: if ts is None or not ts._who_has:
__pyx_t_8 = (((PyObject *)__pyx_v_ts) == Py_None);
__pyx_t_9 = (__pyx_t_8 != 0);
if (!__pyx_t_9) {
} else {
__pyx_t_7 = __pyx_t_9;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_9 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
__pyx_t_8 = ((!__pyx_t_9) != 0);
__pyx_t_7 = __pyx_t_8;
__pyx_L4_bool_binop_done:;
if (__pyx_t_7) {
/* … */
}
+4589: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
+4590: if errant_worker in parent._workers_dv:
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4590, __pyx_L1_error)
}
__pyx_t_7 = (__Pyx_PyDict_ContainsTF(__pyx_v_errant_worker, __pyx_v_parent->_workers_dv, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 4590, __pyx_L1_error)
__pyx_t_8 = (__pyx_t_7 != 0);
if (__pyx_t_8) {
/* … */
}
+4591: ws: WorkerState = parent._workers_dv[errant_worker]
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4591, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_parent->_workers_dv, __pyx_v_errant_worker); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 4591, __pyx_L1_error)
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_3);
__pyx_t_3 = 0;
+4592: if ws in ts._who_has:
if (unlikely(__pyx_v_ts->_who_has == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4592, __pyx_L1_error)
}
__pyx_t_8 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ws), __pyx_v_ts->_who_has, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4592, __pyx_L1_error)
__pyx_t_7 = (__pyx_t_8 != 0);
if (__pyx_t_7) {
/* … */
}
+4593: ts._who_has.remove(ws)
if (unlikely(__pyx_v_ts->_who_has == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
__PYX_ERR(0, 4593, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PySet_Remove(__pyx_v_ts->_who_has, ((PyObject *)__pyx_v_ws)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 4593, __pyx_L1_error)
+4594: ws._has_what.remove(ts)
if (unlikely(__pyx_v_ws->_has_what == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
__PYX_ERR(0, 4594, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PySet_Remove(__pyx_v_ws->_has_what, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 4594, __pyx_L1_error)
+4595: ws._nbytes -= ts.get_nbytes()
__pyx_t_10 = __pyx_f_11distributed_9scheduler_9TaskState_get_nbytes(__pyx_v_ts, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4595, __pyx_L1_error)
__pyx_v_ws->_nbytes = (__pyx_v_ws->_nbytes - __pyx_t_10);
+4596: if not ts._who_has:
__pyx_t_7 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
__pyx_t_8 = ((!__pyx_t_7) != 0);
if (__pyx_t_8) {
/* … */
}
+4597: if ts._run_spec:
__pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_ts->_run_spec); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4597, __pyx_L1_error) if (__pyx_t_8) { /* … */ goto __pyx_L9; }
+4598: self.transitions({key: "released"})
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transitions_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_v_key, __pyx_n_u_released) < 0) __PYX_ERR(0, 4598, __pyx_L1_error) __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4599: else:
+4600: self.transitions({key: "forgotten"})
/*else*/ {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transitions_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4600, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4600, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (PyDict_SetItem(__pyx_t_5, __pyx_v_key, __pyx_n_u_forgotten) < 0) __PYX_ERR(0, 4600, __pyx_L1_error)
__pyx_t_2 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
if (likely(__pyx_t_2)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_1, function);
}
}
__pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4600, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__pyx_L9:;
4601:
+4602: def release_worker_data(self, comm=None, keys=None, worker=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_85release_worker_data(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_85release_worker_data = {"release_worker_data", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_85release_worker_data, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_85release_worker_data(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_keys = 0;
PyObject *__pyx_v_worker = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("release_worker_data (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_keys,&__pyx_n_s_worker,0};
PyObject* values[4] = {0,0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keys);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "release_worker_data") < 0)) __PYX_ERR(0, 4602, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_keys = values[2];
__pyx_v_worker = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("release_worker_data", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4602, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.release_worker_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_84release_worker_data(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_keys, __pyx_v_worker);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_84release_worker_data(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_keys, PyObject *__pyx_v_worker) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_v_tasks = NULL;
PyObject *__pyx_v_removed_tasks = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_v_recommendations = 0;
PyObject *__pyx_v_wh = NULL;
PyObject *__pyx_9genexpr53__pyx_v_k = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("release_worker_data", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.release_worker_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF(__pyx_v_tasks);
__Pyx_XDECREF(__pyx_v_removed_tasks);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF(__pyx_v_recommendations);
__Pyx_XDECREF(__pyx_v_wh);
__Pyx_XDECREF(__pyx_9genexpr53__pyx_v_k);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__256 = PyTuple_Pack(12, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_keys, __pyx_n_s_worker, __pyx_n_s_parent, __pyx_n_s_ws, __pyx_n_s_tasks, __pyx_n_s_removed_tasks, __pyx_n_s_ts, __pyx_n_s_recommendations, __pyx_n_s_wh, __pyx_n_s_k); if (unlikely(!__pyx_tuple__256)) __PYX_ERR(0, 4602, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__256);
__Pyx_GIVEREF(__pyx_tuple__256);
__pyx_codeobj__257 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__256, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_release_worker_data_2, 4602, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__257)) __PYX_ERR(0, 4602, __pyx_L1_error)
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_85release_worker_data, 0, __pyx_n_s_Scheduler_release_worker_data, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__257)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4602, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__258);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_release_worker_data_2, __pyx_t_2) < 0) __PYX_ERR(0, 4602, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__258 = PyTuple_Pack(3, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__258)) __PYX_ERR(0, 4602, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__258);
__Pyx_GIVEREF(__pyx_tuple__258);
+4603: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4604: ws: WorkerState = parent._workers_dv[worker]
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4604, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_parent->_workers_dv, __pyx_v_worker); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4604, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 4604, __pyx_L1_error)
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4605: tasks = {parent._tasks[k] for k in keys}
{ /* enter inner scope */
__pyx_t_1 = PySet_New(NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4605, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_v_keys)) || PyTuple_CheckExact(__pyx_v_keys)) {
__pyx_t_2 = __pyx_v_keys; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
__pyx_t_4 = NULL;
} else {
__pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4605, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4605, __pyx_L5_error)
}
for (;;) {
if (likely(!__pyx_t_4)) {
if (likely(PyList_CheckExact(__pyx_t_2))) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4605, __pyx_L5_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4605, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4605, __pyx_L5_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4605, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
}
} else {
__pyx_t_5 = __pyx_t_4(__pyx_t_2);
if (unlikely(!__pyx_t_5)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 4605, __pyx_L5_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_5);
}
__Pyx_XDECREF_SET(__pyx_9genexpr53__pyx_v_k, __pyx_t_5);
__pyx_t_5 = 0;
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4605, __pyx_L5_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_parent->_tasks, __pyx_9genexpr53__pyx_v_k); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4605, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(PySet_Add(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 4605, __pyx_L5_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_9genexpr53__pyx_v_k); __pyx_9genexpr53__pyx_v_k = 0;
goto __pyx_L8_exit_scope;
__pyx_L5_error:;
__Pyx_XDECREF(__pyx_9genexpr53__pyx_v_k); __pyx_9genexpr53__pyx_v_k = 0;
goto __pyx_L1_error;
__pyx_L8_exit_scope:;
} /* exit inner scope */
__pyx_v_tasks = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+4606: removed_tasks = tasks & ws._has_what
__pyx_t_1 = PyNumber_And(__pyx_v_tasks, __pyx_v_ws->_has_what); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_removed_tasks = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+4607: ws._has_what -= removed_tasks
__pyx_t_1 = PyNumber_InPlaceSubtract(__pyx_v_ws->_has_what, __pyx_v_removed_tasks); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(PySet_CheckExact(__pyx_t_1))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "set", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 4607, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_ws->_has_what); __Pyx_DECREF(__pyx_v_ws->_has_what); __pyx_v_ws->_has_what = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
4608:
4609: ts: TaskState
+4610: recommendations: dict = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_recommendations = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+4611: for ts in removed_tasks:
__pyx_t_3 = 0; __pyx_t_2 = __Pyx_set_iterator(__pyx_v_removed_tasks, 1, (&__pyx_t_6), (&__pyx_t_7)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_2; __pyx_t_2 = 0; while (1) { __pyx_t_8 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_6, &__pyx_t_3, &__pyx_t_2, __pyx_t_7); if (unlikely(__pyx_t_8 == 0)) break; if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 4611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4611, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_2)); __pyx_t_2 = 0;
+4612: ws._nbytes -= ts.get_nbytes()
__pyx_t_9 = __pyx_f_11distributed_9scheduler_9TaskState_get_nbytes(__pyx_v_ts, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4612, __pyx_L1_error)
__pyx_v_ws->_nbytes = (__pyx_v_ws->_nbytes - __pyx_t_9);
+4613: wh = ts._who_has
__pyx_t_2 = __pyx_v_ts->_who_has;
__Pyx_INCREF(__pyx_t_2);
__Pyx_XDECREF_SET(__pyx_v_wh, ((PyObject*)__pyx_t_2));
__pyx_t_2 = 0;
+4614: wh.remove(ws)
if (unlikely(__pyx_v_wh == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
__PYX_ERR(0, 4614, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PySet_Remove(__pyx_v_wh, ((PyObject *)__pyx_v_ws)); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 4614, __pyx_L1_error)
+4615: if not wh:
__pyx_t_11 = (__pyx_v_wh != Py_None)&&(PySet_GET_SIZE(__pyx_v_wh) != 0); __pyx_t_12 = ((!__pyx_t_11) != 0); if (__pyx_t_12) { /* … */ } } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4616: recommendations[ts._key] = "released"
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_ts->_key, __pyx_n_u_released) < 0)) __PYX_ERR(0, 4616, __pyx_L1_error)
+4617: if recommendations:
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_recommendations); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 4617, __pyx_L1_error) if (__pyx_t_12) { /* … */ }
+4618: self.transitions(recommendations)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transitions_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_v_recommendations) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_recommendations); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4619:
+4620: def handle_long_running(self, key=None, worker=None, compute_duration=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_87handle_long_running(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_86handle_long_running[] = "A task has seceded from the thread pool\n\n We stop the task from being stolen in the future, and change task\n duration accounting as if the task has stopped.\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_87handle_long_running = {"handle_long_running", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_87handle_long_running, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_86handle_long_running};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_87handle_long_running(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
CYTHON_UNUSED PyObject *__pyx_v_worker = 0;
PyObject *__pyx_v_compute_duration = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("handle_long_running (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,&__pyx_n_s_worker,&__pyx_n_s_compute_duration,0};
PyObject* values[4] = {0,0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_compute_duration);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "handle_long_running") < 0)) __PYX_ERR(0, 4620, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_key = values[1];
__pyx_v_worker = values[2];
__pyx_v_compute_duration = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("handle_long_running", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4620, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.handle_long_running", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_86handle_long_running(__pyx_self, __pyx_v_self, __pyx_v_key, __pyx_v_worker, __pyx_v_compute_duration);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_86handle_long_running(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key, CYTHON_UNUSED PyObject *__pyx_v_worker, PyObject *__pyx_v_compute_duration) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
double __pyx_v_old_duration;
PyObject *__pyx_v_new_duration = NULL;
PyObject *__pyx_v_avg_duration = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("handle_long_running", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.handle_long_running", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF(__pyx_v_new_duration);
__Pyx_XDECREF(__pyx_v_avg_duration);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_90generator7(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__259 = PyTuple_Pack(10, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_worker, __pyx_n_s_compute_duration, __pyx_n_s_parent, __pyx_n_s_ts, __pyx_n_s_ws, __pyx_n_s_old_duration, __pyx_n_s_new_duration, __pyx_n_s_avg_duration); if (unlikely(!__pyx_tuple__259)) __PYX_ERR(0, 4620, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__259);
__Pyx_GIVEREF(__pyx_tuple__259);
__pyx_codeobj__260 = (PyObject*)__Pyx_PyCode_New(4, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__259, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_handle_long_running, 4620, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__260)) __PYX_ERR(0, 4620, __pyx_L1_error)
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_87handle_long_running, 0, __pyx_n_s_Scheduler_handle_long_running, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__260)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4620, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__261);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_handle_long_running, __pyx_t_2) < 0) __PYX_ERR(0, 4620, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__261 = PyTuple_Pack(3, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__261)) __PYX_ERR(0, 4620, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__261);
__Pyx_GIVEREF(__pyx_tuple__261);
4621: """A task has seceded from the thread pool
4622:
4623: We stop the task from being stolen in the future, and change task
4624: duration accounting as if the task has stopped.
4625: """
+4626: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4627: ts: TaskState = parent._tasks[key]
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4627, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_parent->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4627, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4627, __pyx_L1_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1);
__pyx_t_1 = 0;
+4628: if "stealing" in self._extensions:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_extensions_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_stealing, __pyx_t_1, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4628, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* … */ }
+4629: self._extensions["stealing"].remove_key_from_stealable(ts)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_extensions_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_n_u_stealing); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_remove_key_from_stealable); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, ((PyObject *)__pyx_v_ts)) : __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)__pyx_v_ts)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4630:
+4631: ws: WorkerState = ts._processing_on
__pyx_t_1 = ((PyObject *)__pyx_v_ts->_processing_on);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1);
__pyx_t_1 = 0;
+4632: if ws is None:
__pyx_t_3 = (((PyObject *)__pyx_v_ws) == Py_None);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
/* … */
}
+4633: logger.debug("Received long-running signal from duplicate task. Ignoring.")
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_logger); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_debug); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_kp_u_Received_long_running_signal_fro) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_u_Received_long_running_signal_fro); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4634: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
4635:
+4636: if compute_duration:
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_compute_duration); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4636, __pyx_L1_error) if (__pyx_t_2) { /* … */ }
+4637: old_duration = ts._prefix._duration_average
__pyx_t_6 = __pyx_v_ts->_prefix->_duration_average;
__pyx_v_old_duration = __pyx_t_6;
+4638: new_duration = compute_duration
__Pyx_INCREF(__pyx_v_compute_duration);
__pyx_v_new_duration = __pyx_v_compute_duration;
+4639: if old_duration < 0:
__pyx_t_2 = ((__pyx_v_old_duration < 0.0) != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L6;
}
+4640: avg_duration = new_duration
__Pyx_INCREF(__pyx_v_new_duration);
__pyx_v_avg_duration = __pyx_v_new_duration;
4641: else:
+4642: avg_duration = 0.5 * old_duration + 0.5 * new_duration
/*else*/ {
__pyx_t_1 = PyFloat_FromDouble((0.5 * __pyx_v_old_duration)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4642, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = PyNumber_Multiply(__pyx_float_0_5, __pyx_v_new_duration); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4642, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = PyNumber_Add(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4642, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_v_avg_duration = __pyx_t_4;
__pyx_t_4 = 0;
}
__pyx_L6:;
4643:
+4644: ts._prefix._duration_average = avg_duration
__pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_v_avg_duration); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4644, __pyx_L1_error) __pyx_v_ts->_prefix->_duration_average = __pyx_t_6;
4645:
+4646: ws._occupancy -= ws._processing[ts]
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_ws->_occupancy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(__pyx_v_ws->_processing == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4646, __pyx_L1_error) } __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_ws->_processing, ((PyObject *)__pyx_v_ts)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyNumber_InPlaceSubtract(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4646, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_ws->_occupancy = __pyx_t_6;
+4647: parent._total_occupancy -= ws._processing[ts]
__pyx_t_1 = PyFloat_FromDouble(__pyx_v_parent->_total_occupancy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_ws->_processing == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4647, __pyx_L1_error) } __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_ws->_processing, ((PyObject *)__pyx_v_ts)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyNumber_InPlaceSubtract(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4647, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_parent->_total_occupancy = __pyx_t_6;
+4648: ws._processing[ts] = 0
if (unlikely(__pyx_v_ws->_processing == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4648, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_ws->_processing, ((PyObject *)__pyx_v_ts), __pyx_int_0) < 0)) __PYX_ERR(0, 4648, __pyx_L1_error)
+4649: self.check_idle_saturated(ws)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_check_idle_saturated); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_1, ((PyObject *)__pyx_v_ws)) : __Pyx_PyObject_CallOneArg(__pyx_t_5, ((PyObject *)__pyx_v_ws)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4650:
+4651: async def handle_worker(self, comm=None, worker=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_89handle_worker(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_88handle_worker[] = "\n Listen to responses from a single worker\n\n This is the main loop for scheduler-worker interaction\n\n See Also\n --------\n Scheduler.handle_client: Equivalent coroutine for clients\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_89handle_worker = {"handle_worker", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_89handle_worker, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_88handle_worker};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_89handle_worker(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_worker = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("handle_worker (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_worker,0};
PyObject* values[3] = {0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "handle_worker") < 0)) __PYX_ERR(0, 4651, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_worker = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("handle_worker", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4651, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.handle_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_88handle_worker(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_worker);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_88handle_worker(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_comm, PyObject *__pyx_v_worker) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_23_handle_worker *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("handle_worker", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_23_handle_worker *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_23_handle_worker(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_23_handle_worker, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_23_handle_worker *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 4651, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_comm = __pyx_v_comm;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm);
__pyx_cur_scope->__pyx_v_worker = __pyx_v_worker;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_worker);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_worker);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_90generator7, __pyx_codeobj__65, (PyObject *) __pyx_cur_scope, __pyx_n_s_handle_worker, __pyx_n_s_Scheduler_handle_worker, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 4651, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.handle_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_90generator7(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("handle_worker", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4651, __pyx_L1_error)
/* … */
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("handle_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__262 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_worker, __pyx_n_s_worker_comm); if (unlikely(!__pyx_tuple__262)) __PYX_ERR(0, 4651, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__262);
__Pyx_GIVEREF(__pyx_tuple__262);
__pyx_codeobj__65 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__262, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_handle_worker, 4651, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__65)) __PYX_ERR(0, 4651, __pyx_L1_error)
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_89handle_worker, 0, __pyx_n_s_Scheduler_handle_worker, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__65)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4651, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__263);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_handle_worker, __pyx_t_2) < 0) __PYX_ERR(0, 4651, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__263 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__263)) __PYX_ERR(0, 4651, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__263);
__Pyx_GIVEREF(__pyx_tuple__263);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_23_handle_worker {
PyObject_HEAD
PyObject *__pyx_v_comm;
PyObject *__pyx_v_self;
PyObject *__pyx_v_worker;
PyObject *__pyx_v_worker_comm;
int __pyx_t_0;
int __pyx_t_1;
char const *__pyx_t_2;
PyObject *__pyx_t_3;
PyObject *__pyx_t_4;
PyObject *__pyx_t_5;
PyObject *__pyx_t_6;
PyObject *__pyx_t_7;
PyObject *__pyx_t_8;
};
4652: """
4653: Listen to responses from a single worker
4654:
4655: This is the main loop for scheduler-worker interaction
4656:
4657: See Also
4658: --------
4659: Scheduler.handle_client: Equivalent coroutine for clients
4660: """
+4661: comm.name = "Scheduler connection to worker"
if (__Pyx_PyObject_SetAttrStr(__pyx_cur_scope->__pyx_v_comm, __pyx_n_s_name, __pyx_kp_u_Scheduler_connection_to_worker) < 0) __PYX_ERR(0, 4661, __pyx_L1_error)
+4662: worker_comm = self.stream_comms[worker]
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_stream_comms); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_cur_scope->__pyx_v_worker); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_worker_comm = __pyx_t_2; __pyx_t_2 = 0;
+4663: worker_comm.start(comm)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_worker_comm, __pyx_n_s_start); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_cur_scope->__pyx_v_comm) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_cur_scope->__pyx_v_comm); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4664: logger.info("Starting worker compute stream, %s", worker)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_logger); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_kp_u_Starting_worker_compute_stream_s, __pyx_cur_scope->__pyx_v_worker}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4664, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_kp_u_Starting_worker_compute_stream_s, __pyx_cur_scope->__pyx_v_worker}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4664, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_kp_u_Starting_worker_compute_stream_s); __Pyx_GIVEREF(__pyx_kp_u_Starting_worker_compute_stream_s); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_kp_u_Starting_worker_compute_stream_s); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_worker); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_worker); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_cur_scope->__pyx_v_worker); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4665: try:
/*try:*/ {
+4666: await self.handle_stream(comm=comm, extra={"worker": worker})
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_handle_stream); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4666, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4666, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_comm, __pyx_cur_scope->__pyx_v_comm) < 0) __PYX_ERR(0, 4666, __pyx_L5_error) __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4666, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_worker, __pyx_cur_scope->__pyx_v_worker) < 0) __PYX_ERR(0, 4666, __pyx_L5_error) if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_extra, __pyx_t_5) < 0) __PYX_ERR(0, 4666, __pyx_L5_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4666, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L7_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4666, __pyx_L5_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 4666, __pyx_L5_error) } } }
4667: finally:
+4668: if worker in self.stream_comms:
/*finally:*/ {
/*normal exit:*/{
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_stream_comms); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4668, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_cur_scope->__pyx_v_worker, __pyx_t_5, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4668, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_7 = (__pyx_t_6 != 0);
if (__pyx_t_7) {
/* … */
}
goto __pyx_L6;
}
__pyx_L5_error:;
/*exception exit:*/{
__Pyx_PyThreadState_assign
__pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15);
if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12) < 0)) __Pyx_ErrFetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
__Pyx_XGOTREF(__pyx_t_10);
__Pyx_XGOTREF(__pyx_t_11);
__Pyx_XGOTREF(__pyx_t_12);
__Pyx_XGOTREF(__pyx_t_13);
__Pyx_XGOTREF(__pyx_t_14);
__Pyx_XGOTREF(__pyx_t_15);
__pyx_t_4 = __pyx_lineno; __pyx_t_8 = __pyx_clineno; __pyx_t_9 = __pyx_filename;
{
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_stream_comms); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4668, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_cur_scope->__pyx_v_worker, __pyx_t_2, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 4668, __pyx_L11_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_6 = (__pyx_t_7 != 0);
if (__pyx_t_6) {
/* … */
}
}
if (PY_MAJOR_VERSION >= 3) {
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_15);
__Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15);
}
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ErrRestore(__pyx_t_10, __pyx_t_11, __pyx_t_12);
__pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0;
__pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_8; __pyx_filename = __pyx_t_9;
goto __pyx_L1_error;
__pyx_L11_error:;
if (PY_MAJOR_VERSION >= 3) {
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_15);
__Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15);
}
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0;
goto __pyx_L1_error;
}
__pyx_L6:;
}
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
+4669: worker_comm.abort()
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_worker_comm, __pyx_n_s_abort); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_5 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_worker_comm, __pyx_n_s_abort); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4669, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4669, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4670: await self.remove_worker(address=worker)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_remove_worker); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_address, __pyx_cur_scope->__pyx_v_worker) < 0) __PYX_ERR(0, 4670, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L9_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4670, __pyx_L1_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 4670, __pyx_L1_error) } } /* … */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_remove_worker); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4670, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4670, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_address, __pyx_cur_scope->__pyx_v_worker) < 0) __PYX_ERR(0, 4670, __pyx_L11_error) __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4670, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __pyx_cur_scope->__pyx_t_0 = __pyx_t_4; __pyx_cur_scope->__pyx_t_1 = __pyx_t_8; __pyx_cur_scope->__pyx_t_2 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_3 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_t_4 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_t_12); __pyx_cur_scope->__pyx_t_5 = __pyx_t_12; __Pyx_XGIVEREF(__pyx_t_13); __pyx_cur_scope->__pyx_t_6 = __pyx_t_13; __Pyx_XGIVEREF(__pyx_t_14); __pyx_cur_scope->__pyx_t_7 = __pyx_t_14; __Pyx_XGIVEREF(__pyx_t_15); __pyx_cur_scope->__pyx_t_8 = __pyx_t_15; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 3; return __pyx_r; __pyx_L13_resume_from_await:; __pyx_t_4 = __pyx_cur_scope->__pyx_t_0; __pyx_t_8 = __pyx_cur_scope->__pyx_t_1; __pyx_t_9 = __pyx_cur_scope->__pyx_t_2; __pyx_t_10 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_11 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_11); __pyx_t_12 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_12); __pyx_t_13 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_13); __pyx_t_14 = __pyx_cur_scope->__pyx_t_7; __pyx_cur_scope->__pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_t_14); __pyx_t_15 = __pyx_cur_scope->__pyx_t_8; __pyx_cur_scope->__pyx_t_8 = 0; __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4670, __pyx_L11_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 4670, __pyx_L11_error) } }
4671:
+4672: def add_plugin(self, plugin=None, idempotent=False, **kwargs):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_92add_plugin(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_91add_plugin[] = "\n Add external plugin to scheduler\n\n See https://distributed.readthedocs.io/en/latest/plugins.html\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_92add_plugin = {"add_plugin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_92add_plugin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_91add_plugin};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_92add_plugin(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_plugin = 0;
PyObject *__pyx_v_idempotent = 0;
PyObject *__pyx_v_kwargs = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("add_plugin (wrapper)", 0);
__pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
__Pyx_GOTREF(__pyx_v_kwargs);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_plugin,&__pyx_n_s_idempotent,0};
PyObject* values[3] = {0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_False));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_plugin);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_idempotent);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "add_plugin") < 0)) __PYX_ERR(0, 4672, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_plugin = values[1];
__pyx_v_idempotent = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("add_plugin", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4672, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.add_plugin", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_91add_plugin(__pyx_self, __pyx_v_self, __pyx_v_plugin, __pyx_v_idempotent, __pyx_v_kwargs);
/* function exit code */
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_10add_plugin_2generator33(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_91add_plugin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_plugin, PyObject *__pyx_v_idempotent, PyObject *__pyx_v_kwargs) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_24_add_plugin *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("add_plugin", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_24_add_plugin *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_24_add_plugin(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_24_add_plugin, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_24_add_plugin *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 4672, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_plugin = __pyx_v_plugin;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_plugin);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_plugin);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.add_plugin", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__264 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_plugin, __pyx_n_s_idempotent, __pyx_n_s_kwargs, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__264)) __PYX_ERR(0, 4672, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__264);
__Pyx_GIVEREF(__pyx_tuple__264);
__pyx_codeobj__265 = (PyObject*)__Pyx_PyCode_New(3, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__264, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_add_plugin, 4672, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__265)) __PYX_ERR(0, 4672, __pyx_L1_error)
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_92add_plugin, 0, __pyx_n_s_Scheduler_add_plugin, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__265)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4672, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__266);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_add_plugin, __pyx_t_2) < 0) __PYX_ERR(0, 4672, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__266 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_False)); if (unlikely(!__pyx_tuple__266)) __PYX_ERR(0, 4672, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__266);
__Pyx_GIVEREF(__pyx_tuple__266);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_24_add_plugin {
PyObject_HEAD
PyObject *__pyx_v_plugin;
PyObject *__pyx_v_self;
};
4673: """
4674: Add external plugin to scheduler
4675:
4676: See https://distributed.readthedocs.io/en/latest/plugins.html
4677: """
+4678: if isinstance(plugin, type):
__pyx_t_1 = __pyx_cur_scope->__pyx_v_plugin; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = PyType_Check(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* … */ }
+4679: plugin = plugin(self, **kwargs)
__pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_v_self); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_plugin, __pyx_t_1, __pyx_v_kwargs); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_plugin); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_plugin, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0;
4680:
+4681: if idempotent and any(isinstance(p, type(plugin)) for p in self.plugins):
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_10add_plugin_genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_25_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_25_genexpr *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_25_genexpr(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_25_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_25_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 4681, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_24_add_plugin *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_10add_plugin_2generator33, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_Scheduler_add_plugin_locals_gene, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 4681, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.add_plugin.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_10add_plugin_2generator33(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4681, __pyx_L1_error)
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 4681, __pyx_L1_error) }
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self, __pyx_n_s_plugins); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4681, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
__pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
__pyx_t_4 = NULL;
} else {
__pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4681, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4681, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
for (;;) {
if (likely(!__pyx_t_4)) {
if (likely(PyList_CheckExact(__pyx_t_2))) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4681, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4681, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
} else {
if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4681, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4681, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
}
} else {
__pyx_t_1 = __pyx_t_4(__pyx_t_2);
if (unlikely(!__pyx_t_1)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 4681, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_1);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_p);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_p, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_plugin)) { __Pyx_RaiseClosureNameError("plugin"); __PYX_ERR(0, 4681, __pyx_L1_error) }
__pyx_t_5 = PyObject_IsInstance(__pyx_cur_scope->__pyx_v_p, ((PyObject *)Py_TYPE(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_plugin))); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 4681, __pyx_L1_error)
__pyx_t_6 = (__pyx_t_5 != 0);
if (__pyx_t_6) {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(Py_True);
__pyx_r = Py_True;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
goto __pyx_L0;
}
}
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(Py_False);
__pyx_r = Py_False;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
goto __pyx_L0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_idempotent); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4681, __pyx_L1_error)
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L5_bool_binop_done;
}
__pyx_t_4 = __pyx_pf_11distributed_9scheduler_9Scheduler_10add_plugin_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4681, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_1 = __Pyx_Generator_Next(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4681, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4681, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = __pyx_t_2;
__pyx_L5_bool_binop_done:;
if (__pyx_t_3) {
/* … */
}
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_25_genexpr {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_24_add_plugin *__pyx_outer_scope;
PyObject *__pyx_v_p;
};
+4682: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
4683:
+4684: self.plugins.append(plugin)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_plugins); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_cur_scope->__pyx_v_plugin); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 4684, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4685:
+4686: def remove_plugin(self, plugin):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_94remove_plugin(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_93remove_plugin[] = " Remove external plugin from scheduler ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_94remove_plugin = {"remove_plugin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_94remove_plugin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_93remove_plugin};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_94remove_plugin(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_plugin = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("remove_plugin (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_plugin,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_plugin)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("remove_plugin", 1, 2, 2, 1); __PYX_ERR(0, 4686, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "remove_plugin") < 0)) __PYX_ERR(0, 4686, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_self = values[0];
__pyx_v_plugin = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("remove_plugin", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4686, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.remove_plugin", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_93remove_plugin(__pyx_self, __pyx_v_self, __pyx_v_plugin);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_93remove_plugin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_plugin) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("remove_plugin", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.remove_plugin", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__267 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_plugin); if (unlikely(!__pyx_tuple__267)) __PYX_ERR(0, 4686, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__267);
__Pyx_GIVEREF(__pyx_tuple__267);
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_94remove_plugin, 0, __pyx_n_s_Scheduler_remove_plugin, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__268)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4686, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_remove_plugin, __pyx_t_2) < 0) __PYX_ERR(0, 4686, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__268 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__267, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_remove_plugin, 4686, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__268)) __PYX_ERR(0, 4686, __pyx_L1_error)
4687: """ Remove external plugin from scheduler """
+4688: self.plugins.remove(plugin)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_plugins); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_remove); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_plugin) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_plugin); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4689:
+4690: def worker_send(self, worker, msg):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_96worker_send(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_95worker_send[] = "Send message to worker\n\n This also handles connection failures by adding a callback to remove\n the worker on the next cycle.\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_96worker_send = {"worker_send", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_96worker_send, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_95worker_send};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_96worker_send(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_worker = 0;
PyObject *__pyx_v_msg = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("worker_send (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_worker,&__pyx_n_s_msg,0};
PyObject* values[3] = {0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("worker_send", 1, 3, 3, 1); __PYX_ERR(0, 4690, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_msg)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("worker_send", 1, 3, 3, 2); __PYX_ERR(0, 4690, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "worker_send") < 0)) __PYX_ERR(0, 4690, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
}
__pyx_v_self = values[0];
__pyx_v_worker = values[1];
__pyx_v_msg = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("worker_send", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4690, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.worker_send", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_95worker_send(__pyx_self, __pyx_v_self, __pyx_v_worker, __pyx_v_msg);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_95worker_send(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_worker, PyObject *__pyx_v_msg) {
PyObject *__pyx_v_stream_comms = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("worker_send", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.worker_send", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_stream_comms);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__269 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_worker, __pyx_n_s_msg, __pyx_n_s_stream_comms); if (unlikely(!__pyx_tuple__269)) __PYX_ERR(0, 4690, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__269);
__Pyx_GIVEREF(__pyx_tuple__269);
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_96worker_send, 0, __pyx_n_s_Scheduler_worker_send, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__270)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4690, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_worker_send, __pyx_t_2) < 0) __PYX_ERR(0, 4690, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__270 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__269, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_worker_send, 4690, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__270)) __PYX_ERR(0, 4690, __pyx_L1_error)
4691: """Send message to worker
4692:
4693: This also handles connection failures by adding a callback to remove
4694: the worker on the next cycle.
4695: """
+4696: stream_comms: dict = self.stream_comms
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_stream_comms); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 4696, __pyx_L1_error) __pyx_v_stream_comms = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+4697: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L8_try_end;
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L1_error;
__pyx_L4_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
__pyx_L8_try_end:;
}
+4698: stream_comms[worker].send(msg)
if (unlikely(__pyx_v_stream_comms == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4698, __pyx_L3_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_stream_comms, __pyx_v_worker); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4698, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_send); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4698, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_6, function);
}
}
__pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_v_msg) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_msg);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4698, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4699: except (CommClosedError, AttributeError):
__Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_6, &__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_CommClosedError); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4699, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_7) || __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_builtin_AttributeError); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_ErrRestore(__pyx_t_1, __pyx_t_6, __pyx_t_5); __pyx_t_1 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; if (__pyx_t_8) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.worker_send", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_1) < 0) __PYX_ERR(0, 4699, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_1);
+4700: self.loop.add_callback(self.remove_worker, address=worker)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_loop); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4700, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_add_callback); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4700, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_remove_worker); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4700, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4700, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4700, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_address, __pyx_v_worker) < 0) __PYX_ERR(0, 4700, __pyx_L5_except_error) __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_10, __pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4700, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L4_exception_handled; } goto __pyx_L5_except_error; __pyx_L5_except_error:;
4701:
+4702: def client_send(self, client, msg):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_98client_send(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_97client_send[] = "Send message to client";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_98client_send = {"client_send", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_98client_send, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_97client_send};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_98client_send(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_client = 0;
PyObject *__pyx_v_msg = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("client_send (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_client,&__pyx_n_s_msg,0};
PyObject* values[3] = {0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_client)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("client_send", 1, 3, 3, 1); __PYX_ERR(0, 4702, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_msg)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("client_send", 1, 3, 3, 2); __PYX_ERR(0, 4702, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "client_send") < 0)) __PYX_ERR(0, 4702, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
}
__pyx_v_self = values[0];
__pyx_v_client = values[1];
__pyx_v_msg = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("client_send", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4702, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.client_send", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_97client_send(__pyx_self, __pyx_v_self, __pyx_v_client, __pyx_v_msg);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_97client_send(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_client, PyObject *__pyx_v_msg) {
PyObject *__pyx_v_client_comms = 0;
PyObject *__pyx_v_c = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("client_send", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.client_send", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_client_comms);
__Pyx_XDECREF(__pyx_v_c);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__271 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_client, __pyx_n_s_msg, __pyx_n_s_client_comms, __pyx_n_s_c); if (unlikely(!__pyx_tuple__271)) __PYX_ERR(0, 4702, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__271);
__Pyx_GIVEREF(__pyx_tuple__271);
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_98client_send, 0, __pyx_n_s_Scheduler_client_send, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__272)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4702, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_client_send, __pyx_t_2) < 0) __PYX_ERR(0, 4702, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__272 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__271, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_client_send, 4702, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__272)) __PYX_ERR(0, 4702, __pyx_L1_error)
4703: """Send message to client"""
+4704: client_comms: dict = self.client_comms
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_client_comms); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 4704, __pyx_L1_error) __pyx_v_client_comms = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+4705: c = client_comms.get(client)
if (unlikely(__pyx_v_client_comms == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 4705, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_client_comms, __pyx_v_client, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4705, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_c = __pyx_t_1;
__pyx_t_1 = 0;
+4706: if c is None:
__pyx_t_2 = (__pyx_v_c == Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
}
+4707: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
+4708: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
goto __pyx_L9_try_end;
__pyx_L4_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
goto __pyx_L1_error;
__pyx_L5_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
__pyx_L9_try_end:;
}
+4709: c.send(msg)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_c, __pyx_n_s_send); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4709, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_v_msg) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_msg); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4709, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4710: except CommClosedError:
__Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_7, &__pyx_t_8); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_CommClosedError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4710, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_ErrRestore(__pyx_t_1, __pyx_t_7, __pyx_t_8); __pyx_t_1 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; if (__pyx_t_10) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.client_send", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_1) < 0) __PYX_ERR(0, 4710, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_7); __Pyx_GOTREF(__pyx_t_1);
+4711: if self.status == Status.running:
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_status); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4711, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_Status); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4711, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_running); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4711, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyObject_RichCompare(__pyx_t_9, __pyx_t_12, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4711, __pyx_L6_except_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4711, __pyx_L6_except_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (__pyx_t_3) { /* … */ } __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; __pyx_L6_except_error:;
+4712: logger.critical("Tried writing to closed comm: %s", msg)
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_logger); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4712, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_critical); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4712, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_kp_u_Tried_writing_to_closed_comm_s, __pyx_v_msg}; __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4712, __pyx_L6_except_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_11); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_kp_u_Tried_writing_to_closed_comm_s, __pyx_v_msg}; __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4712, __pyx_L6_except_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_11); } else #endif { __pyx_t_13 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4712, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_13); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_INCREF(__pyx_kp_u_Tried_writing_to_closed_comm_s); __Pyx_GIVEREF(__pyx_kp_u_Tried_writing_to_closed_comm_s); PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_10, __pyx_kp_u_Tried_writing_to_closed_comm_s); __Pyx_INCREF(__pyx_v_msg); __Pyx_GIVEREF(__pyx_v_msg); PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_10, __pyx_v_msg); __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_13, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4712, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
4713:
+4714: def send_all(self, client_msgs: dict, worker_msgs: dict):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_100send_all(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_99send_all[] = "Send messages to client and workers";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_100send_all = {"send_all", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_100send_all, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_99send_all};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_100send_all(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_client_msgs = 0;
PyObject *__pyx_v_worker_msgs = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("send_all (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_client_msgs,&__pyx_n_s_worker_msgs,0};
PyObject* values[3] = {0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_client_msgs)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("send_all", 1, 3, 3, 1); __PYX_ERR(0, 4714, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker_msgs)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("send_all", 1, 3, 3, 2); __PYX_ERR(0, 4714, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "send_all") < 0)) __PYX_ERR(0, 4714, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
}
__pyx_v_self = values[0];
__pyx_v_client_msgs = ((PyObject*)values[1]);
__pyx_v_worker_msgs = ((PyObject*)values[2]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("send_all", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4714, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.send_all", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_client_msgs), (&PyDict_Type), 1, "client_msgs", 1))) __PYX_ERR(0, 4714, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_worker_msgs), (&PyDict_Type), 1, "worker_msgs", 1))) __PYX_ERR(0, 4714, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_99send_all(__pyx_self, __pyx_v_self, __pyx_v_client_msgs, __pyx_v_worker_msgs);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_99send_all(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_client_msgs, PyObject *__pyx_v_worker_msgs) {
PyObject *__pyx_v_stream_comms = 0;
PyObject *__pyx_v_client_comms = 0;
PyObject *__pyx_v_msgs = 0;
PyObject *__pyx_v_worker = NULL;
PyObject *__pyx_v_w = NULL;
PyObject *__pyx_v_client = NULL;
PyObject *__pyx_v_c = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("send_all", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.send_all", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_stream_comms);
__Pyx_XDECREF(__pyx_v_client_comms);
__Pyx_XDECREF(__pyx_v_msgs);
__Pyx_XDECREF(__pyx_v_worker);
__Pyx_XDECREF(__pyx_v_w);
__Pyx_XDECREF(__pyx_v_client);
__Pyx_XDECREF(__pyx_v_c);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_103generator8(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__273 = PyTuple_Pack(10, __pyx_n_s_self, __pyx_n_s_client_msgs, __pyx_n_s_worker_msgs, __pyx_n_s_stream_comms, __pyx_n_s_client_comms, __pyx_n_s_msgs, __pyx_n_s_worker, __pyx_n_s_w, __pyx_n_s_client, __pyx_n_s_c); if (unlikely(!__pyx_tuple__273)) __PYX_ERR(0, 4714, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__273);
__Pyx_GIVEREF(__pyx_tuple__273);
/* … */
__pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4714, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_client_msgs, __pyx_n_u_dict_2) < 0) __PYX_ERR(0, 4714, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_worker_msgs, __pyx_n_u_dict_2) < 0) __PYX_ERR(0, 4714, __pyx_L1_error)
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_100send_all, 0, __pyx_n_s_Scheduler_send_all, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__274)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4714, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_12, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_send_all, __pyx_t_12) < 0) __PYX_ERR(0, 4714, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_codeobj__274 = (PyObject*)__Pyx_PyCode_New(3, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__273, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_send_all, 4714, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__274)) __PYX_ERR(0, 4714, __pyx_L1_error)
4715: """Send messages to client and workers"""
+4716: stream_comms: dict = self.stream_comms
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_stream_comms); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 4716, __pyx_L1_error) __pyx_v_stream_comms = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+4717: client_comms: dict = self.client_comms
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_client_comms); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 4717, __pyx_L1_error) __pyx_v_client_comms = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
4718: msgs: list
4719:
+4720: for worker, msgs in worker_msgs.items():
__pyx_t_2 = 0;
if (unlikely(__pyx_v_worker_msgs == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 4720, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_dict_iterator(__pyx_v_worker_msgs, 1, __pyx_n_s_items, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4720, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_5;
__pyx_t_5 = 0;
while (1) {
__pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, &__pyx_t_6, NULL, __pyx_t_4);
if (unlikely(__pyx_t_7 == 0)) break;
if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 4720, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(PyList_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 4720, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_worker, __pyx_t_5);
__pyx_t_5 = 0;
__Pyx_XDECREF_SET(__pyx_v_msgs, ((PyObject*)__pyx_t_6));
__pyx_t_6 = 0;
+4721: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
goto __pyx_L12_try_end;
__pyx_L5_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
goto __pyx_L1_error;
__pyx_L6_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
__pyx_L12_try_end:;
}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4722: w = stream_comms[worker]
if (unlikely(__pyx_v_stream_comms == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4722, __pyx_L5_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_stream_comms, __pyx_v_worker); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4722, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_w, __pyx_t_6);
__pyx_t_6 = 0;
+4723: w.send(*msgs)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_send); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4723, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = PySequence_Tuple(__pyx_v_msgs); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4723, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4723, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+4724: except (CommClosedError, AttributeError):
__Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_5, &__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_CommClosedError); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4724, __pyx_L7_except_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_7 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_11, __pyx_t_12) || __Pyx_PyErr_GivenExceptionMatches(__pyx_t_11, __pyx_builtin_AttributeError); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_ErrRestore(__pyx_t_11, __pyx_t_5, __pyx_t_6); __pyx_t_11 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0; if (__pyx_t_7) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.send_all", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_11) < 0) __PYX_ERR(0, 4724, __pyx_L7_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_11);
+4725: self.loop.add_callback(self.remove_worker, address=worker)
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_loop); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4725, __pyx_L7_except_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_add_callback); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4725, __pyx_L7_except_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_remove_worker); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4725, __pyx_L7_except_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4725, __pyx_L7_except_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4725, __pyx_L7_except_error) __Pyx_GOTREF(__pyx_t_12); if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_address, __pyx_v_worker) < 0) __PYX_ERR(0, 4725, __pyx_L7_except_error) __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_14, __pyx_t_12); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4725, __pyx_L7_except_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L6_exception_handled; } goto __pyx_L7_except_error; __pyx_L7_except_error:;
4726:
+4727: for client, msgs in client_msgs.items():
__pyx_t_3 = 0;
if (unlikely(__pyx_v_client_msgs == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 4727, __pyx_L1_error)
}
__pyx_t_11 = __Pyx_dict_iterator(__pyx_v_client_msgs, 1, __pyx_n_s_items, (&__pyx_t_2), (&__pyx_t_4)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4727, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_11;
__pyx_t_11 = 0;
while (1) {
__pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_2, &__pyx_t_3, &__pyx_t_11, &__pyx_t_5, NULL, __pyx_t_4);
if (unlikely(__pyx_t_7 == 0)) break;
if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 4727, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(PyList_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(0, 4727, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_client, __pyx_t_11);
__pyx_t_11 = 0;
__Pyx_XDECREF_SET(__pyx_v_msgs, ((PyObject*)__pyx_t_5));
__pyx_t_5 = 0;
+4728: c = client_comms.get(client)
if (unlikely(__pyx_v_client_comms == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 4728, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItemDefault(__pyx_v_client_comms, __pyx_v_client, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4728, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF_SET(__pyx_v_c, __pyx_t_5);
__pyx_t_5 = 0;
+4729: if c is None:
__pyx_t_16 = (__pyx_v_c == Py_None);
__pyx_t_17 = (__pyx_t_16 != 0);
if (__pyx_t_17) {
/* … */
}
+4730: continue
goto __pyx_L15_continue;
+4731: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
goto __pyx_L25_try_end;
__pyx_L18_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_10, __pyx_t_9, __pyx_t_8);
goto __pyx_L1_error;
__pyx_L19_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_10, __pyx_t_9, __pyx_t_8);
__pyx_L25_try_end:;
}
__pyx_L15_continue:;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4732: c.send(*msgs)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_c, __pyx_n_s_send); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4732, __pyx_L18_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_11 = PySequence_Tuple(__pyx_v_msgs); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4732, __pyx_L18_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_11, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4732, __pyx_L18_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+4733: except CommClosedError:
__Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_11, &__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_CommClosedError); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4733, __pyx_L20_except_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_7 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_6, __pyx_t_15); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_ErrRestore(__pyx_t_6, __pyx_t_11, __pyx_t_5); __pyx_t_6 = 0; __pyx_t_11 = 0; __pyx_t_5 = 0; if (__pyx_t_7) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.send_all", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_6) < 0) __PYX_ERR(0, 4733, __pyx_L20_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_11); __Pyx_GOTREF(__pyx_t_6);
+4734: if self.status == Status.running:
__pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_status); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4734, __pyx_L20_except_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_Status); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4734, __pyx_L20_except_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_running); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4734, __pyx_L20_except_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyObject_RichCompare(__pyx_t_15, __pyx_t_14, Py_EQ); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4734, __pyx_L20_except_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4734, __pyx_L20_except_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (__pyx_t_17) { /* … */ } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L19_exception_handled; } goto __pyx_L20_except_error; __pyx_L20_except_error:;
+4735: logger.critical("Tried writing to closed comm: %s", msgs)
__Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_logger); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4735, __pyx_L20_except_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_critical); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4735, __pyx_L20_except_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_15)) { PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_u_Tried_writing_to_closed_comm_s, __pyx_v_msgs}; __pyx_t_12 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4735, __pyx_L20_except_error) __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_12); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) { PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_u_Tried_writing_to_closed_comm_s, __pyx_v_msgs}; __pyx_t_12 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4735, __pyx_L20_except_error) __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_12); } else #endif { __pyx_t_13 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4735, __pyx_L20_except_error) __Pyx_GOTREF(__pyx_t_13); if (__pyx_t_14) { __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_14); __pyx_t_14 = NULL; } __Pyx_INCREF(__pyx_kp_u_Tried_writing_to_closed_comm_s); __Pyx_GIVEREF(__pyx_kp_u_Tried_writing_to_closed_comm_s); PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_7, __pyx_kp_u_Tried_writing_to_closed_comm_s); __Pyx_INCREF(__pyx_v_msgs); __Pyx_GIVEREF(__pyx_v_msgs); PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_7, __pyx_v_msgs); __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_13, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4735, __pyx_L20_except_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
4736:
4737: ############################
4738: # Less common interactions #
4739: ############################
4740:
+4741: async def scatter(
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_102scatter(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_101scatter[] = "Send data out to workers\n\n See also\n --------\n Scheduler.broadcast:\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_102scatter = {"scatter", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_102scatter, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_101scatter};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_102scatter(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_data = 0;
PyObject *__pyx_v_workers = 0;
PyObject *__pyx_v_client = 0;
PyObject *__pyx_v_broadcast = 0;
PyObject *__pyx_v_timeout = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("scatter (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_data,&__pyx_n_s_workers,&__pyx_n_s_client,&__pyx_n_s_broadcast,&__pyx_n_s_timeout,0};
PyObject* values[7] = {0,0,0,0,0,0,0};
/* … */
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_101scatter(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_data, PyObject *__pyx_v_workers, PyObject *__pyx_v_client, PyObject *__pyx_v_broadcast, PyObject *__pyx_v_timeout) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_26_scatter *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("scatter", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_26_scatter *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_26_scatter(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_26_scatter, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_26_scatter *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 4741, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_comm = __pyx_v_comm;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm);
__pyx_cur_scope->__pyx_v_data = __pyx_v_data;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_data);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_data);
__pyx_cur_scope->__pyx_v_workers = __pyx_v_workers;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_workers);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_workers);
__pyx_cur_scope->__pyx_v_client = __pyx_v_client;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_client);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_client);
__pyx_cur_scope->__pyx_v_broadcast = __pyx_v_broadcast;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_broadcast);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_broadcast);
__pyx_cur_scope->__pyx_v_timeout = __pyx_v_timeout;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_timeout);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_timeout);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_103generator8, __pyx_codeobj__66, (PyObject *) __pyx_cur_scope, __pyx_n_s_scatter, __pyx_n_s_Scheduler_scatter, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 4741, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.scatter", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_103generator8(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("scatter", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4741, __pyx_L1_error)
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("scatter", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_106generator9(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__275 = PyTuple_Pack(19, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_data, __pyx_n_s_workers, __pyx_n_s_client, __pyx_n_s_broadcast, __pyx_n_s_timeout, __pyx_n_s_parent, __pyx_n_s_start, __pyx_n_s_ws, __pyx_n_s_nthreads, __pyx_n_s_keys, __pyx_n_s_who_has, __pyx_n_s_nbytes, __pyx_n_s_n, __pyx_n_s_w, __pyx_n_s_ws, __pyx_n_s_w, __pyx_n_s_w); if (unlikely(!__pyx_tuple__275)) __PYX_ERR(0, 4741, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__275);
__Pyx_GIVEREF(__pyx_tuple__275);
__pyx_codeobj__66 = (PyObject*)__Pyx_PyCode_New(7, 0, 19, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__275, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_scatter, 4741, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__66)) __PYX_ERR(0, 4741, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_102scatter, 0, __pyx_n_s_Scheduler_scatter, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4741, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__276);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_scatter, __pyx_t_12) < 0) __PYX_ERR(0, 4741, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__276 = PyTuple_Pack(6, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_False), ((PyObject *)__pyx_int_2)); if (unlikely(!__pyx_tuple__276)) __PYX_ERR(0, 4741, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__276);
__Pyx_GIVEREF(__pyx_tuple__276);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_26_scatter {
PyObject_HEAD
PyObject *__pyx_v_broadcast;
PyObject *__pyx_v_client;
PyObject *__pyx_v_comm;
PyObject *__pyx_v_data;
PyObject *__pyx_v_keys;
PyObject *__pyx_v_n;
PyObject *__pyx_v_nbytes;
PyObject *__pyx_v_nthreads;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent;
PyObject *__pyx_v_self;
PyObject *__pyx_v_start;
PyObject *__pyx_v_timeout;
PyObject *__pyx_9genexpr55__pyx_v_w;
PyObject *__pyx_9genexpr56__pyx_v_w;
PyObject *__pyx_9genexpr57__pyx_v_w;
PyObject *__pyx_v_who_has;
PyObject *__pyx_v_workers;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_9genexpr55__pyx_v_ws;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws;
};
4742: self,
+4743: comm=None,
values[1] = ((PyObject *)((PyObject *)Py_None));
+4744: data=None,
values[2] = ((PyObject *)((PyObject *)Py_None));
+4745: workers=None,
values[3] = ((PyObject *)((PyObject *)Py_None));
+4746: client=None,
values[4] = ((PyObject *)((PyObject *)Py_None));
+4747: broadcast=False,
values[5] = ((PyObject *)((PyObject *)Py_False));
values[6] = ((PyObject *)((PyObject *)__pyx_int_2));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_workers);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_client);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_broadcast);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeout);
if (value) { values[6] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scatter") < 0)) __PYX_ERR(0, 4741, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_data = values[2];
__pyx_v_workers = values[3];
__pyx_v_client = values[4];
__pyx_v_broadcast = values[5];
__pyx_v_timeout = values[6];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("scatter", 0, 1, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4741, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.scatter", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_101scatter(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_data, __pyx_v_workers, __pyx_v_client, __pyx_v_broadcast, __pyx_v_timeout);
4748: timeout=2,
4749: ):
4750: """Send data out to workers
4751:
4752: See also
4753: --------
4754: Scheduler.broadcast:
4755: """
+4756: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_cur_scope->__pyx_v_self; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1); __pyx_t_1 = 0;
+4757: start = time()
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_time); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_start = __pyx_t_1; __pyx_t_1 = 0;
+4758: while not parent._workers_dv:
while (1) {
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_parent->_workers_dv); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4758, __pyx_L1_error)
__pyx_t_5 = ((!__pyx_t_4) != 0);
if (!__pyx_t_5) break;
+4759: await asyncio.sleep(0.2)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_sleep); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_float_0_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_float_0_2); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L6_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4759, __pyx_L1_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 4759, __pyx_L1_error) } }
+4760: if time() > start + timeout:
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_time); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Add(__pyx_cur_scope->__pyx_v_start, __pyx_cur_scope->__pyx_v_timeout); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4760, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4760, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(__pyx_t_5)) { /* … */ } }
+4761: raise TimeoutError("No workers found")
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TimeoutError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_kp_u_No_workers_found) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_u_No_workers_found); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 4761, __pyx_L1_error)
4762:
+4763: if workers is None:
__pyx_t_5 = (__pyx_cur_scope->__pyx_v_workers == Py_None);
__pyx_t_4 = (__pyx_t_5 != 0);
if (__pyx_t_4) {
/* … */
goto __pyx_L8;
}
4764: ws: WorkerState
+4765: nthreads = {w: ws._nthreads for w, ws in parent._workers_dv.items()}
{ /* enter inner scope */
__pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4765, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_6 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 4765, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_parent->_workers_dv, 1, __pyx_n_s_items, (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4765, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__pyx_t_3 = __pyx_t_1;
__pyx_t_1 = 0;
while (1) {
__pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_3, __pyx_t_7, &__pyx_t_6, &__pyx_t_1, &__pyx_t_9, NULL, __pyx_t_8);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 4765, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_t_9);
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 4765, __pyx_L1_error)
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr55__pyx_v_w);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr55__pyx_v_w, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_9genexpr55__pyx_v_ws));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr55__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_9));
__Pyx_GIVEREF(__pyx_t_9);
__pyx_t_9 = 0;
__pyx_t_9 = PyInt_FromSsize_t(__pyx_cur_scope->__pyx_9genexpr55__pyx_v_ws->_nthreads); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4765, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (unlikely(PyDict_SetItem(__pyx_t_2, (PyObject*)__pyx_cur_scope->__pyx_9genexpr55__pyx_v_w, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 4765, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_2);
__pyx_cur_scope->__pyx_v_nthreads = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
4766: else:
+4767: workers = [self.coerce_address(w) for w in workers]
/*else*/ {
{ /* enter inner scope */
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4767, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_workers)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_workers)) {
__pyx_t_3 = __pyx_cur_scope->__pyx_v_workers; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0;
__pyx_t_11 = NULL;
} else {
__pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_workers); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4767, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_11 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4767, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_11)) {
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 4767, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4767, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
} else {
if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 4767, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4767, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
}
} else {
__pyx_t_9 = __pyx_t_11(__pyx_t_3);
if (unlikely(!__pyx_t_9)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 4767, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_9);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr56__pyx_v_w);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr56__pyx_v_w, __pyx_t_9);
__Pyx_GIVEREF(__pyx_t_9);
__pyx_t_9 = 0;
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_coerce_address); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4767, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_12 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1);
if (likely(__pyx_t_12)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_1, function);
}
}
__pyx_t_9 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_12, __pyx_cur_scope->__pyx_9genexpr56__pyx_v_w) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_cur_scope->__pyx_9genexpr56__pyx_v_w);
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4767, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 4767, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} /* exit inner scope */
__Pyx_GOTREF(__pyx_cur_scope->__pyx_v_workers);
__Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_workers, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
+4768: nthreads = {w: parent._workers_dv[w].nthreads for w in workers}
{ /* enter inner scope */
__pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4768, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_workers)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_workers)) {
__pyx_t_3 = __pyx_cur_scope->__pyx_v_workers; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0;
__pyx_t_11 = NULL;
} else {
__pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_workers); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4768, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_11 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4768, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_11)) {
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 4768, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4768, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
} else {
if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 4768, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4768, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
}
} else {
__pyx_t_9 = __pyx_t_11(__pyx_t_3);
if (unlikely(!__pyx_t_9)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 4768, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_9);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr57__pyx_v_w);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr57__pyx_v_w, __pyx_t_9);
__Pyx_GIVEREF(__pyx_t_9);
__pyx_t_9 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4768, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_parent->_workers_dv, __pyx_cur_scope->__pyx_9genexpr57__pyx_v_w); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4768, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_nthreads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4768, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(PyDict_SetItem(__pyx_t_2, (PyObject*)__pyx_cur_scope->__pyx_9genexpr57__pyx_v_w, (PyObject*)__pyx_t_1))) __PYX_ERR(0, 4768, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_2);
__pyx_cur_scope->__pyx_v_nthreads = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
}
__pyx_L8:;
4769:
+4770: assert isinstance(data, dict)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_4 = PyDict_Check(__pyx_cur_scope->__pyx_v_data);
if (unlikely(!(__pyx_t_4 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 4770, __pyx_L1_error)
}
}
#endif
4771:
+4772: keys, who_has, nbytes = await scatter_to_workers(
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_scatter_to_workers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); /* … */ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_nthreads); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_nthreads); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_cur_scope->__pyx_v_nthreads); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_data); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_data); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_cur_scope->__pyx_v_data); /* … */ __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L15_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4772, __pyx_L1_error) __pyx_t_9 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_9); } else { __pyx_t_9 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_9) < 0) __PYX_ERR(0, 4772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } if ((likely(PyTuple_CheckExact(__pyx_t_9))) || (PyList_CheckExact(__pyx_t_9))) { PyObject* sequence = __pyx_t_9; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 4772, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); } else { __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_3 = PyList_GET_ITEM(sequence, 1); __pyx_t_2 = PyList_GET_ITEM(sequence, 2); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); #else __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { Py_ssize_t index = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_12)->tp_iternext; index = 0; __pyx_t_1 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_1)) goto __pyx_L16_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); index = 1; __pyx_t_3 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_3)) goto __pyx_L16_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); index = 2; __pyx_t_2 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_2)) goto __pyx_L16_unpacking_failed; __Pyx_GOTREF(__pyx_t_2); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_12), 3) < 0) __PYX_ERR(0, 4772, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; goto __pyx_L17_unpacking_done; __pyx_L16_unpacking_failed:; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 4772, __pyx_L1_error) __pyx_L17_unpacking_done:; } __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_keys = __pyx_t_1; __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_v_who_has = __pyx_t_3; __pyx_t_3 = 0; __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_nbytes = __pyx_t_2; __pyx_t_2 = 0;
+4773: nthreads, data, rpc=self.rpc, report=False
__pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_rpc); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_rpc, __pyx_t_9) < 0) __PYX_ERR(0, 4773, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_report, Py_False) < 0) __PYX_ERR(0, 4773, __pyx_L1_error)
4774: )
4775:
+4776: self.update_data(who_has=who_has, nbytes=nbytes, client=client)
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_update_data_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_who_has, __pyx_cur_scope->__pyx_v_who_has) < 0) __PYX_ERR(0, 4776, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_nbytes, __pyx_cur_scope->__pyx_v_nbytes) < 0) __PYX_ERR(0, 4776, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_client, __pyx_cur_scope->__pyx_v_client) < 0) __PYX_ERR(0, 4776, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4777:
+4778: if broadcast:
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_broadcast); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4778, __pyx_L1_error) if (__pyx_t_4) { /* … */ }
+4779: if broadcast == True: # noqa: E712
__pyx_t_3 = PyObject_RichCompare(__pyx_cur_scope->__pyx_v_broadcast, Py_True, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4779, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4779, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { /* … */ goto __pyx_L19; }
+4780: n = len(nthreads)
__pyx_t_7 = PyDict_Size(__pyx_cur_scope->__pyx_v_nthreads); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4780, __pyx_L1_error) __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_v_n = __pyx_t_3; __pyx_t_3 = 0;
4781: else:
+4782: n = broadcast
/*else*/ {
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_broadcast);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_broadcast);
__pyx_cur_scope->__pyx_v_n = __pyx_cur_scope->__pyx_v_broadcast;
}
__pyx_L19:;
+4783: await self.replicate(keys=keys, workers=workers, n=n)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_replicate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4783, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4783, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_keys, __pyx_cur_scope->__pyx_v_keys) < 0) __PYX_ERR(0, 4783, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_workers, __pyx_cur_scope->__pyx_v_workers) < 0) __PYX_ERR(0, 4783, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_n, __pyx_cur_scope->__pyx_v_n) < 0) __PYX_ERR(0, 4783, __pyx_L1_error) __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4783, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 3; return __pyx_r; __pyx_L20_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4783, __pyx_L1_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 4783, __pyx_L1_error) } }
4784:
+4785: self.log_event(
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_log_event_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+4786: [client, "all"], {"action": "scatter", "client": client, "count": len(data)}
__pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_client); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_client); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_cur_scope->__pyx_v_client); __Pyx_INCREF(__pyx_n_u_all); __Pyx_GIVEREF(__pyx_n_u_all); PyList_SET_ITEM(__pyx_t_3, 1, __pyx_n_u_all); __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_action, __pyx_n_u_scatter) < 0) __PYX_ERR(0, 4786, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_client, __pyx_cur_scope->__pyx_v_client) < 0) __PYX_ERR(0, 4786, __pyx_L1_error) __pyx_t_7 = PyObject_Length(__pyx_cur_scope->__pyx_v_data); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4786, __pyx_L1_error) __pyx_t_12 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_count, __pyx_t_12) < 0) __PYX_ERR(0, 4786, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_t_3, __pyx_t_1}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4785, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_t_3, __pyx_t_1}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4785, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { __pyx_t_14 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_1); __pyx_t_3 = 0; __pyx_t_1 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_14, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
4787: )
+4788: return keys
__Pyx_XDECREF(__pyx_r); __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_cur_scope->__pyx_v_keys); goto __pyx_L0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
4789:
+4790: async def gather(self, comm=None, keys=None, serializers=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_105gather(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_104gather[] = " Collect data in from workers ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_105gather = {"gather", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_105gather, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_104gather};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_105gather(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_keys = 0;
PyObject *__pyx_v_serializers = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("gather (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_keys,&__pyx_n_s_serializers,0};
PyObject* values[4] = {0,0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keys);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_serializers);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "gather") < 0)) __PYX_ERR(0, 4790, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_keys = values[2];
__pyx_v_serializers = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("gather", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4790, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.gather", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_104gather(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_keys, __pyx_v_serializers);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_104gather(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_keys, PyObject *__pyx_v_serializers) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_27_gather *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("gather", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_27_gather *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_27_gather(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_27_gather, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_27_gather *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 4790, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_comm = __pyx_v_comm;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm);
__pyx_cur_scope->__pyx_v_keys = __pyx_v_keys;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_keys);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_keys);
__pyx_cur_scope->__pyx_v_serializers = __pyx_v_serializers;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_serializers);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_serializers);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_106generator9, __pyx_codeobj__67, (PyObject *) __pyx_cur_scope, __pyx_n_s_gather, __pyx_n_s_Scheduler_gather, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 4790, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.gather", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_106generator9(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("gather", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4790, __pyx_L1_error)
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_19);
__Pyx_XDECREF(__pyx_t_20);
__Pyx_AddTraceback("gather", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__277 = PyTuple_Pack(19, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_keys, __pyx_n_s_serializers, __pyx_n_s_parent, __pyx_n_s_ws, __pyx_n_s_who_has, __pyx_n_s_key, __pyx_n_s_ts, __pyx_n_s_data, __pyx_n_s_missing_keys, __pyx_n_s_missing_workers, __pyx_n_s_result, __pyx_n_s_missing_states, __pyx_n_s_workers, __pyx_n_s_worker, __pyx_n_s_ws, __pyx_n_s_key, __pyx_n_s_worker); if (unlikely(!__pyx_tuple__277)) __PYX_ERR(0, 4790, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__277);
__Pyx_GIVEREF(__pyx_tuple__277);
__pyx_codeobj__67 = (PyObject*)__Pyx_PyCode_New(4, 0, 19, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__277, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_gather, 4790, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__67)) __PYX_ERR(0, 4790, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_105gather, 0, __pyx_n_s_Scheduler_gather, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__67)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4790, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__278);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_gather, __pyx_t_12) < 0) __PYX_ERR(0, 4790, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__278 = PyTuple_Pack(3, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__278)) __PYX_ERR(0, 4790, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__278);
__Pyx_GIVEREF(__pyx_tuple__278);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_27_gather {
PyObject_HEAD
PyObject *__pyx_v_comm;
PyObject *__pyx_v_data;
PyObject *__pyx_9genexpr59__pyx_v_key;
PyObject *__pyx_v_key;
PyObject *__pyx_v_keys;
PyObject *__pyx_v_missing_keys;
PyObject *__pyx_v_missing_states;
PyObject *__pyx_v_missing_workers;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent;
PyObject *__pyx_v_result;
PyObject *__pyx_v_self;
PyObject *__pyx_v_serializers;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts;
PyObject *__pyx_v_who_has;
PyObject *__pyx_9genexpr60__pyx_v_worker;
PyObject *__pyx_v_worker;
PyObject *__pyx_v_workers;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_9genexpr58__pyx_v_ws;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws;
PyObject *__pyx_t_0;
PyObject *__pyx_t_1;
PyObject *__pyx_t_2;
PyObject *__pyx_t_3;
};
4791: """ Collect data in from workers """
+4792: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_cur_scope->__pyx_v_self; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1); __pyx_t_1 = 0;
4793: ws: WorkerState
+4794: keys = list(keys)
__pyx_t_1 = PySequence_List(__pyx_cur_scope->__pyx_v_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_keys); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_keys, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0;
+4795: who_has = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_who_has = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+4796: for key in keys:
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_keys)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_keys)) { __pyx_t_1 = __pyx_cur_scope->__pyx_v_keys; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = NULL; } else { __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4796, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_3)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4796, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4796, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } } else { __pyx_t_4 = __pyx_t_3(__pyx_t_1); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 4796, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_4); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_key); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_key, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4797: ts: TaskState = parent._tasks.get(key)
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 4797, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItemDefault(__pyx_cur_scope->__pyx_v_parent->_tasks, __pyx_cur_scope->__pyx_v_key, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4797, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4797, __pyx_L1_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_ts));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4));
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
+4798: if ts is not None:
__pyx_t_5 = (((PyObject *)__pyx_cur_scope->__pyx_v_ts) != Py_None);
__pyx_t_6 = (__pyx_t_5 != 0);
if (__pyx_t_6) {
/* … */
goto __pyx_L6;
}
+4799: who_has[key] = [ws._address for ws in ts._who_has]
{ /* enter inner scope */
__pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4799, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_8 = 0;
__pyx_t_11 = __Pyx_set_iterator(__pyx_cur_scope->__pyx_v_ts->_who_has, 1, (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4799, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_7);
__pyx_t_7 = __pyx_t_11;
__pyx_t_11 = 0;
while (1) {
__pyx_t_12 = __Pyx_set_iter_next(__pyx_t_7, __pyx_t_9, &__pyx_t_8, &__pyx_t_11, __pyx_t_10);
if (unlikely(__pyx_t_12 == 0)) break;
if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 4799, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
if (!(likely(((__pyx_t_11) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_11, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 4799, __pyx_L1_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_9genexpr58__pyx_v_ws));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr58__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_11));
__Pyx_GIVEREF(__pyx_t_11);
__pyx_t_11 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_cur_scope->__pyx_9genexpr58__pyx_v_ws->_address))) __PYX_ERR(0, 4799, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
} /* exit inner scope */
if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_who_has, __pyx_cur_scope->__pyx_v_key, __pyx_t_4) < 0)) __PYX_ERR(0, 4799, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4800: else:
+4801: who_has[key] = []
/*else*/ {
__pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4801, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_who_has, __pyx_cur_scope->__pyx_v_key, __pyx_t_4) < 0)) __PYX_ERR(0, 4801, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
__pyx_L6:;
4802:
+4803: data, missing_keys, missing_workers = await gather_from_workers(
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_gather_from_workers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_who_has); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_who_has); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_cur_scope->__pyx_v_who_has); /* … */ __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L9_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4803, __pyx_L1_error) __pyx_t_11 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_11); } else { __pyx_t_11 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_11) < 0) __PYX_ERR(0, 4803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } if ((likely(PyTuple_CheckExact(__pyx_t_11))) || (PyList_CheckExact(__pyx_t_11))) { PyObject* sequence = __pyx_t_11; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 4803, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 2); } else { __pyx_t_7 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); __pyx_t_1 = PyList_GET_ITEM(sequence, 2); } __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); #else __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else { Py_ssize_t index = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_14 = Py_TYPE(__pyx_t_13)->tp_iternext; index = 0; __pyx_t_7 = __pyx_t_14(__pyx_t_13); if (unlikely(!__pyx_t_7)) goto __pyx_L10_unpacking_failed; __Pyx_GOTREF(__pyx_t_7); index = 1; __pyx_t_4 = __pyx_t_14(__pyx_t_13); if (unlikely(!__pyx_t_4)) goto __pyx_L10_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); index = 2; __pyx_t_1 = __pyx_t_14(__pyx_t_13); if (unlikely(!__pyx_t_1)) goto __pyx_L10_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_13), 3) < 0) __PYX_ERR(0, 4803, __pyx_L1_error) __pyx_t_14 = NULL; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; goto __pyx_L11_unpacking_done; __pyx_L10_unpacking_failed:; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_14 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 4803, __pyx_L1_error) __pyx_L11_unpacking_done:; } __Pyx_GIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_v_data = __pyx_t_7; __pyx_t_7 = 0; __Pyx_GIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_v_missing_keys = __pyx_t_4; __pyx_t_4 = 0; __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_missing_workers = __pyx_t_1; __pyx_t_1 = 0;
+4804: who_has, rpc=self.rpc, close=False, serializers=serializers
__pyx_t_7 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_rpc); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_rpc, __pyx_t_11) < 0) __PYX_ERR(0, 4804, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_close, Py_False) < 0) __PYX_ERR(0, 4804, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_serializers, __pyx_cur_scope->__pyx_v_serializers) < 0) __PYX_ERR(0, 4804, __pyx_L1_error)
4805: )
+4806: if not missing_keys:
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_missing_keys); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4806, __pyx_L1_error) __pyx_t_5 = ((!__pyx_t_6) != 0); if (__pyx_t_5) { /* … */ goto __pyx_L12; }
+4807: result = {"status": "OK", "data": data}
__pyx_t_11 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (PyDict_SetItem(__pyx_t_11, __pyx_n_u_status, __pyx_n_u_OK) < 0) __PYX_ERR(0, 4807, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_11, __pyx_n_u_data, __pyx_cur_scope->__pyx_v_data) < 0) __PYX_ERR(0, 4807, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_v_result = ((PyObject*)__pyx_t_11); __pyx_t_11 = 0;
4808: else:
+4809: missing_states = [
/*else*/ {
{ /* enter inner scope */
__pyx_t_11 = PyList_New(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4809, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
+4810: (parent._tasks[key].state if key in parent._tasks else None)
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4810, __pyx_L1_error)
}
__pyx_t_5 = (__Pyx_PyDict_ContainsTF(__pyx_cur_scope->__pyx_9genexpr59__pyx_v_key, __pyx_cur_scope->__pyx_v_parent->_tasks, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4810, __pyx_L1_error)
if ((__pyx_t_5 != 0)) {
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4810, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_parent->_tasks, __pyx_cur_scope->__pyx_9genexpr59__pyx_v_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4810, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_state); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4810, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_4 = __pyx_t_13;
__pyx_t_13 = 0;
} else {
__Pyx_INCREF(Py_None);
__pyx_t_4 = Py_None;
}
if (unlikely(__Pyx_ListComp_Append(__pyx_t_11, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 4809, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+4811: for key in missing_keys
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_missing_keys)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_missing_keys)) { __pyx_t_1 = __pyx_cur_scope->__pyx_v_missing_keys; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = NULL; } else { __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_missing_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4811, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_3)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4811, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4811, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } } else { __pyx_t_4 = __pyx_t_3(__pyx_t_1); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 4811, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_4); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr59__pyx_v_key); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr59__pyx_v_key, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* exit inner scope */ __Pyx_GIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_v_missing_states = ((PyObject*)__pyx_t_11); __pyx_t_11 = 0;
4812: ]
+4813: logger.exception(
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_logger); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_exception); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4814: "Couldn't gather keys %s state: %s workers: %s",
4815: missing_keys,
4816: missing_states,
+4817: missing_workers,
__pyx_t_1 = NULL;
__pyx_t_10 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
__pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
if (likely(__pyx_t_1)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_4, function);
__pyx_t_10 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_kp_u_Couldn_t_gather_keys_s_state_s_w, __pyx_cur_scope->__pyx_v_missing_keys, __pyx_cur_scope->__pyx_v_missing_states, __pyx_cur_scope->__pyx_v_missing_workers};
__pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_10, 4+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4813, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_GOTREF(__pyx_t_11);
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_kp_u_Couldn_t_gather_keys_s_state_s_w, __pyx_cur_scope->__pyx_v_missing_keys, __pyx_cur_scope->__pyx_v_missing_states, __pyx_cur_scope->__pyx_v_missing_workers};
__pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_10, 4+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4813, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_GOTREF(__pyx_t_11);
} else
#endif
{
__pyx_t_13 = PyTuple_New(4+__pyx_t_10); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4813, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (__pyx_t_1) {
__Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_1); __pyx_t_1 = NULL;
}
__Pyx_INCREF(__pyx_kp_u_Couldn_t_gather_keys_s_state_s_w);
__Pyx_GIVEREF(__pyx_kp_u_Couldn_t_gather_keys_s_state_s_w);
PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_10, __pyx_kp_u_Couldn_t_gather_keys_s_state_s_w);
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_missing_keys);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_missing_keys);
PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_10, __pyx_cur_scope->__pyx_v_missing_keys);
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_missing_states);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_missing_states);
PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_10, __pyx_cur_scope->__pyx_v_missing_states);
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_missing_workers);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_missing_workers);
PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_10, __pyx_cur_scope->__pyx_v_missing_workers);
__pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_13, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4813, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
4818: )
+4819: result = {"status": "error", "keys": missing_keys}
__pyx_t_11 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (PyDict_SetItem(__pyx_t_11, __pyx_n_u_status, __pyx_n_u_error) < 0) __PYX_ERR(0, 4819, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_11, __pyx_n_u_keys, __pyx_cur_scope->__pyx_v_missing_keys) < 0) __PYX_ERR(0, 4819, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_v_result = ((PyObject*)__pyx_t_11); __pyx_t_11 = 0;
+4820: with log_errors():
/*with:*/ {
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_log_errors); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4820, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_13 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
__pyx_t_13 = PyMethod_GET_SELF(__pyx_t_4);
if (likely(__pyx_t_13)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
__Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_4, function);
}
}
__pyx_t_11 = (__pyx_t_13) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_13) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4820, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_15 = __Pyx_PyObject_LookupSpecial(__pyx_t_11, __pyx_n_s_exit); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4820, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_13 = __Pyx_PyObject_LookupSpecial(__pyx_t_11, __pyx_n_s_enter); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4820, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_1 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_1 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_1)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4820, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
/*try:*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
goto __pyx_L24_try_end;
__pyx_L19_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.gather", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_4, &__pyx_t_19) < 0) __PYX_ERR(0, 4820, __pyx_L21_except_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_20 = PyTuple_Pack(3, __pyx_t_11, __pyx_t_4, __pyx_t_19); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4820, __pyx_L21_except_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_24 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_20, NULL);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4820, __pyx_L21_except_error)
__Pyx_GOTREF(__pyx_t_24);
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_24);
__Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
if (__pyx_t_5 < 0) __PYX_ERR(0, 4820, __pyx_L21_except_error)
__pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
if (__pyx_t_6) {
__Pyx_GIVEREF(__pyx_t_11);
__Pyx_GIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_ErrRestoreWithState(__pyx_t_11, __pyx_t_4, __pyx_t_19);
__pyx_t_11 = 0; __pyx_t_4 = 0; __pyx_t_19 = 0;
__PYX_ERR(0, 4820, __pyx_L21_except_error)
}
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
goto __pyx_L20_exception_handled;
}
__pyx_L21_except_error:;
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18);
goto __pyx_L1_error;
__pyx_L20_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18);
__pyx_L24_try_end:;
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_15) {
__pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4820, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
}
goto __pyx_L18;
}
__pyx_L18:;
}
goto __pyx_L41;
__pyx_L15_error:;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
goto __pyx_L1_error;
__pyx_L41:;
}
}
__pyx_L12:;
4821: # Remove suspicious workers from the scheduler but allow them to
4822: # reconnect.
+4823: await asyncio.gather(
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4823, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_gather); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4823, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; { /* enter inner scope */ /* … */ __pyx_t_13 = PySequence_Tuple(__pyx_t_11); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4823, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_13, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4823, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_15); __pyx_cur_scope->__pyx_t_0 = __pyx_t_15; __Pyx_XGIVEREF(__pyx_t_16); __pyx_cur_scope->__pyx_t_1 = __pyx_t_16; __Pyx_XGIVEREF(__pyx_t_17); __pyx_cur_scope->__pyx_t_2 = __pyx_t_17; __Pyx_XGIVEREF(__pyx_t_18); __pyx_cur_scope->__pyx_t_3 = __pyx_t_18; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L27_resume_from_await:; __pyx_t_15 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_15); __pyx_t_16 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_16); __pyx_t_17 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_17); __pyx_t_18 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4823, __pyx_L19_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 4823, __pyx_L19_error) } }
+4824: *[
__pyx_t_11 = PyList_New(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4824, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_11);
+4825: self.remove_worker(address=worker, close=False)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_remove_worker); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4825, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4825, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_address, __pyx_cur_scope->__pyx_9genexpr60__pyx_v_worker) < 0) __PYX_ERR(0, 4825, __pyx_L19_error) if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_close, Py_False) < 0) __PYX_ERR(0, 4825, __pyx_L19_error) __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_7); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4825, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_11, (PyObject*)__pyx_t_19))) __PYX_ERR(0, 4824, __pyx_L19_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+4826: for worker in missing_workers
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_missing_workers)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_missing_workers)) { __pyx_t_13 = __pyx_cur_scope->__pyx_v_missing_workers; __Pyx_INCREF(__pyx_t_13); __pyx_t_2 = 0; __pyx_t_3 = NULL; } else { __pyx_t_2 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_missing_workers); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4826, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_3 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4826, __pyx_L19_error) } for (;;) { if (likely(!__pyx_t_3)) { if (likely(PyList_CheckExact(__pyx_t_13))) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_13)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4826, __pyx_L19_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4826, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_13)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4826, __pyx_L19_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4826, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_3(__pyx_t_13); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 4826, __pyx_L19_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr60__pyx_v_worker); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr60__pyx_v_worker, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } /* exit inner scope */
4827: ]
4828: )
+4829: for key, workers in missing_keys.items():
__pyx_t_2 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_missing_keys == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 4829, __pyx_L19_error)
}
__pyx_t_13 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_missing_keys, 0, __pyx_n_s_items, (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4829, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_11);
__pyx_t_11 = __pyx_t_13;
__pyx_t_13 = 0;
while (1) {
__pyx_t_12 = __Pyx_dict_iter_next(__pyx_t_11, __pyx_t_9, &__pyx_t_2, &__pyx_t_13, &__pyx_t_4, NULL, __pyx_t_10);
if (unlikely(__pyx_t_12 == 0)) break;
if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 4829, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_key);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_key, __pyx_t_13);
__Pyx_GIVEREF(__pyx_t_13);
__pyx_t_13 = 0;
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_workers);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_workers, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
4830: # Task may already be gone if it was held by a
4831: # `missing_worker`
+4832: ts: TaskState = parent._tasks.get(key)
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 4832, __pyx_L19_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItemDefault(__pyx_cur_scope->__pyx_v_parent->_tasks, __pyx_cur_scope->__pyx_v_key, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4832, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4832, __pyx_L19_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_ts));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4));
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
+4833: logger.exception(
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_logger); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4833, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_exception); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4833, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
4834: "Workers don't have promised key: %s, %s",
+4835: str(workers),
__pyx_t_13 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_cur_scope->__pyx_v_workers); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4835, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_13);
+4836: str(key),
__pyx_t_7 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_cur_scope->__pyx_v_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4836, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = NULL; __pyx_t_12 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_19))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_19); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_19, function); __pyx_t_12 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_19)) { PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_kp_u_Workers_don_t_have_promised_key, __pyx_t_13, __pyx_t_7}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4833, __pyx_L19_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) { PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_kp_u_Workers_don_t_have_promised_key, __pyx_t_13, __pyx_t_7}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4833, __pyx_L19_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_20 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4833, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_20); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_kp_u_Workers_don_t_have_promised_key); __Pyx_GIVEREF(__pyx_kp_u_Workers_don_t_have_promised_key); PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_12, __pyx_kp_u_Workers_don_t_have_promised_key); __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_12, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_20, 2+__pyx_t_12, __pyx_t_7); __pyx_t_13 = 0; __pyx_t_7 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_20, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4833, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4837: )
+4838: if not workers or ts is None:
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_workers); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4838, __pyx_L19_error) __pyx_t_21 = ((!__pyx_t_6) != 0); if (!__pyx_t_21) { } else { __pyx_t_5 = __pyx_t_21; goto __pyx_L31_bool_binop_done; } __pyx_t_21 = (((PyObject *)__pyx_cur_scope->__pyx_v_ts) == Py_None); __pyx_t_6 = (__pyx_t_21 != 0); __pyx_t_5 = __pyx_t_6; __pyx_L31_bool_binop_done:; if (__pyx_t_5) { /* … */ }
+4839: continue
goto __pyx_L28_continue;
+4840: for worker in workers:
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_workers)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_workers)) { __pyx_t_4 = __pyx_cur_scope->__pyx_v_workers; __Pyx_INCREF(__pyx_t_4); __pyx_t_8 = 0; __pyx_t_3 = NULL; } else { __pyx_t_8 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_workers); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4840, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4840, __pyx_L19_error) } for (;;) { if (likely(!__pyx_t_3)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_19 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_19); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 4840, __pyx_L19_error) #else __pyx_t_19 = PySequence_ITEM(__pyx_t_4, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4840, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_19); #endif } else { if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_19 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_19); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 4840, __pyx_L19_error) #else __pyx_t_19 = PySequence_ITEM(__pyx_t_4, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4840, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_19); #endif } } else { __pyx_t_19 = __pyx_t_3(__pyx_t_4); if (unlikely(!__pyx_t_19)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 4840, __pyx_L19_error) } break; } __Pyx_GOTREF(__pyx_t_19); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_worker); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_worker, __pyx_t_19); __Pyx_GIVEREF(__pyx_t_19); __pyx_t_19 = 0; /* … */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_L28_continue:; } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+4841: ws = parent._workers_dv.get(worker)
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 4841, __pyx_L19_error)
}
__pyx_t_19 = __Pyx_PyDict_GetItemDefault(__pyx_cur_scope->__pyx_v_parent->_workers_dv, __pyx_cur_scope->__pyx_v_worker, Py_None); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4841, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_19);
if (!(likely(((__pyx_t_19) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_19, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 4841, __pyx_L19_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_ws));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_19));
__Pyx_GIVEREF(__pyx_t_19);
__pyx_t_19 = 0;
+4842: if ws is not None and ts in ws._has_what:
__pyx_t_6 = (((PyObject *)__pyx_cur_scope->__pyx_v_ws) != Py_None);
__pyx_t_21 = (__pyx_t_6 != 0);
if (__pyx_t_21) {
} else {
__pyx_t_5 = __pyx_t_21;
goto __pyx_L36_bool_binop_done;
}
if (unlikely(__pyx_cur_scope->__pyx_v_ws->_has_what == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 4842, __pyx_L19_error)
}
__pyx_t_21 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_cur_scope->__pyx_v_ts), __pyx_cur_scope->__pyx_v_ws->_has_what, Py_EQ)); if (unlikely(__pyx_t_21 < 0)) __PYX_ERR(0, 4842, __pyx_L19_error)
__pyx_t_6 = (__pyx_t_21 != 0);
__pyx_t_5 = __pyx_t_6;
__pyx_L36_bool_binop_done:;
if (__pyx_t_5) {
/* … */
}
+4843: ws._has_what.remove(ts)
if (unlikely(__pyx_cur_scope->__pyx_v_ws->_has_what == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
__PYX_ERR(0, 4843, __pyx_L19_error)
}
__pyx_t_22 = __Pyx_PySet_Remove(__pyx_cur_scope->__pyx_v_ws->_has_what, ((PyObject *)__pyx_cur_scope->__pyx_v_ts)); if (unlikely(__pyx_t_22 == ((int)-1))) __PYX_ERR(0, 4843, __pyx_L19_error)
+4844: ts._who_has.remove(ws)
if (unlikely(__pyx_cur_scope->__pyx_v_ts->_who_has == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
__PYX_ERR(0, 4844, __pyx_L19_error)
}
__pyx_t_22 = __Pyx_PySet_Remove(__pyx_cur_scope->__pyx_v_ts->_who_has, ((PyObject *)__pyx_cur_scope->__pyx_v_ws)); if (unlikely(__pyx_t_22 == ((int)-1))) __PYX_ERR(0, 4844, __pyx_L19_error)
+4845: ws._nbytes -= ts.get_nbytes()
__pyx_t_23 = __pyx_f_11distributed_9scheduler_9TaskState_get_nbytes(__pyx_cur_scope->__pyx_v_ts, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4845, __pyx_L19_error)
__pyx_cur_scope->__pyx_v_ws->_nbytes = (__pyx_cur_scope->__pyx_v_ws->_nbytes - __pyx_t_23);
+4846: self.transitions({key: "released"})
__pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_transitions_2); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4846, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4846, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_cur_scope->__pyx_v_key, __pyx_n_u_released) < 0) __PYX_ERR(0, 4846, __pyx_L19_error) __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_20))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_20); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_20, function); } } __pyx_t_19 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_20, __pyx_t_13, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_20, __pyx_t_7); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4846, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
4847:
+4848: self.log_event("all", {"action": "gather", "count": len(keys)})
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_log_event_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (PyDict_SetItem(__pyx_t_11, __pyx_n_u_action, __pyx_n_u_gather) < 0) __PYX_ERR(0, 4848, __pyx_L1_error) __pyx_t_9 = PyObject_Length(__pyx_cur_scope->__pyx_v_keys); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4848, __pyx_L1_error) __pyx_t_20 = PyInt_FromSsize_t(__pyx_t_9); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); if (PyDict_SetItem(__pyx_t_11, __pyx_n_u_count, __pyx_t_20) < 0) __PYX_ERR(0, 4848, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_20 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_20)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_20, __pyx_n_u_all, __pyx_t_11}; __pyx_t_19 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4848, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_20, __pyx_n_u_all, __pyx_t_11}; __pyx_t_19 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4848, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif { __pyx_t_7 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_20) { __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_20); __pyx_t_20 = NULL; } __Pyx_INCREF(__pyx_n_u_all); __Pyx_GIVEREF(__pyx_n_u_all); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_10, __pyx_n_u_all); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_10, __pyx_t_11); __pyx_t_11 = 0; __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+4849: return result
__Pyx_XDECREF(__pyx_r); __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_cur_scope->__pyx_v_result); goto __pyx_L0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
4850:
+4851: def clear_task_state(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_108clear_task_state(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_108clear_task_state = {"clear_task_state", (PyCFunction)__pyx_pw_11distributed_9scheduler_9Scheduler_108clear_task_state, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_108clear_task_state(PyObject *__pyx_self, PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("clear_task_state (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_107clear_task_state(__pyx_self, ((PyObject *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_107clear_task_state(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
PyObject *__pyx_v_collection = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("clear_task_state", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.clear_task_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_collection);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_111generator10(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__279 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_collection); if (unlikely(!__pyx_tuple__279)) __PYX_ERR(0, 4851, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__279);
__Pyx_GIVEREF(__pyx_tuple__279);
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_108clear_task_state, 0, __pyx_n_s_Scheduler_clear_task_state, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__280)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4851, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_clear_task_state, __pyx_t_12) < 0) __PYX_ERR(0, 4851, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_codeobj__280 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__279, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_clear_task_state, 4851, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__280)) __PYX_ERR(0, 4851, __pyx_L1_error)
4852: # XXX what about nested state such as ClientState.wants_what
4853: # (see also fire-and-forget...)
+4854: logger.info("Clear task state")
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logger); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_kp_u_Clear_task_state) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_u_Clear_task_state); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4855: for collection in self._task_state_collections:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_task_state_collections); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4855, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_5)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4855, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4855, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_5(__pyx_t_3); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 4855, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_collection, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4856: collection.clear()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_collection, __pyx_n_s_clear); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4857:
+4858: async def restart(self, client=None, timeout=3):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_110restart(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_109restart[] = " Restart all workers. Reset local state. ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_110restart = {"restart", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_110restart, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_109restart};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_110restart(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_client = 0;
PyObject *__pyx_v_timeout = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("restart (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_client,&__pyx_n_s_timeout,0};
PyObject* values[3] = {0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)__pyx_int_3));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_client);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeout);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "restart") < 0)) __PYX_ERR(0, 4858, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_client = values[1];
__pyx_v_timeout = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("restart", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4858, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.restart", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_109restart(__pyx_self, __pyx_v_self, __pyx_v_client, __pyx_v_timeout);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_7restart_2generator34(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_109restart(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_client, PyObject *__pyx_v_timeout) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_28_restart *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("restart", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_28_restart *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_28_restart(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_28_restart, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_28_restart *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 4858, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_client = __pyx_v_client;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_client);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_client);
__pyx_cur_scope->__pyx_v_timeout = __pyx_v_timeout;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_timeout);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_timeout);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_111generator10, __pyx_codeobj__68, (PyObject *) __pyx_cur_scope, __pyx_n_s_restart, __pyx_n_s_Scheduler_restart, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 4858, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.restart", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_111generator10(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("restart", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4858, __pyx_L1_error)
/* … */
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_22);
__Pyx_AddTraceback("restart", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_114generator11(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__281 = PyTuple_Pack(24, __pyx_n_s_self, __pyx_n_s_client, __pyx_n_s_timeout, __pyx_n_s_parent, __pyx_n_s_n_workers, __pyx_n_s_cs, __pyx_n_s_ts, __pyx_n_s_ws, __pyx_n_s_nannies, __pyx_n_s_addr, __pyx_n_s_e, __pyx_n_s_plugin, __pyx_n_s_resps, __pyx_n_s_c, __pyx_n_s_start, __pyx_n_s_ts, __pyx_n_s_addr, __pyx_n_s_ws, __pyx_n_s_nanny_address, __pyx_n_s_nanny, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_nanny, __pyx_n_s_nanny); if (unlikely(!__pyx_tuple__281)) __PYX_ERR(0, 4858, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__281);
__Pyx_GIVEREF(__pyx_tuple__281);
__pyx_codeobj__68 = (PyObject*)__Pyx_PyCode_New(3, 0, 24, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__281, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_restart, 4858, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__68)) __PYX_ERR(0, 4858, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_110restart, 0, __pyx_n_s_Scheduler_restart, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__68)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4858, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__282);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_restart, __pyx_t_12) < 0) __PYX_ERR(0, 4858, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__282 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)__pyx_int_3)); if (unlikely(!__pyx_tuple__282)) __PYX_ERR(0, 4858, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__282);
__Pyx_GIVEREF(__pyx_tuple__282);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_28_restart {
PyObject_HEAD
PyObject *__pyx_9genexpr62__pyx_v_addr;
PyObject *__pyx_v_addr;
PyObject *__pyx_v_c;
PyObject *__pyx_v_client;
struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_cs;
PyObject *__pyx_v_e;
PyObject *__pyx_v_genexpr;
Py_ssize_t __pyx_v_n_workers;
PyObject *__pyx_v_nannies;
PyObject *__pyx_9genexpr64__pyx_v_nanny;
PyObject *__pyx_9genexpr66__pyx_v_nanny;
PyObject *__pyx_9genexpr67__pyx_v_nanny;
PyObject *__pyx_9genexpr63__pyx_v_nanny_address;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent;
PyObject *__pyx_v_plugin;
PyObject *__pyx_v_resps;
PyObject *__pyx_v_self;
PyObject *__pyx_v_start;
PyObject *__pyx_v_timeout;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_9genexpr61__pyx_v_ts;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_9genexpr62__pyx_v_ws;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws;
PyObject *__pyx_t_0;
PyObject *__pyx_t_1;
PyObject *__pyx_t_2;
PyObject *__pyx_t_3;
PyObject *__pyx_t_4;
Py_ssize_t __pyx_t_5;
PyObject *__pyx_t_6;
PyObject *__pyx_t_7;
PyObject *__pyx_t_8;
int __pyx_t_9;
int __pyx_t_10;
PyObject *__pyx_t_11;
PyObject *__pyx_t_12;
char const *__pyx_t_13;
};
4859: """ Restart all workers. Reset local state. """
+4860: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_cur_scope->__pyx_v_self; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1); __pyx_t_1 = 0;
+4861: with log_errors():
/*with:*/ {
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_log_errors); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4861, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
}
}
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4861, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4861, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4861, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4861, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/*try:*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
goto __pyx_L13_try_end;
__pyx_L8_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.restart", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_13, &__pyx_t_16, &__pyx_t_3) < 0) __PYX_ERR(0, 4861, __pyx_L10_except_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_GOTREF(__pyx_t_16);
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = PyTuple_Pack(3, __pyx_t_13, __pyx_t_16, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4861, __pyx_L10_except_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_26 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 4861, __pyx_L10_except_error)
__Pyx_GOTREF(__pyx_t_26);
__pyx_t_32 = __Pyx_PyObject_IsTrue(__pyx_t_26);
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
if (__pyx_t_32 < 0) __PYX_ERR(0, 4861, __pyx_L10_except_error)
__pyx_t_21 = ((!(__pyx_t_32 != 0)) != 0);
if (__pyx_t_21) {
__Pyx_GIVEREF(__pyx_t_13);
__Pyx_GIVEREF(__pyx_t_16);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ErrRestoreWithState(__pyx_t_13, __pyx_t_16, __pyx_t_3);
__pyx_t_13 = 0; __pyx_t_16 = 0; __pyx_t_3 = 0;
__PYX_ERR(0, 4861, __pyx_L10_except_error)
}
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
goto __pyx_L9_exception_handled;
}
__pyx_L10_except_error:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L1_error;
__pyx_L9_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
__pyx_L13_try_end:;
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_4) {
__pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4861, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
goto __pyx_L7;
}
__pyx_L7:;
}
goto __pyx_L113;
__pyx_L4_error:;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L1_error;
__pyx_L113:;
}
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
4862:
+4863: n_workers = len(parent._workers_dv)
__pyx_t_1 = __pyx_cur_scope->__pyx_v_parent->_workers_dv;
__Pyx_INCREF(__pyx_t_1);
if (unlikely(__pyx_t_1 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 4863, __pyx_L8_error)
}
__pyx_t_9 = PyDict_Size(__pyx_t_1); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4863, __pyx_L8_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_cur_scope->__pyx_v_n_workers = __pyx_t_9;
4864:
+4865: logger.info("Send lost future signal to clients")
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logger); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4865, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4865, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_kp_u_Send_lost_future_signal_to_clien) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_u_Send_lost_future_signal_to_clien); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4865, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
4866: cs: ClientState
4867: ts: TaskState
+4868: for cs in parent._clients.values():
__pyx_t_9 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_clients == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
__PYX_ERR(0, 4868, __pyx_L8_error)
}
__pyx_t_3 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_parent->_clients, 1, __pyx_n_s_values, (&__pyx_t_10), (&__pyx_t_11)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4868, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_3;
__pyx_t_3 = 0;
while (1) {
__pyx_t_12 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_10, &__pyx_t_9, NULL, &__pyx_t_3, NULL, __pyx_t_11);
if (unlikely(__pyx_t_12 == 0)) break;
if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 4868, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 4868, __pyx_L8_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_cs));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_cs, ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_3));
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
+4869: self.client_releases_keys(
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_client_releases_keys_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4869, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); /* … */ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4869, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4870: keys=[ts._key for ts in cs._wants_what], client=cs._client_key
__pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4870, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); { /* enter inner scope */ __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4870, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_14 = 0; __pyx_t_16 = __Pyx_set_iterator(__pyx_cur_scope->__pyx_v_cs->_wants_what, 1, (&__pyx_t_15), (&__pyx_t_12)); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4870, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = __pyx_t_16; __pyx_t_16 = 0; while (1) { __pyx_t_17 = __Pyx_set_iter_next(__pyx_t_13, __pyx_t_15, &__pyx_t_14, &__pyx_t_16, __pyx_t_12); if (unlikely(__pyx_t_17 == 0)) break; if (unlikely(__pyx_t_17 == -1)) __PYX_ERR(0, 4870, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_16); if (!(likely(((__pyx_t_16) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_16, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 4870, __pyx_L8_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_9genexpr61__pyx_v_ts)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr61__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_16)); __Pyx_GIVEREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_cur_scope->__pyx_9genexpr61__pyx_v_ts->_key))) __PYX_ERR(0, 4870, __pyx_L8_error) } __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } /* exit inner scope */ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_keys, __pyx_t_5) < 0) __PYX_ERR(0, 4870, __pyx_L8_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_client, __pyx_cur_scope->__pyx_v_cs->_client_key) < 0) __PYX_ERR(0, 4870, __pyx_L8_error)
4871: )
4872:
4873: ws: WorkerState
+4874: nannies = {addr: ws._nanny for addr, ws in parent._workers_dv.items()}
{ /* enter inner scope */
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4874, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_10 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 4874, __pyx_L8_error)
}
__pyx_t_2 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_parent->_workers_dv, 1, __pyx_n_s_items, (&__pyx_t_9), (&__pyx_t_11)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4874, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5);
__pyx_t_5 = __pyx_t_2;
__pyx_t_2 = 0;
while (1) {
__pyx_t_12 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_9, &__pyx_t_10, &__pyx_t_2, &__pyx_t_3, NULL, __pyx_t_11);
if (unlikely(__pyx_t_12 == 0)) break;
if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 4874, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 4874, __pyx_L8_error)
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr62__pyx_v_addr);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr62__pyx_v_addr, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_9genexpr62__pyx_v_ws));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr62__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_3));
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_cur_scope->__pyx_9genexpr62__pyx_v_addr, (PyObject*)__pyx_cur_scope->__pyx_9genexpr62__pyx_v_ws->_nanny))) __PYX_ERR(0, 4874, __pyx_L8_error)
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_v_nannies = __pyx_t_1;
__pyx_t_1 = 0;
4875:
+4876: for addr in list(parent._workers_dv):
__pyx_t_1 = PySequence_List(__pyx_cur_scope->__pyx_v_parent->_workers_dv); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4876, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4876, __pyx_L8_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4876, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_addr); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_addr, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4877: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
goto __pyx_L29_try_end;
__pyx_L22_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
goto __pyx_L8_error;
__pyx_L23_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
__pyx_L29_try_end:;
}
4878: # Ask the worker to close if it doesn't have a nanny,
4879: # otherwise the nanny will kill it anyway
+4880: await self.remove_worker(address=addr, close=addr not in nannies)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_remove_worker); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4880, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4880, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_address, __pyx_cur_scope->__pyx_v_addr) < 0) __PYX_ERR(0, 4880, __pyx_L22_error) __pyx_t_21 = (__Pyx_PySequence_ContainsTF(__pyx_cur_scope->__pyx_v_addr, __pyx_cur_scope->__pyx_v_nannies, Py_NE)); if (unlikely(__pyx_t_21 < 0)) __PYX_ERR(0, 4880, __pyx_L22_error) __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_21); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4880, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_close, __pyx_t_2) < 0) __PYX_ERR(0, 4880, __pyx_L22_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4880, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_0 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_t_1 = __pyx_t_5; __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_2 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_3 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_4 = __pyx_t_8; __pyx_cur_scope->__pyx_t_5 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_18); __pyx_cur_scope->__pyx_t_6 = __pyx_t_18; __Pyx_XGIVEREF(__pyx_t_19); __pyx_cur_scope->__pyx_t_7 = __pyx_t_19; __Pyx_XGIVEREF(__pyx_t_20); __pyx_cur_scope->__pyx_t_8 = __pyx_t_20; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L30_resume_from_await:; __pyx_t_4 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_5 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_5); __pyx_t_6 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_7 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_5; __pyx_t_18 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_18); __pyx_t_19 = __pyx_cur_scope->__pyx_t_7; __pyx_cur_scope->__pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_t_19); __pyx_t_20 = __pyx_cur_scope->__pyx_t_8; __pyx_cur_scope->__pyx_t_8 = 0; __Pyx_XGOTREF(__pyx_t_20); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4880, __pyx_L22_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 4880, __pyx_L22_error) } }
+4881: except Exception as e:
__pyx_t_11 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_11) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.restart", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_1) < 0) __PYX_ERR(0, 4881, __pyx_L24_except_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_v_e = __pyx_t_3; /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = NULL; goto __pyx_L37; } __pyx_L36_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_27, &__pyx_t_28, &__pyx_t_29); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_24, &__pyx_t_25, &__pyx_t_26) < 0)) __Pyx_ErrFetch(&__pyx_t_24, &__pyx_t_25, &__pyx_t_26); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_27); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_29); __pyx_t_11 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_23 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_27); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_XGIVEREF(__pyx_t_29); __Pyx_ExceptionReset(__pyx_t_27, __pyx_t_28, __pyx_t_29); } __Pyx_XGIVEREF(__pyx_t_24); __Pyx_XGIVEREF(__pyx_t_25); __Pyx_XGIVEREF(__pyx_t_26); __Pyx_ErrRestore(__pyx_t_24, __pyx_t_25, __pyx_t_26); __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_lineno = __pyx_t_11; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_23; goto __pyx_L24_except_error; } __pyx_L37:; } __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L23_exception_handled; } goto __pyx_L24_except_error; __pyx_L24_except_error:;
+4882: logger.info(
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_logger); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4882, __pyx_L36_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_info); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4882, __pyx_L36_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; /* … */ __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_tuple__69, __pyx_t_13); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4882, __pyx_L36_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } /* … */ __pyx_tuple__69 = PyTuple_Pack(1, __pyx_kp_u_Exception_while_restarting_This); if (unlikely(!__pyx_tuple__69)) __PYX_ERR(0, 4882, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__69); __Pyx_GIVEREF(__pyx_tuple__69);
+4883: "Exception while restarting. This is normal", exc_info=True
__pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4883, __pyx_L36_error) __Pyx_GOTREF(__pyx_t_13); if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_exc_info, Py_True) < 0) __PYX_ERR(0, 4883, __pyx_L36_error)
4884: )
4885:
+4886: self.clear_task_state()
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_clear_task_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4886, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_5 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4886, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4887:
+4888: for plugin in self.plugins[:]:
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_plugins); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4888, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_t_5, 0, 0, NULL, NULL, &__pyx_slice__57, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4888, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __pyx_t_9 = 0; __pyx_t_30 = NULL; } else { __pyx_t_9 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4888, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_30 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 4888, __pyx_L8_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_30)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4888, __pyx_L8_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4888, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4888, __pyx_L8_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4888, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_30(__pyx_t_5); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 4888, __pyx_L8_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_plugin); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_plugin, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4889: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
goto __pyx_L51_try_end;
__pyx_L44_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_ExceptionReset(__pyx_t_20, __pyx_t_19, __pyx_t_18);
goto __pyx_L8_error;
__pyx_L45_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_ExceptionReset(__pyx_t_20, __pyx_t_19, __pyx_t_18);
__pyx_L51_try_end:;
}
+4890: plugin.restart(self)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_plugin, __pyx_n_s_restart); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4890, __pyx_L44_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_cur_scope->__pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_cur_scope->__pyx_v_self); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4890, __pyx_L44_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4891: except Exception as e:
__pyx_t_12 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_12) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.restart", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_3, &__pyx_t_2) < 0) __PYX_ERR(0, 4891, __pyx_L46_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_v_e = __pyx_t_3; /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = NULL; goto __pyx_L58; } __pyx_L57_error:; /*exception exit:*/{ __Pyx_PyThreadState_assign __pyx_t_29 = 0; __pyx_t_28 = 0; __pyx_t_27 = 0; __pyx_t_26 = 0; __pyx_t_25 = 0; __pyx_t_24 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_26, &__pyx_t_25, &__pyx_t_24); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_29, &__pyx_t_28, &__pyx_t_27) < 0)) __Pyx_ErrFetch(&__pyx_t_29, &__pyx_t_28, &__pyx_t_27); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_27); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_24); __pyx_t_12 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_31 = __pyx_filename; { __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_e); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_e); __pyx_cur_scope->__pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_26); __Pyx_XGIVEREF(__pyx_t_25); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_ExceptionReset(__pyx_t_26, __pyx_t_25, __pyx_t_24); } __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_XGIVEREF(__pyx_t_27); __Pyx_ErrRestore(__pyx_t_29, __pyx_t_28, __pyx_t_27); __pyx_t_29 = 0; __pyx_t_28 = 0; __pyx_t_27 = 0; __pyx_t_26 = 0; __pyx_t_25 = 0; __pyx_t_24 = 0; __pyx_lineno = __pyx_t_12; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_31; goto __pyx_L46_except_error; } __pyx_L58:; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L45_exception_handled; } goto __pyx_L46_except_error; __pyx_L46_except_error:;
+4892: logger.exception(e)
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_logger); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4892, __pyx_L57_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_exception); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4892, __pyx_L57_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_16))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); } } __pyx_t_22 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_13, __pyx_cur_scope->__pyx_v_e) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_cur_scope->__pyx_v_e); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4892, __pyx_L57_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; }
4893:
+4894: logger.debug("Send kill signal to nannies: %s", nannies)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logger); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4894, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_debug); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4894, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_11 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_11 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_u_Send_kill_signal_to_nannies_s, __pyx_cur_scope->__pyx_v_nannies}; __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4894, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_u_Send_kill_signal_to_nannies_s, __pyx_cur_scope->__pyx_v_nannies}; __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4894, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif { __pyx_t_1 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4894, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_kp_u_Send_kill_signal_to_nannies_s); __Pyx_GIVEREF(__pyx_kp_u_Send_kill_signal_to_nannies_s); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_11, __pyx_kp_u_Send_kill_signal_to_nannies_s); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_nannies); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_nannies); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_11, __pyx_cur_scope->__pyx_v_nannies); __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4894, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4895:
+4896: nannies = [
{ /* enter inner scope */
__pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4896, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_5);
+4897: rpc(nanny_address, connection_args=self.connection_args)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_rpc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4897, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4897, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_cur_scope->__pyx_9genexpr63__pyx_v_nanny_address); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_9genexpr63__pyx_v_nanny_address); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_cur_scope->__pyx_9genexpr63__pyx_v_nanny_address); __pyx_t_22 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4897, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_connection_args); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4897, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_16); if (PyDict_SetItem(__pyx_t_22, __pyx_n_s_connection_args, __pyx_t_16) < 0) __PYX_ERR(0, 4897, __pyx_L8_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_22); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4897, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_t_16))) __PYX_ERR(0, 4896, __pyx_L8_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+4898: for nanny_address in nannies.values()
__pyx_t_9 = 0;
__pyx_t_1 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_nannies, 0, __pyx_n_s_values, (&__pyx_t_10), (&__pyx_t_11)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4898, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__pyx_t_3 = __pyx_t_1;
__pyx_t_1 = 0;
while (1) {
__pyx_t_12 = __Pyx_dict_iter_next(__pyx_t_3, __pyx_t_10, &__pyx_t_9, NULL, &__pyx_t_1, NULL, __pyx_t_11);
if (unlikely(__pyx_t_12 == 0)) break;
if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 4898, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr63__pyx_v_nanny_address);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr63__pyx_v_nanny_address, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
+4899: if nanny_address is not None
__pyx_t_21 = (__pyx_cur_scope->__pyx_9genexpr63__pyx_v_nanny_address != Py_None);
__pyx_t_32 = (__pyx_t_21 != 0);
if (__pyx_t_32) {
/* … */
}
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} /* exit inner scope */
__Pyx_GOTREF(__pyx_cur_scope->__pyx_v_nannies);
__Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_nannies, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
4900: ]
4901:
+4902: resps = All(
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_All); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4902, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); { /* enter inner scope */
+4903: [
__pyx_t_16 = PyList_New(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4903, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_16);
+4904: nanny.restart(
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_9genexpr64__pyx_v_nanny, __pyx_n_s_restart); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4904, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); /* … */ __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4904, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_16, (PyObject*)__pyx_t_13))) __PYX_ERR(0, 4903, __pyx_L8_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+4905: close=True, timeout=timeout * 0.8, executor_wait=False
__pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4905, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_close, Py_True) < 0) __PYX_ERR(0, 4905, __pyx_L8_error) __pyx_t_13 = PyNumber_Multiply(__pyx_cur_scope->__pyx_v_timeout, __pyx_float_0_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4905, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_timeout, __pyx_t_13) < 0) __PYX_ERR(0, 4905, __pyx_L8_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_executor_wait, Py_False) < 0) __PYX_ERR(0, 4905, __pyx_L8_error)
4906: )
+4907: for nanny in nannies
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_nannies)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_nannies)) { __pyx_t_22 = __pyx_cur_scope->__pyx_v_nannies; __Pyx_INCREF(__pyx_t_22); __pyx_t_10 = 0; __pyx_t_30 = NULL; } else { __pyx_t_10 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_nannies); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4907, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_30 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 4907, __pyx_L8_error) } for (;;) { if (likely(!__pyx_t_30)) { if (likely(PyList_CheckExact(__pyx_t_22))) { if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_22)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_10); __Pyx_INCREF(__pyx_t_2); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4907, __pyx_L8_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_22, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4907, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_22)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_10); __Pyx_INCREF(__pyx_t_2); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4907, __pyx_L8_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_22, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4907, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_30(__pyx_t_22); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 4907, __pyx_L8_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr64__pyx_v_nanny); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr64__pyx_v_nanny, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } /* exit inner scope */ __pyx_t_22 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_22)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_22); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_5 = (__pyx_t_22) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_22, __pyx_t_16) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_16); __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4902, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_resps = __pyx_t_5; __pyx_t_5 = 0;
4908: ]
4909: )
+4910: try:
/*try:*/ {
{
/*try:*/ {
/* … */
}
/* … */
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
goto __pyx_L69_error;
__pyx_L72_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
__pyx_L76_try_end:;
}
}
+4911: resps = await asyncio.wait_for(resps, timeout)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4911, __pyx_L71_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_wait_for); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4911, __pyx_L71_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_11 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_16))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); __pyx_t_11 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_16)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_resps, __pyx_cur_scope->__pyx_v_timeout}; __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4911, __pyx_L71_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_16)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_resps, __pyx_cur_scope->__pyx_v_timeout}; __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4911, __pyx_L71_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif { __pyx_t_22 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4911, __pyx_L71_error) __Pyx_GOTREF(__pyx_t_22); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_cur_scope->__pyx_v_resps); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_resps); PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_11, __pyx_cur_scope->__pyx_v_resps); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_timeout); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_timeout); PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_11, __pyx_cur_scope->__pyx_v_timeout); __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_22, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4911, __pyx_L71_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_0 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_1 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_2 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_3 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_18); __pyx_cur_scope->__pyx_t_4 = __pyx_t_18; __Pyx_XGIVEREF(__pyx_t_19); __pyx_cur_scope->__pyx_t_6 = __pyx_t_19; __Pyx_XGIVEREF(__pyx_t_20); __pyx_cur_scope->__pyx_t_7 = __pyx_t_20; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L77_resume_from_await:; __pyx_t_4 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_6 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_7 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_18 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_18); __pyx_t_19 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_19); __pyx_t_20 = __pyx_cur_scope->__pyx_t_7; __pyx_cur_scope->__pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_t_20); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4911, __pyx_L71_error) __pyx_t_5 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_5); } else { __pyx_t_5 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_5) < 0) __PYX_ERR(0, 4911, __pyx_L71_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_resps); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_resps, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0;
+4912: except TimeoutError:
__Pyx_ErrFetch(&__pyx_t_3, &__pyx_t_22, &__pyx_t_16); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_TimeoutError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4912, __pyx_L73_except_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_11 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_3, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_ErrRestore(__pyx_t_3, __pyx_t_22, __pyx_t_16); __pyx_t_3 = 0; __pyx_t_22 = 0; __pyx_t_16 = 0; if (__pyx_t_11) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.restart", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_16, &__pyx_t_22, &__pyx_t_3) < 0) __PYX_ERR(0, 4912, __pyx_L73_except_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_GOTREF(__pyx_t_22); __Pyx_GOTREF(__pyx_t_3);
+4913: logger.error(
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_logger); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4913, __pyx_L73_except_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4913, __pyx_L73_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_5 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_13, __pyx_kp_u_Nannies_didn_t_report_back_resta) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_kp_u_Nannies_didn_t_report_back_resta); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4913, __pyx_L73_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L72_exception_handled; } goto __pyx_L73_except_error; __pyx_L73_except_error:;
4914: "Nannies didn't report back restarted within "
4915: "timeout. Continuuing with restart process"
4916: )
4917: else:
+4918: if not all(resp == "OK" for resp in resps):
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_7restart_genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_29_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_29_genexpr *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_29_genexpr(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_29_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_29_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 4918, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_28_restart *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_7restart_2generator34, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_Scheduler_restart_locals_genexpr, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 4918, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.restart.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_7restart_2generator34(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4918, __pyx_L1_error)
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_resps)) { __Pyx_RaiseClosureNameError("resps"); __PYX_ERR(0, 4918, __pyx_L1_error) }
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_resps)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_resps)) {
__pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_resps; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
__pyx_t_3 = NULL;
} else {
__pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_resps); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4918, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4918, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_3)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4918, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4918, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
} else {
if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4918, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4918, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
}
} else {
__pyx_t_4 = __pyx_t_3(__pyx_t_1);
if (unlikely(!__pyx_t_4)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 4918, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_4);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_resp);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_resp, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
__pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_cur_scope->__pyx_v_resp, __pyx_n_u_OK, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4918, __pyx_L1_error)
__pyx_t_6 = ((!__pyx_t_5) != 0);
if (__pyx_t_6) {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(Py_False);
__pyx_r = Py_False;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
}
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(Py_True);
__pyx_r = Py_True;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
/*else:*/ {
__pyx_t_5 = __pyx_pf_11distributed_9scheduler_9Scheduler_7restart_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4918, __pyx_L73_except_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_16 = __Pyx_Generator_Next(__pyx_t_5); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4918, __pyx_L73_except_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_32 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 4918, __pyx_L73_except_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_21 = ((!__pyx_t_32) != 0);
if (__pyx_t_21) {
/* … */
}
}
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
goto __pyx_L76_try_end;
__pyx_L71_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_29_genexpr {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_28_restart *__pyx_outer_scope;
PyObject *__pyx_v_resp;
};
+4919: logger.error(
__Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_logger); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4919, __pyx_L73_except_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4919, __pyx_L73_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; /* … */ __pyx_t_16 = PyTuple_New(2); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4919, __pyx_L73_except_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_INCREF(__pyx_kp_u_Not_all_workers_responded_positi); __Pyx_GIVEREF(__pyx_kp_u_Not_all_workers_responded_positi); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_kp_u_Not_all_workers_responded_positi); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_resps); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_resps); PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_cur_scope->__pyx_v_resps); /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_16, __pyx_t_22); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4919, __pyx_L73_except_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4920: "Not all workers responded positively: %s", resps, exc_info=True
__pyx_t_22 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4920, __pyx_L73_except_error) __Pyx_GOTREF(__pyx_t_22); if (PyDict_SetItem(__pyx_t_22, __pyx_n_s_exc_info, Py_True) < 0) __PYX_ERR(0, 4920, __pyx_L73_except_error)
4921: )
4922: finally:
+4923: await asyncio.gather(*[nanny.close_rpc() for nanny in nannies])
/*finally:*/ {
/*normal exit:*/{
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4923, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_gather); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4923, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
{ /* enter inner scope */
__pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4923, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_3);
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_nannies)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_nannies)) {
__pyx_t_16 = __pyx_cur_scope->__pyx_v_nannies; __Pyx_INCREF(__pyx_t_16); __pyx_t_10 = 0;
__pyx_t_30 = NULL;
} else {
__pyx_t_10 = -1; __pyx_t_16 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_nannies); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4923, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_30 = Py_TYPE(__pyx_t_16)->tp_iternext; if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 4923, __pyx_L8_error)
}
for (;;) {
if (likely(!__pyx_t_30)) {
if (likely(PyList_CheckExact(__pyx_t_16))) {
if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_16)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4923, __pyx_L8_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_16, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4923, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_16)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_16, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4923, __pyx_L8_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_16, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4923, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
}
} else {
__pyx_t_5 = __pyx_t_30(__pyx_t_16);
if (unlikely(!__pyx_t_5)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 4923, __pyx_L8_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_5);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr66__pyx_v_nanny);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr66__pyx_v_nanny, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_9genexpr66__pyx_v_nanny, __pyx_n_s_close_rpc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4923, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_13 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_13 = PyMethod_GET_SELF(__pyx_t_1);
if (likely(__pyx_t_13)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_1, function);
}
}
__pyx_t_5 = (__pyx_t_13) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_13) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4923, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 4923, __pyx_L8_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
} /* exit inner scope */
__pyx_t_16 = PySequence_Tuple(__pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4923, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_16, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4923, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_3);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XGOTREF(__pyx_r);
if (likely(__pyx_r)) {
__Pyx_XGIVEREF(__pyx_t_4);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_t_6);
__pyx_cur_scope->__pyx_t_1 = __pyx_t_6;
__Pyx_XGIVEREF(__pyx_t_7);
__pyx_cur_scope->__pyx_t_2 = __pyx_t_7;
__Pyx_XGIVEREF(__pyx_t_8);
__pyx_cur_scope->__pyx_t_3 = __pyx_t_8;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, awaiting value */
__pyx_generator->resume_label = 3;
return __pyx_r;
__pyx_L83_resume_from_await:;
__pyx_t_4 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_4);
__pyx_t_6 = __pyx_cur_scope->__pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = 0;
__Pyx_XGOTREF(__pyx_t_6);
__pyx_t_7 = __pyx_cur_scope->__pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = 0;
__Pyx_XGOTREF(__pyx_t_7);
__pyx_t_8 = __pyx_cur_scope->__pyx_t_3;
__pyx_cur_scope->__pyx_t_3 = 0;
__Pyx_XGOTREF(__pyx_t_8);
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4923, __pyx_L8_error)
} else {
PyObject* exc_type = __Pyx_PyErr_Occurred();
if (exc_type) {
if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
else __PYX_ERR(0, 4923, __pyx_L8_error)
}
}
goto __pyx_L70;
}
__pyx_L69_error:;
/*exception exit:*/{
__Pyx_PyThreadState_assign
__pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_24, &__pyx_t_25, &__pyx_t_26);
if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18) < 0)) __Pyx_ErrFetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18);
__Pyx_XGOTREF(__pyx_t_20);
__Pyx_XGOTREF(__pyx_t_19);
__Pyx_XGOTREF(__pyx_t_18);
__Pyx_XGOTREF(__pyx_t_24);
__Pyx_XGOTREF(__pyx_t_25);
__Pyx_XGOTREF(__pyx_t_26);
__pyx_t_11 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_33 = __pyx_filename;
{
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4923, __pyx_L85_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_gather); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4923, __pyx_L85_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
{ /* enter inner scope */
__pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4923, __pyx_L85_error)
__Pyx_GOTREF(__pyx_t_3);
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_nannies)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_nannies)) {
__pyx_t_22 = __pyx_cur_scope->__pyx_v_nannies; __Pyx_INCREF(__pyx_t_22); __pyx_t_10 = 0;
__pyx_t_30 = NULL;
} else {
__pyx_t_10 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_nannies); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4923, __pyx_L85_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_30 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 4923, __pyx_L85_error)
}
for (;;) {
if (likely(!__pyx_t_30)) {
if (likely(PyList_CheckExact(__pyx_t_22))) {
if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_22)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4923, __pyx_L85_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_22, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4923, __pyx_L85_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_22)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4923, __pyx_L85_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_22, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4923, __pyx_L85_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
}
} else {
__pyx_t_5 = __pyx_t_30(__pyx_t_22);
if (unlikely(!__pyx_t_5)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 4923, __pyx_L85_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_5);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr67__pyx_v_nanny);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr67__pyx_v_nanny, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_9genexpr67__pyx_v_nanny, __pyx_n_s_close_rpc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4923, __pyx_L85_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_13 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_13 = PyMethod_GET_SELF(__pyx_t_1);
if (likely(__pyx_t_13)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_1, function);
}
}
__pyx_t_5 = (__pyx_t_13) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_13) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4923, __pyx_L85_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 4923, __pyx_L85_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
} /* exit inner scope */
__pyx_t_22 = PySequence_Tuple(__pyx_t_3); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4923, __pyx_L85_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_22, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4923, __pyx_L85_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_3);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XGOTREF(__pyx_r);
if (likely(__pyx_r)) {
__Pyx_XGIVEREF(__pyx_t_4);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_t_6);
__pyx_cur_scope->__pyx_t_1 = __pyx_t_6;
__Pyx_XGIVEREF(__pyx_t_7);
__pyx_cur_scope->__pyx_t_2 = __pyx_t_7;
__Pyx_XGIVEREF(__pyx_t_8);
__pyx_cur_scope->__pyx_t_3 = __pyx_t_8;
__pyx_cur_scope->__pyx_t_9 = __pyx_t_11;
__pyx_cur_scope->__pyx_t_10 = __pyx_t_12;
__Pyx_XGIVEREF(__pyx_t_18);
__pyx_cur_scope->__pyx_t_4 = __pyx_t_18;
__Pyx_XGIVEREF(__pyx_t_19);
__pyx_cur_scope->__pyx_t_6 = __pyx_t_19;
__Pyx_XGIVEREF(__pyx_t_20);
__pyx_cur_scope->__pyx_t_7 = __pyx_t_20;
__Pyx_XGIVEREF(__pyx_t_24);
__pyx_cur_scope->__pyx_t_8 = __pyx_t_24;
__Pyx_XGIVEREF(__pyx_t_25);
__pyx_cur_scope->__pyx_t_11 = __pyx_t_25;
__Pyx_XGIVEREF(__pyx_t_26);
__pyx_cur_scope->__pyx_t_12 = __pyx_t_26;
__pyx_cur_scope->__pyx_t_13 = __pyx_t_33;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, awaiting value */
__pyx_generator->resume_label = 4;
return __pyx_r;
__pyx_L88_resume_from_await:;
__pyx_t_4 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_4);
__pyx_t_6 = __pyx_cur_scope->__pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = 0;
__Pyx_XGOTREF(__pyx_t_6);
__pyx_t_7 = __pyx_cur_scope->__pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = 0;
__Pyx_XGOTREF(__pyx_t_7);
__pyx_t_8 = __pyx_cur_scope->__pyx_t_3;
__pyx_cur_scope->__pyx_t_3 = 0;
__Pyx_XGOTREF(__pyx_t_8);
__pyx_t_11 = __pyx_cur_scope->__pyx_t_9;
__pyx_t_12 = __pyx_cur_scope->__pyx_t_10;
__pyx_t_18 = __pyx_cur_scope->__pyx_t_4;
__pyx_cur_scope->__pyx_t_4 = 0;
__Pyx_XGOTREF(__pyx_t_18);
__pyx_t_19 = __pyx_cur_scope->__pyx_t_6;
__pyx_cur_scope->__pyx_t_6 = 0;
__Pyx_XGOTREF(__pyx_t_19);
__pyx_t_20 = __pyx_cur_scope->__pyx_t_7;
__pyx_cur_scope->__pyx_t_7 = 0;
__Pyx_XGOTREF(__pyx_t_20);
__pyx_t_24 = __pyx_cur_scope->__pyx_t_8;
__pyx_cur_scope->__pyx_t_8 = 0;
__Pyx_XGOTREF(__pyx_t_24);
__pyx_t_25 = __pyx_cur_scope->__pyx_t_11;
__pyx_cur_scope->__pyx_t_11 = 0;
__Pyx_XGOTREF(__pyx_t_25);
__pyx_t_26 = __pyx_cur_scope->__pyx_t_12;
__pyx_cur_scope->__pyx_t_12 = 0;
__Pyx_XGOTREF(__pyx_t_26);
__pyx_t_33 = __pyx_cur_scope->__pyx_t_13;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4923, __pyx_L85_error)
} else {
PyObject* exc_type = __Pyx_PyErr_Occurred();
if (exc_type) {
if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear();
else __PYX_ERR(0, 4923, __pyx_L85_error)
}
}
}
if (PY_MAJOR_VERSION >= 3) {
__Pyx_XGIVEREF(__pyx_t_24);
__Pyx_XGIVEREF(__pyx_t_25);
__Pyx_XGIVEREF(__pyx_t_26);
__Pyx_ExceptionReset(__pyx_t_24, __pyx_t_25, __pyx_t_26);
}
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_ErrRestore(__pyx_t_20, __pyx_t_19, __pyx_t_18);
__pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0;
__pyx_lineno = __pyx_t_11; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_33;
goto __pyx_L8_error;
__pyx_L85_error:;
if (PY_MAJOR_VERSION >= 3) {
__Pyx_XGIVEREF(__pyx_t_24);
__Pyx_XGIVEREF(__pyx_t_25);
__Pyx_XGIVEREF(__pyx_t_26);
__Pyx_ExceptionReset(__pyx_t_24, __pyx_t_25, __pyx_t_26);
}
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0;
goto __pyx_L8_error;
}
__pyx_L70:;
}
4924:
+4925: self.clear_task_state()
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_clear_task_state); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4925, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_22); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_22, function); } } __pyx_t_3 = (__pyx_t_16) ? __Pyx_PyObject_CallOneArg(__pyx_t_22, __pyx_t_16) : __Pyx_PyObject_CallNoArg(__pyx_t_22); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4925, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4926:
+4927: with suppress(AttributeError):
/*with:*/ {
__Pyx_GetModuleGlobalName(__pyx_t_22, __pyx_n_s_suppress); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4927, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_16 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_22))) {
__pyx_t_16 = PyMethod_GET_SELF(__pyx_t_22);
if (likely(__pyx_t_16)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22);
__Pyx_INCREF(__pyx_t_16);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_22, function);
}
}
__pyx_t_3 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_22, __pyx_t_16, __pyx_builtin_AttributeError) : __Pyx_PyObject_CallOneArg(__pyx_t_22, __pyx_builtin_AttributeError);
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4927, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__pyx_t_26 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_exit); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 4927, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_26);
__pyx_t_16 = __Pyx_PyObject_LookupSpecial(__pyx_t_3, __pyx_n_s_enter); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4927, __pyx_L89_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_16);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_16, function);
}
}
__pyx_t_22 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4927, __pyx_L89_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
/*try:*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
__Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
goto __pyx_L98_try_end;
__pyx_L93_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.restart", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_22, &__pyx_t_3, &__pyx_t_16) < 0) __PYX_ERR(0, 4927, __pyx_L95_except_error)
__Pyx_GOTREF(__pyx_t_22);
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_5 = PyTuple_Pack(3, __pyx_t_22, __pyx_t_3, __pyx_t_16); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4927, __pyx_L95_except_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_26, __pyx_t_5, NULL);
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4927, __pyx_L95_except_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_21 = __Pyx_PyObject_IsTrue(__pyx_t_19);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
if (__pyx_t_21 < 0) __PYX_ERR(0, 4927, __pyx_L95_except_error)
__pyx_t_32 = ((!(__pyx_t_21 != 0)) != 0);
if (__pyx_t_32) {
__Pyx_GIVEREF(__pyx_t_22);
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_ErrRestoreWithState(__pyx_t_22, __pyx_t_3, __pyx_t_16);
__pyx_t_22 = 0; __pyx_t_3 = 0; __pyx_t_16 = 0;
__PYX_ERR(0, 4927, __pyx_L95_except_error)
}
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
goto __pyx_L94_exception_handled;
}
__pyx_L95_except_error:;
__Pyx_XGIVEREF(__pyx_t_25);
__Pyx_XGIVEREF(__pyx_t_24);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_ExceptionReset(__pyx_t_25, __pyx_t_24, __pyx_t_18);
goto __pyx_L8_error;
__pyx_L94_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_25);
__Pyx_XGIVEREF(__pyx_t_24);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_ExceptionReset(__pyx_t_25, __pyx_t_24, __pyx_t_18);
__pyx_L98_try_end:;
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_26) {
__pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_26, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4927, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
}
goto __pyx_L92;
}
__pyx_L92:;
}
goto __pyx_L104;
__pyx_L89_error:;
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
goto __pyx_L8_error;
__pyx_L104:;
}
+4928: for c in self._worker_coroutines:
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_worker_coroutines); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4928, __pyx_L93_error) __Pyx_GOTREF(__pyx_t_3); if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { __pyx_t_22 = __pyx_t_3; __Pyx_INCREF(__pyx_t_22); __pyx_t_10 = 0; __pyx_t_30 = NULL; } else { __pyx_t_10 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4928, __pyx_L93_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_30 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 4928, __pyx_L93_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (likely(!__pyx_t_30)) { if (likely(PyList_CheckExact(__pyx_t_22))) { if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_22)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4928, __pyx_L93_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_22, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4928, __pyx_L93_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_22)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4928, __pyx_L93_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_22, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4928, __pyx_L93_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_30(__pyx_t_22); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 4928, __pyx_L93_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_c); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_c, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+4929: c.cancel()
__pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_c, __pyx_n_s_cancel); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4929, __pyx_L93_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_16); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4929, __pyx_L93_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
4930:
+4931: self.log_event([client, "all"], {"action": "restart", "client": client})
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_log_event_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4931, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_22 = PyList_New(2); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4931, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_client); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_client); PyList_SET_ITEM(__pyx_t_22, 0, __pyx_cur_scope->__pyx_v_client); __Pyx_INCREF(__pyx_n_u_all); __Pyx_GIVEREF(__pyx_n_u_all); PyList_SET_ITEM(__pyx_t_22, 1, __pyx_n_u_all); __pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4931, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_action, __pyx_n_u_restart) < 0) __PYX_ERR(0, 4931, __pyx_L8_error) if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_client, __pyx_cur_scope->__pyx_v_client) < 0) __PYX_ERR(0, 4931, __pyx_L8_error) __pyx_t_1 = NULL; __pyx_t_12 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_12 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_22, __pyx_t_5}; __pyx_t_16 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4931, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_22, __pyx_t_5}; __pyx_t_16 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4931, __pyx_L8_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_13 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4931, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_12, __pyx_t_22); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_12, __pyx_t_5); __pyx_t_22 = 0; __pyx_t_5 = 0; __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_13, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4931, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+4932: start = time()
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_time); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4932, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_16 = (__pyx_t_13) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_13) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4932, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GIVEREF(__pyx_t_16); __pyx_cur_scope->__pyx_v_start = __pyx_t_16; __pyx_t_16 = 0;
+4933: while time() < start + 10 and len(parent._workers_dv) < n_workers:
while (1) {
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_time); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4933, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_13 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_13 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_13)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_16 = (__pyx_t_13) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_13) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4933, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_cur_scope->__pyx_v_start, __pyx_int_10, 10, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4933, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_13 = PyObject_RichCompare(__pyx_t_16, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4933, __pyx_L8_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_21 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_21 < 0)) __PYX_ERR(0, 4933, __pyx_L8_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (__pyx_t_21) {
} else {
__pyx_t_32 = __pyx_t_21;
goto __pyx_L107_bool_binop_done;
}
__pyx_t_13 = __pyx_cur_scope->__pyx_v_parent->_workers_dv;
__Pyx_INCREF(__pyx_t_13);
if (unlikely(__pyx_t_13 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 4933, __pyx_L8_error)
}
__pyx_t_10 = PyDict_Size(__pyx_t_13); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4933, __pyx_L8_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_21 = ((__pyx_t_10 < __pyx_cur_scope->__pyx_v_n_workers) != 0);
__pyx_t_32 = __pyx_t_21;
__pyx_L107_bool_binop_done:;
if (!__pyx_t_32) break;
+4934: await asyncio.sleep(0.01)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4934, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_sleep); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4934, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_16))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); } } __pyx_t_13 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_3, __pyx_float_0_01) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_float_0_01); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4934, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_13); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_0 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_1 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_2 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_3 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 5; return __pyx_r; __pyx_L109_resume_from_await:; __pyx_t_4 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_6 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_7 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4934, __pyx_L8_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 4934, __pyx_L8_error) } } }
4935:
+4936: self.report({"op": "restart"})
__pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_report); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4936, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4936, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_op, __pyx_n_u_restart) < 0) __PYX_ERR(0, 4936, __pyx_L8_error) __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); } } __pyx_t_13 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4936, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
4937:
+4938: async def broadcast(
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_113broadcast(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_112broadcast[] = " Broadcast message to workers, return all results ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_113broadcast = {"broadcast", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_113broadcast, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_112broadcast};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_113broadcast(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_msg = 0;
PyObject *__pyx_v_workers = 0;
PyObject *__pyx_v_hosts = 0;
PyObject *__pyx_v_nanny = 0;
PyObject *__pyx_v_serializers = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("broadcast (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_msg,&__pyx_n_s_workers,&__pyx_n_s_hosts,&__pyx_n_s_nanny,&__pyx_n_s_serializers,0};
PyObject* values[7] = {0,0,0,0,0,0,0};
/* … */
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_112broadcast(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_msg, PyObject *__pyx_v_workers, PyObject *__pyx_v_hosts, PyObject *__pyx_v_nanny, PyObject *__pyx_v_serializers) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_30_broadcast *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("broadcast", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_30_broadcast *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_30_broadcast(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_30_broadcast, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_30_broadcast *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 4938, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_comm = __pyx_v_comm;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm);
__pyx_cur_scope->__pyx_v_msg = __pyx_v_msg;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_msg);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_msg);
__pyx_cur_scope->__pyx_v_workers = __pyx_v_workers;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_workers);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_workers);
__pyx_cur_scope->__pyx_v_hosts = __pyx_v_hosts;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_hosts);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_hosts);
__pyx_cur_scope->__pyx_v_nanny = __pyx_v_nanny;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_nanny);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_nanny);
__pyx_cur_scope->__pyx_v_serializers = __pyx_v_serializers;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_serializers);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_serializers);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_114generator11, __pyx_codeobj__70, (PyObject *) __pyx_cur_scope, __pyx_n_s_broadcast, __pyx_n_s_Scheduler_broadcast, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 4938, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.broadcast", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_9broadcast_2generator35(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_114generator11(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("broadcast", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4938, __pyx_L1_error)
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_AddTraceback("broadcast", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_117generator12(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__283 = PyTuple_Pack(15, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_msg, __pyx_n_s_workers, __pyx_n_s_hosts, __pyx_n_s_nanny, __pyx_n_s_serializers, __pyx_n_s_parent, __pyx_n_s_host, __pyx_n_s_addresses, __pyx_n_s_send_message, __pyx_n_s_send_message, __pyx_n_s_results, __pyx_n_s_w, __pyx_n_s_address); if (unlikely(!__pyx_tuple__283)) __PYX_ERR(0, 4938, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__283);
__Pyx_GIVEREF(__pyx_tuple__283);
__pyx_codeobj__70 = (PyObject*)__Pyx_PyCode_New(7, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__283, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_broadcast, 4938, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__70)) __PYX_ERR(0, 4938, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_113broadcast, 0, __pyx_n_s_Scheduler_broadcast, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__70)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4938, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__284);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_broadcast, __pyx_t_12) < 0) __PYX_ERR(0, 4938, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__284 = PyTuple_Pack(6, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_False), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__284)) __PYX_ERR(0, 4938, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__284);
__Pyx_GIVEREF(__pyx_tuple__284);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_30_broadcast {
PyObject_HEAD
PyObject *__pyx_9genexpr69__pyx_v_address;
PyObject *__pyx_v_addresses;
PyObject *__pyx_v_comm;
PyObject *__pyx_v_host;
PyObject *__pyx_v_hosts;
PyObject *__pyx_v_msg;
PyObject *__pyx_v_nanny;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent;
PyObject *__pyx_v_results;
PyObject *__pyx_v_self;
PyObject *__pyx_v_send_message;
PyObject *__pyx_v_serializers;
PyObject *__pyx_9genexpr68__pyx_v_w;
PyObject *__pyx_v_workers;
};
4939: self,
+4940: comm=None,
values[1] = ((PyObject *)((PyObject *)Py_None));
+4941: msg=None,
values[2] = ((PyObject *)((PyObject *)Py_None));
+4942: workers=None,
values[3] = ((PyObject *)((PyObject *)Py_None));
+4943: hosts=None,
values[4] = ((PyObject *)((PyObject *)Py_None));
+4944: nanny=False,
values[5] = ((PyObject *)((PyObject *)Py_False));
+4945: serializers=None,
values[6] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_msg);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_workers);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hosts);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nanny);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_serializers);
if (value) { values[6] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "broadcast") < 0)) __PYX_ERR(0, 4938, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_msg = values[2];
__pyx_v_workers = values[3];
__pyx_v_hosts = values[4];
__pyx_v_nanny = values[5];
__pyx_v_serializers = values[6];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("broadcast", 0, 1, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4938, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.broadcast", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_112broadcast(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_msg, __pyx_v_workers, __pyx_v_hosts, __pyx_v_nanny, __pyx_v_serializers);
4946: ):
4947: """ Broadcast message to workers, return all results """
+4948: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_cur_scope->__pyx_v_self; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1); __pyx_t_1 = 0;
+4949: if workers is None or workers is True:
__pyx_t_3 = (__pyx_cur_scope->__pyx_v_workers == Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (!__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L5_bool_binop_done;
}
__pyx_t_4 = (__pyx_cur_scope->__pyx_v_workers == Py_True);
__pyx_t_3 = (__pyx_t_4 != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L5_bool_binop_done:;
if (__pyx_t_2) {
/* … */
}
+4950: if hosts is None:
__pyx_t_2 = (__pyx_cur_scope->__pyx_v_hosts == Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
goto __pyx_L7;
}
+4951: workers = list(parent._workers_dv)
__pyx_t_1 = PySequence_List(__pyx_cur_scope->__pyx_v_parent->_workers_dv); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_workers); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_workers, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0;
4952: else:
+4953: workers = []
/*else*/ {
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4953, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_cur_scope->__pyx_v_workers);
__Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_workers, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
}
__pyx_L7:;
+4954: if hosts is not None:
__pyx_t_3 = (__pyx_cur_scope->__pyx_v_hosts != Py_None);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
/* … */
}
+4955: for host in hosts:
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_hosts)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_hosts)) { __pyx_t_1 = __pyx_cur_scope->__pyx_v_hosts; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_hosts); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4955, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4955, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4955, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } } else { __pyx_t_7 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_7)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 4955, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_7); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_host); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_host, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4956: if host in parent._host_info:
__pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_cur_scope->__pyx_v_host, __pyx_cur_scope->__pyx_v_parent->_host_info, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4956, __pyx_L1_error) __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* … */ }
+4957: workers.extend(parent._host_info[host]["addresses"])
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_workers, __pyx_n_s_extend); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_parent->_host_info, __pyx_cur_scope->__pyx_v_host); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyObject_Dict_GetItem(__pyx_t_9, __pyx_n_u_addresses); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_7 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_10); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
4958: # TODO replace with worker_list
4959:
+4960: if nanny:
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_nanny); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4960, __pyx_L1_error) if (__pyx_t_3) { /* … */ goto __pyx_L12; }
+4961: addresses = [parent._workers_dv[w].nanny for w in workers]
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4961, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_workers)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_workers)) {
__pyx_t_7 = __pyx_cur_scope->__pyx_v_workers; __Pyx_INCREF(__pyx_t_7); __pyx_t_5 = 0;
__pyx_t_6 = NULL;
} else {
__pyx_t_5 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_workers); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4961, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4961, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_6)) {
if (likely(PyList_CheckExact(__pyx_t_7))) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_7)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4961, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4961, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
} else {
if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4961, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4961, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
}
} else {
__pyx_t_8 = __pyx_t_6(__pyx_t_7);
if (unlikely(!__pyx_t_8)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 4961, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_8);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr68__pyx_v_w);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr68__pyx_v_w, __pyx_t_8);
__Pyx_GIVEREF(__pyx_t_8);
__pyx_t_8 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 4961, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_parent->_workers_dv, __pyx_cur_scope->__pyx_9genexpr68__pyx_v_w); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4961, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_nanny); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4961, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_10))) __PYX_ERR(0, 4961, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_v_addresses = __pyx_t_1;
__pyx_t_1 = 0;
4962: else:
+4963: addresses = workers
/*else*/ {
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_workers);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_workers);
__pyx_cur_scope->__pyx_v_addresses = __pyx_cur_scope->__pyx_v_workers;
}
__pyx_L12:;
4964:
+4965: async def send_message(addr):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_9broadcast_1send_message(PyObject *__pyx_self, PyObject *__pyx_v_addr); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_9broadcast_1send_message = {"send_message", (PyCFunction)__pyx_pw_11distributed_9scheduler_9Scheduler_9broadcast_1send_message, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_9broadcast_1send_message(PyObject *__pyx_self, PyObject *__pyx_v_addr) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("send_message (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_9broadcast_send_message(__pyx_self, ((PyObject *)__pyx_v_addr));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_9broadcast_send_message(PyObject *__pyx_self, PyObject *__pyx_v_addr) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_31_send_message *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("send_message", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_31_send_message *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_31_send_message(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_31_send_message, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_31_send_message *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 4965, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_30_broadcast *) __Pyx_CyFunction_GetClosure(__pyx_self);
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
__pyx_cur_scope->__pyx_v_addr = __pyx_v_addr;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_addr);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_addr);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_9broadcast_2generator35, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_send_message, __pyx_n_s_Scheduler_broadcast_locals_send, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 4965, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.broadcast.send_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_9broadcast_2generator35(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("send_message", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4965, __pyx_L1_error)
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("send_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__71 = PyTuple_Pack(3, __pyx_n_s_addr, __pyx_n_s_comm, __pyx_n_s_resp); if (unlikely(!__pyx_tuple__71)) __PYX_ERR(0, 4965, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__71);
__Pyx_GIVEREF(__pyx_tuple__71);
/* … */
__pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_9broadcast_1send_message, 0, __pyx_n_s_Scheduler_broadcast_locals_send, ((PyObject*)__pyx_cur_scope), __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__72)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4965, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_v_send_message = __pyx_t_1;
__pyx_t_1 = 0;
__pyx_codeobj__72 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_send_message, 4965, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__72)) __PYX_ERR(0, 4965, __pyx_L1_error)
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_31_send_message {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_30_broadcast *__pyx_outer_scope;
PyObject *__pyx_v_addr;
PyObject *__pyx_v_comm;
PyObject *__pyx_v_resp;
};
+4966: comm = await self.rpc.connect(addr)
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 4966, __pyx_L1_error) }
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self, __pyx_n_s_rpc); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4966, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_connect); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4966, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_2)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_cur_scope->__pyx_v_addr) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_cur_scope->__pyx_v_addr);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4966, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XGOTREF(__pyx_r);
if (likely(__pyx_r)) {
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, awaiting value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L4_resume_from_await:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4966, __pyx_L1_error)
__pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
} else {
__pyx_t_1 = NULL;
if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(0, 4966, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
}
__Pyx_GIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_v_comm = __pyx_t_1;
__pyx_t_1 = 0;
+4967: comm.name = "Scheduler Broadcast"
if (__Pyx_PyObject_SetAttrStr(__pyx_cur_scope->__pyx_v_comm, __pyx_n_s_name, __pyx_kp_u_Scheduler_Broadcast) < 0) __PYX_ERR(0, 4967, __pyx_L1_error)
+4968: try:
/*try:*/ {
+4969: resp = await send_recv(comm, close=True, serializers=serializers, **msg)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_send_recv); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4969, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4969, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_cur_scope->__pyx_v_comm); __pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4969, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_close, Py_True) < 0) __PYX_ERR(0, 4969, __pyx_L6_error) if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_serializers)) { __Pyx_RaiseClosureNameError("serializers"); __PYX_ERR(0, 4969, __pyx_L6_error) } if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_serializers, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_serializers) < 0) __PYX_ERR(0, 4969, __pyx_L6_error) __pyx_t_2 = __pyx_t_4; __pyx_t_4 = 0; if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_msg)) { __Pyx_RaiseClosureNameError("msg"); __PYX_ERR(0, 4969, __pyx_L6_error) } if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_msg == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); __PYX_ERR(0, 4969, __pyx_L6_error) } if (__Pyx_MergeKeywords(__pyx_t_2, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_msg) < 0) __PYX_ERR(0, 4969, __pyx_L6_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4969, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L8_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4969, __pyx_L6_error) __pyx_t_4 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_4); } else { __pyx_t_4 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_4) < 0) __PYX_ERR(0, 4969, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_GIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_v_resp = __pyx_t_4; __pyx_t_4 = 0; }
4970: finally:
+4971: self.rpc.reuse(addr, comm)
/*finally:*/ {
/*normal exit:*/{
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 4971, __pyx_L1_error) }
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self, __pyx_n_s_rpc); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4971, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_reuse); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4971, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = NULL;
__pyx_t_5 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_2)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_5 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_addr, __pyx_cur_scope->__pyx_v_comm};
__pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4971, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GOTREF(__pyx_t_4);
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_addr, __pyx_cur_scope->__pyx_v_comm};
__pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4971, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GOTREF(__pyx_t_4);
} else
#endif
{
__pyx_t_1 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4971, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (__pyx_t_2) {
__Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __pyx_t_2 = NULL;
}
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_addr);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_addr);
PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_5, __pyx_cur_scope->__pyx_v_addr);
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm);
PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_5, __pyx_cur_scope->__pyx_v_comm);
__pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4971, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L7;
}
__pyx_L6_error:;
/*exception exit:*/{
__Pyx_PyThreadState_assign
__pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13);
if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
__Pyx_XGOTREF(__pyx_t_8);
__Pyx_XGOTREF(__pyx_t_9);
__Pyx_XGOTREF(__pyx_t_10);
__Pyx_XGOTREF(__pyx_t_11);
__Pyx_XGOTREF(__pyx_t_12);
__Pyx_XGOTREF(__pyx_t_13);
__pyx_t_5 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_7 = __pyx_filename;
{
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 4971, __pyx_L10_error) }
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self, __pyx_n_s_rpc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4971, __pyx_L10_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_reuse); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4971, __pyx_L10_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = NULL;
__pyx_t_14 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_1, function);
__pyx_t_14 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_1)) {
PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_addr, __pyx_cur_scope->__pyx_v_comm};
__pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4971, __pyx_L10_error)
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GOTREF(__pyx_t_4);
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_addr, __pyx_cur_scope->__pyx_v_comm};
__pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4971, __pyx_L10_error)
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GOTREF(__pyx_t_4);
} else
#endif
{
__pyx_t_2 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4971, __pyx_L10_error)
__Pyx_GOTREF(__pyx_t_2);
if (__pyx_t_3) {
__Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL;
}
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_addr);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_addr);
PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_14, __pyx_cur_scope->__pyx_v_addr);
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm);
PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_14, __pyx_cur_scope->__pyx_v_comm);
__pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4971, __pyx_L10_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
if (PY_MAJOR_VERSION >= 3) {
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
}
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_ErrRestore(__pyx_t_8, __pyx_t_9, __pyx_t_10);
__pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0;
__pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_7;
goto __pyx_L1_error;
__pyx_L10_error:;
if (PY_MAJOR_VERSION >= 3) {
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
}
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0;
goto __pyx_L1_error;
}
__pyx_L7:;
}
+4972: return resp
__Pyx_XDECREF(__pyx_r); __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_cur_scope->__pyx_v_resp); goto __pyx_L0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
4973:
+4974: results = await All(
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_All); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); { /* enter inner scope */
+4975: [send_message(address) for address in addresses if address is not None]
__pyx_t_10 = PyList_New(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_addresses)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_addresses)) { __pyx_t_8 = __pyx_cur_scope->__pyx_v_addresses; __Pyx_INCREF(__pyx_t_8); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_addresses); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4975, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_8))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_5); __Pyx_INCREF(__pyx_t_9); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4975, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_5); __Pyx_INCREF(__pyx_t_9); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4975, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } } else { __pyx_t_9 = __pyx_t_6(__pyx_t_8); if (unlikely(!__pyx_t_9)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 4975, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_9); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr69__pyx_v_address); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr69__pyx_v_address, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_3 = (__pyx_cur_scope->__pyx_9genexpr69__pyx_v_address != Py_None); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { __pyx_t_9 = __pyx_pf_11distributed_9scheduler_9Scheduler_9broadcast_send_message(__pyx_cur_scope->__pyx_v_send_message, __pyx_cur_scope->__pyx_9genexpr69__pyx_v_address); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (unlikely(__Pyx_ListComp_Append(__pyx_t_10, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 4975, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } /* exit inner scope */ __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_10); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L18_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4974, __pyx_L1_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else { __pyx_t_1 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(0, 4974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_results = __pyx_t_1; __pyx_t_1 = 0;
4976: )
4977:
+4978: return dict(zip(workers, results))
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_workers); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_workers); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_v_workers); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_results); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_results); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_cur_scope->__pyx_v_results); __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_zip, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
4979:
+4980: async def proxy(self, comm=None, msg=None, worker=None, serializers=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_116proxy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_115proxy[] = " Proxy a communication through the scheduler to some other worker ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_116proxy = {"proxy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_116proxy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_115proxy};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_116proxy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_msg = 0;
PyObject *__pyx_v_worker = 0;
PyObject *__pyx_v_serializers = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("proxy (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_msg,&__pyx_n_s_worker,&__pyx_n_s_serializers,0};
PyObject* values[5] = {0,0,0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject *)Py_None));
values[4] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_msg);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_serializers);
if (value) { values[4] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "proxy") < 0)) __PYX_ERR(0, 4980, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_msg = values[2];
__pyx_v_worker = values[3];
__pyx_v_serializers = values[4];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("proxy", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4980, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.proxy", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_115proxy(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_msg, __pyx_v_worker, __pyx_v_serializers);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_115proxy(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_comm, PyObject *__pyx_v_msg, PyObject *__pyx_v_worker, PyObject *__pyx_v_serializers) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_32_proxy *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("proxy", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_32_proxy *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_32_proxy(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_32_proxy, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_32_proxy *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 4980, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_comm = __pyx_v_comm;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm);
__pyx_cur_scope->__pyx_v_msg = __pyx_v_msg;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_msg);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_msg);
__pyx_cur_scope->__pyx_v_worker = __pyx_v_worker;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_worker);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_worker);
__pyx_cur_scope->__pyx_v_serializers = __pyx_v_serializers;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_serializers);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_serializers);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_117generator12, __pyx_codeobj__73, (PyObject *) __pyx_cur_scope, __pyx_n_s_proxy, __pyx_n_s_Scheduler_proxy, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 4980, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.proxy", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_117generator12(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("proxy", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4980, __pyx_L1_error)
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("proxy", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_120generator13(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__285 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_msg, __pyx_n_s_worker, __pyx_n_s_serializers, __pyx_n_s_d); if (unlikely(!__pyx_tuple__285)) __PYX_ERR(0, 4980, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__285);
__Pyx_GIVEREF(__pyx_tuple__285);
__pyx_codeobj__73 = (PyObject*)__Pyx_PyCode_New(5, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__285, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_proxy, 4980, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__73)) __PYX_ERR(0, 4980, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_116proxy, 0, __pyx_n_s_Scheduler_proxy, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__73)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4980, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__286);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_proxy, __pyx_t_12) < 0) __PYX_ERR(0, 4980, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__286 = PyTuple_Pack(4, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__286)) __PYX_ERR(0, 4980, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__286);
__Pyx_GIVEREF(__pyx_tuple__286);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_32_proxy {
PyObject_HEAD
PyObject *__pyx_v_comm;
PyObject *__pyx_v_d;
PyObject *__pyx_v_msg;
PyObject *__pyx_v_self;
PyObject *__pyx_v_serializers;
PyObject *__pyx_v_worker;
};
4981: """ Proxy a communication through the scheduler to some other worker """
+4982: d = await self.broadcast(
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_broadcast); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L4_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4982, __pyx_L1_error) __pyx_t_3 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_3); } else { __pyx_t_3 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_3) < 0) __PYX_ERR(0, 4982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_GIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_v_d = __pyx_t_3; __pyx_t_3 = 0;
+4983: comm=comm, msg=msg, workers=[worker], serializers=serializers
__pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_comm, __pyx_cur_scope->__pyx_v_comm) < 0) __PYX_ERR(0, 4983, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_msg, __pyx_cur_scope->__pyx_v_msg) < 0) __PYX_ERR(0, 4983, __pyx_L1_error) __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_worker); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_worker); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_cur_scope->__pyx_v_worker); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_workers, __pyx_t_3) < 0) __PYX_ERR(0, 4983, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_serializers, __pyx_cur_scope->__pyx_v_serializers) < 0) __PYX_ERR(0, 4983, __pyx_L1_error)
4984: )
+4985: return d[worker]
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_d, __pyx_cur_scope->__pyx_v_worker); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
4986:
+4987: async def _delete_worker_data(self, worker_address, keys):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_119_delete_worker_data(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_118_delete_worker_data[] = "Delete data from a worker and update the corresponding worker/task states\n\n Parameters\n ----------\n worker_address: str\n Worker address to delete keys from\n keys: List[str]\n List of keys to delete on the specified worker\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_119_delete_worker_data = {"_delete_worker_data", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_119_delete_worker_data, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_118_delete_worker_data};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_119_delete_worker_data(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_worker_address = 0;
PyObject *__pyx_v_keys = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_delete_worker_data (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_worker_address,&__pyx_n_s_keys,0};
PyObject* values[3] = {0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker_address)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_delete_worker_data", 1, 3, 3, 1); __PYX_ERR(0, 4987, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keys)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_delete_worker_data", 1, 3, 3, 2); __PYX_ERR(0, 4987, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_delete_worker_data") < 0)) __PYX_ERR(0, 4987, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
}
__pyx_v_self = values[0];
__pyx_v_worker_address = values[1];
__pyx_v_keys = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_delete_worker_data", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4987, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler._delete_worker_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_118_delete_worker_data(__pyx_self, __pyx_v_self, __pyx_v_worker_address, __pyx_v_keys);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_118_delete_worker_data(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_worker_address, PyObject *__pyx_v_keys) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_33__delete_worker_data *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_delete_worker_data", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_33__delete_worker_data *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_33__delete_worker_data(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_33__delete_worker_data, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_33__delete_worker_data *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 4987, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_worker_address = __pyx_v_worker_address;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_worker_address);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_worker_address);
__pyx_cur_scope->__pyx_v_keys = __pyx_v_keys;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_keys);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_keys);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_120generator13, __pyx_codeobj__74, (PyObject *) __pyx_cur_scope, __pyx_n_s_delete_worker_data, __pyx_n_s_Scheduler__delete_worker_data, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 4987, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler._delete_worker_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_120generator13(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_delete_worker_data", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4987, __pyx_L1_error)
/* … */
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_AddTraceback("_delete_worker_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_123generator14(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__287 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_worker_address, __pyx_n_s_keys, __pyx_n_s_parent, __pyx_n_s_ws, __pyx_n_s_ts, __pyx_n_s_tasks, __pyx_n_s_key); if (unlikely(!__pyx_tuple__287)) __PYX_ERR(0, 4987, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__287);
__Pyx_GIVEREF(__pyx_tuple__287);
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_119_delete_worker_data, 0, __pyx_n_s_Scheduler__delete_worker_data, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4987, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_delete_worker_data, __pyx_t_12) < 0) __PYX_ERR(0, 4987, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(3, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__287, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_delete_worker_data, 4987, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(0, 4987, __pyx_L1_error)
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_33__delete_worker_data {
PyObject_HEAD
PyObject *__pyx_9genexpr70__pyx_v_key;
PyObject *__pyx_v_keys;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent;
PyObject *__pyx_v_self;
PyObject *__pyx_v_tasks;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts;
PyObject *__pyx_v_worker_address;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws;
};
4988: """Delete data from a worker and update the corresponding worker/task states
4989:
4990: Parameters
4991: ----------
4992: worker_address: str
4993: Worker address to delete keys from
4994: keys: List[str]
4995: List of keys to delete on the specified worker
4996: """
+4997: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_cur_scope->__pyx_v_self; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1); __pyx_t_1 = 0;
+4998: await retry_operation(
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_retry_operation); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L4_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4998, __pyx_L1_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 4998, __pyx_L1_error) } }
+4999: self.rpc(addr=worker_address).delete_data, keys=list(keys), report=False
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_rpc); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_addr, __pyx_cur_scope->__pyx_v_worker_address) < 0) __PYX_ERR(0, 4999, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_delete_data_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PySequence_List(__pyx_cur_scope->__pyx_v_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_keys, __pyx_t_2) < 0) __PYX_ERR(0, 4999, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_report, Py_False) < 0) __PYX_ERR(0, 4999, __pyx_L1_error)
5000: )
5001:
+5002: ws: WorkerState = parent._workers_dv[worker_address]
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5002, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_parent->_workers_dv, __pyx_cur_scope->__pyx_v_worker_address); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5002, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5002, __pyx_L1_error)
__Pyx_GIVEREF(__pyx_t_2);
__pyx_cur_scope->__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_2);
__pyx_t_2 = 0;
5003: ts: TaskState
+5004: tasks: set = {parent._tasks[key] for key in keys}
{ /* enter inner scope */
__pyx_t_2 = PySet_New(NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5004, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_keys)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_keys)) {
__pyx_t_3 = __pyx_cur_scope->__pyx_v_keys; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
__pyx_t_6 = NULL;
} else {
__pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_keys); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5004, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5004, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_6)) {
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5004, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5004, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
} else {
if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5004, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5004, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
}
} else {
__pyx_t_4 = __pyx_t_6(__pyx_t_3);
if (unlikely(!__pyx_t_4)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5004, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_4);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr70__pyx_v_key);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr70__pyx_v_key, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5004, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_parent->_tasks, __pyx_cur_scope->__pyx_9genexpr70__pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5004, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(PySet_Add(__pyx_t_2, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 5004, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_2);
__pyx_cur_scope->__pyx_v_tasks = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
+5005: ws._has_what -= tasks
__pyx_t_2 = PyNumber_InPlaceSubtract(__pyx_cur_scope->__pyx_v_ws->_has_what, __pyx_cur_scope->__pyx_v_tasks); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!(likely(PySet_CheckExact(__pyx_t_2))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "set", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(0, 5005, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_ws->_has_what); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_ws->_has_what); __pyx_cur_scope->__pyx_v_ws->_has_what = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+5006: for ts in tasks:
__pyx_t_5 = 0; __pyx_t_3 = __Pyx_set_iterator(__pyx_cur_scope->__pyx_v_tasks, 1, (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = __pyx_t_3; __pyx_t_3 = 0; while (1) { __pyx_t_9 = __Pyx_set_iter_next(__pyx_t_2, __pyx_t_7, &__pyx_t_5, &__pyx_t_3, __pyx_t_8); if (unlikely(__pyx_t_9 == 0)) break; if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 5006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5006, __pyx_L1_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_ts)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_3)); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0;
+5007: ts._who_has.remove(ws)
if (unlikely(__pyx_cur_scope->__pyx_v_ts->_who_has == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
__PYX_ERR(0, 5007, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PySet_Remove(__pyx_cur_scope->__pyx_v_ts->_who_has, ((PyObject *)__pyx_cur_scope->__pyx_v_ws)); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 5007, __pyx_L1_error)
+5008: ws._nbytes -= ts.get_nbytes()
__pyx_t_11 = __pyx_f_11distributed_9scheduler_9TaskState_get_nbytes(__pyx_cur_scope->__pyx_v_ts, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 5008, __pyx_L1_error) __pyx_cur_scope->__pyx_v_ws->_nbytes = (__pyx_cur_scope->__pyx_v_ws->_nbytes - __pyx_t_11); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5009: self.log_event(ws._address, {"action": "remove-worker-data", "keys": keys})
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_log_event_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_u_action, __pyx_kp_u_remove_worker_data) < 0) __PYX_ERR(0, 5009, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_4, __pyx_n_u_keys, __pyx_cur_scope->__pyx_v_keys) < 0) __PYX_ERR(0, 5009, __pyx_L1_error) __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_cur_scope->__pyx_v_ws->_address, __pyx_t_4}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5009, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_cur_scope->__pyx_v_ws->_address, __pyx_t_4}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5009, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { __pyx_t_12 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_cur_scope->__pyx_v_ws->_address); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_ws->_address); PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_8, __pyx_cur_scope->__pyx_v_ws->_address); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_8, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_12, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
5010:
+5011: async def rebalance(self, comm=None, keys=None, workers=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_122rebalance(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_121rebalance[] = "Rebalance keys so that each worker stores roughly equal bytes\n\n **Policy**\n\n This orders the workers by what fraction of bytes of the existing keys\n they have. It walks down this list from most-to-least. At each worker\n it sends the largest results it can find and sends them to the least\n occupied worker until either the sender or the recipient are at the\n average expected load.\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_122rebalance = {"rebalance", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_122rebalance, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_121rebalance};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_122rebalance(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_keys = 0;
PyObject *__pyx_v_workers = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("rebalance (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_keys,&__pyx_n_s_workers,0};
PyObject* values[4] = {0,0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keys);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_workers);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "rebalance") < 0)) __PYX_ERR(0, 5011, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_keys = values[2];
__pyx_v_workers = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("rebalance", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5011, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.rebalance", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_121rebalance(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_keys, __pyx_v_workers);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_9rebalance_9genexpr77_2generator36(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_121rebalance(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_keys, PyObject *__pyx_v_workers) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_34_rebalance *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("rebalance", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_34_rebalance *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_34_rebalance(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_34_rebalance, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_34_rebalance *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 5011, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_comm = __pyx_v_comm;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm);
__pyx_cur_scope->__pyx_v_keys = __pyx_v_keys;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_keys);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_keys);
__pyx_cur_scope->__pyx_v_workers = __pyx_v_workers;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_workers);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_workers);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_123generator14, __pyx_codeobj__75, (PyObject *) __pyx_cur_scope, __pyx_n_s_rebalance, __pyx_n_s_Scheduler_rebalance, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 5011, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.rebalance", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_123generator14(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("rebalance", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5011, __pyx_L1_error)
/* … */
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_21);
__Pyx_XDECREF(__pyx_t_27);
__Pyx_XDECREF(__pyx_t_28);
__Pyx_XDECREF(__pyx_t_29);
__Pyx_AddTraceback("rebalance", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_126generator15(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__288 = PyTuple_Pack(42, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_keys, __pyx_n_s_workers, __pyx_n_s_parent, __pyx_n_s_ts, __pyx_n_s_tasks, __pyx_n_s_missing_data_2, __pyx_n_s_workers_by_task, __pyx_n_s_ws, __pyx_n_s_tasks_by_worker, __pyx_n_s_k, __pyx_n_s_v, __pyx_n_s_vv, __pyx_n_s_worker_bytes, __pyx_n_s_avg, __pyx_n_s_sorted_workers, __pyx_n_s_recipients, __pyx_n_s_recipient, __pyx_n_s_msgs, __pyx_n_s_sender, __pyx_n_s_sender_keys, __pyx_n_s_nb, __pyx_n_s_to_recipients, __pyx_n_s_to_senders, __pyx_n_s_result, __pyx_n_s_r, __pyx_n_s_k, __pyx_n_s_ts, __pyx_n_s_w, __pyx_n_s_ts, __pyx_n_s_ts, __pyx_n_s_ws, __pyx_n_s_ws, __pyx_n_s_v, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_ts, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__288)) __PYX_ERR(0, 5011, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__288);
__Pyx_GIVEREF(__pyx_tuple__288);
__pyx_codeobj__75 = (PyObject*)__Pyx_PyCode_New(4, 0, 42, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__288, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_rebalance, 5011, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__75)) __PYX_ERR(0, 5011, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_122rebalance, 0, __pyx_n_s_Scheduler_rebalance, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__75)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5011, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__289);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_rebalance, __pyx_t_12) < 0) __PYX_ERR(0, 5011, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__289 = PyTuple_Pack(3, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__289)) __PYX_ERR(0, 5011, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__289);
__Pyx_GIVEREF(__pyx_tuple__289);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_34_rebalance {
PyObject_HEAD
PyObject *__pyx_v_avg;
PyObject *__pyx_v_comm;
PyObject *__pyx_v_genexpr;
PyObject *__pyx_9genexpr71__pyx_v_k;
PyObject *__pyx_v_k;
PyObject *__pyx_v_keys;
PyObject *__pyx_v_missing_data;
PyObject *__pyx_v_msgs;
PyObject *__pyx_v_nb;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent;
PyObject *__pyx_v_r;
PyObject *__pyx_v_recipient;
PyObject *__pyx_v_recipients;
PyObject *__pyx_v_result;
PyObject *__pyx_v_self;
PyObject *__pyx_v_sender;
PyObject *__pyx_v_sender_keys;
PyObject *__pyx_v_sorted_workers;
PyObject *__pyx_v_tasks;
PyObject *__pyx_v_tasks_by_worker;
PyObject *__pyx_v_to_recipients;
PyObject *__pyx_v_to_senders;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_9genexpr72__pyx_v_ts;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_9genexpr74__pyx_v_ts;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_9genexpr75__pyx_v_ts;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_9genexpr79__pyx_v_ts;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts;
PyObject *__pyx_9genexpr77__pyx_v_v;
PyObject *__pyx_v_v;
PyObject *__pyx_v_vv;
PyObject *__pyx_9genexpr73__pyx_v_w;
PyObject *__pyx_v_worker_bytes;
PyObject *__pyx_v_workers;
PyObject *__pyx_v_workers_by_task;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_9genexpr76__pyx_v_ws;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_9genexpr77__pyx_v_ws;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws;
PyObject *__pyx_t_0;
PyObject *__pyx_t_1;
PyObject *__pyx_t_2;
PyObject *__pyx_t_3;
PyObject *__pyx_t_4;
PyObject *__pyx_t_5;
PyObject *__pyx_t_6;
PyObject *__pyx_t_7;
PyObject *__pyx_t_8;
PyObject *__pyx_t_9;
PyObject *__pyx_t_10;
PyObject *__pyx_t_11;
PyObject *__pyx_t_12;
};
5012: """Rebalance keys so that each worker stores roughly equal bytes
5013:
5014: **Policy**
5015:
5016: This orders the workers by what fraction of bytes of the existing keys
5017: they have. It walks down this list from most-to-least. At each worker
5018: it sends the largest results it can find and sends them to the least
5019: occupied worker until either the sender or the recipient are at the
5020: average expected load.
5021: """
+5022: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_cur_scope->__pyx_v_self; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1); __pyx_t_1 = 0;
5023: ts: TaskState
+5024: with log_errors():
/*with:*/ {
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_log_errors); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5024, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
}
}
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5024, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5024, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5024, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5024, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/*try:*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
goto __pyx_L13_try_end;
__pyx_L8_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.rebalance", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_28, &__pyx_t_27, &__pyx_t_3) < 0) __PYX_ERR(0, 5024, __pyx_L10_except_error)
__Pyx_GOTREF(__pyx_t_28);
__Pyx_GOTREF(__pyx_t_27);
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = PyTuple_Pack(3, __pyx_t_28, __pyx_t_27, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5024, __pyx_L10_except_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5024, __pyx_L10_except_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_9);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (__pyx_t_13 < 0) __PYX_ERR(0, 5024, __pyx_L10_except_error)
__pyx_t_19 = ((!(__pyx_t_13 != 0)) != 0);
if (__pyx_t_19) {
__Pyx_GIVEREF(__pyx_t_28);
__Pyx_GIVEREF(__pyx_t_27);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ErrRestoreWithState(__pyx_t_28, __pyx_t_27, __pyx_t_3);
__pyx_t_28 = 0; __pyx_t_27 = 0; __pyx_t_3 = 0;
__PYX_ERR(0, 5024, __pyx_L10_except_error)
}
__Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
goto __pyx_L9_exception_handled;
}
__pyx_L10_except_error:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L1_error;
__pyx_L12_try_return:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L5_return;
__pyx_L9_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
__pyx_L13_try_end:;
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_4) {
__pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5024, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
goto __pyx_L7;
}
__pyx_L5_return: {
__Pyx_PyThreadState_assign
__pyx_t_8 = 0; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_9 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0;
if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_22, &__pyx_t_23);
if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6);
__Pyx_XGOTREF(__pyx_t_8);
__Pyx_XGOTREF(__pyx_t_7);
__Pyx_XGOTREF(__pyx_t_6);
__Pyx_XGOTREF(__pyx_t_9);
__Pyx_XGOTREF(__pyx_t_22);
__Pyx_XGOTREF(__pyx_t_23);
__pyx_t_24 = __pyx_r;
__pyx_r = 0;
if (__pyx_t_4) {
__pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5024, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
}
__pyx_r = __pyx_t_24;
__pyx_t_24 = 0;
if (PY_MAJOR_VERSION >= 3) {
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_ExceptionReset(__pyx_t_9, __pyx_t_22, __pyx_t_23);
}
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_ErrRestore(__pyx_t_8, __pyx_t_7, __pyx_t_6);
__pyx_t_8 = 0; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_9 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0;
goto __pyx_L0;
}
__pyx_L7:;
}
goto __pyx_L94;
__pyx_L4_error:;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L1_error;
__pyx_L94:;
}
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
+5025: async with self._lock:
/*with:*/ {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_lock); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5025, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_9 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_aexit); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5025, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_aenter); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5025, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5025, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XGOTREF(__pyx_r);
if (likely(__pyx_r)) {
__Pyx_XGIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
__Pyx_XGIVEREF(__pyx_t_4);
__pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_t_6);
__pyx_cur_scope->__pyx_t_2 = __pyx_t_6;
__Pyx_XGIVEREF(__pyx_t_7);
__pyx_cur_scope->__pyx_t_3 = __pyx_t_7;
__Pyx_XGIVEREF(__pyx_t_8);
__pyx_cur_scope->__pyx_t_4 = __pyx_t_8;
__Pyx_XGIVEREF(__pyx_t_9);
__pyx_cur_scope->__pyx_t_5 = __pyx_t_9;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, awaiting value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L15_resume_from_await:;
__pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = 0;
__Pyx_XGOTREF(__pyx_t_4);
__pyx_t_6 = __pyx_cur_scope->__pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = 0;
__Pyx_XGOTREF(__pyx_t_6);
__pyx_t_7 = __pyx_cur_scope->__pyx_t_3;
__pyx_cur_scope->__pyx_t_3 = 0;
__Pyx_XGOTREF(__pyx_t_7);
__pyx_t_8 = __pyx_cur_scope->__pyx_t_4;
__pyx_cur_scope->__pyx_t_4 = 0;
__Pyx_XGOTREF(__pyx_t_8);
__pyx_t_9 = __pyx_cur_scope->__pyx_t_5;
__pyx_cur_scope->__pyx_t_5 = 0;
__Pyx_XGOTREF(__pyx_t_9);
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5025, __pyx_L14_error)
__pyx_t_2 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_2);
} else {
__pyx_t_2 = NULL;
if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_2) < 0) __PYX_ERR(0, 5025, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_2);
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/*try:*/ {
{
/*try:*/ {
/* … */
}
__pyx_L19_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.rebalance", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_27, &__pyx_t_28) < 0) __PYX_ERR(0, 5025, __pyx_L21_except_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_t_27);
__Pyx_GOTREF(__pyx_t_28);
__pyx_t_1 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_27, __pyx_t_28); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5025, __pyx_L21_except_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_24 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_1, NULL);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5025, __pyx_L21_except_error)
__Pyx_GOTREF(__pyx_t_24);
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_24);
__Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
__Pyx_XGOTREF(__pyx_r);
if (likely(__pyx_r)) {
__Pyx_XGIVEREF(__pyx_t_3);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_3;
__Pyx_XGIVEREF(__pyx_t_4);
__pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_t_6);
__pyx_cur_scope->__pyx_t_2 = __pyx_t_6;
__Pyx_XGIVEREF(__pyx_t_7);
__pyx_cur_scope->__pyx_t_3 = __pyx_t_7;
__Pyx_XGIVEREF(__pyx_t_8);
__pyx_cur_scope->__pyx_t_4 = __pyx_t_8;
__Pyx_XGIVEREF(__pyx_t_9);
__pyx_cur_scope->__pyx_t_5 = __pyx_t_9;
__Pyx_XGIVEREF(__pyx_t_10);
__pyx_cur_scope->__pyx_t_6 = __pyx_t_10;
__Pyx_XGIVEREF(__pyx_t_11);
__pyx_cur_scope->__pyx_t_7 = __pyx_t_11;
__Pyx_XGIVEREF(__pyx_t_12);
__pyx_cur_scope->__pyx_t_8 = __pyx_t_12;
__Pyx_XGIVEREF(__pyx_t_24);
__pyx_cur_scope->__pyx_t_9 = __pyx_t_24;
__Pyx_XGIVEREF(__pyx_t_27);
__pyx_cur_scope->__pyx_t_10 = __pyx_t_27;
__Pyx_XGIVEREF(__pyx_t_28);
__pyx_cur_scope->__pyx_t_11 = __pyx_t_28;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_SwapException(__pyx_generator);
/* return from generator, awaiting value */
__pyx_generator->resume_label = 4;
return __pyx_r;
__pyx_L87_resume_from_await:;
__pyx_t_3 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_3);
__pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = 0;
__Pyx_XGOTREF(__pyx_t_4);
__pyx_t_6 = __pyx_cur_scope->__pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = 0;
__Pyx_XGOTREF(__pyx_t_6);
__pyx_t_7 = __pyx_cur_scope->__pyx_t_3;
__pyx_cur_scope->__pyx_t_3 = 0;
__Pyx_XGOTREF(__pyx_t_7);
__pyx_t_8 = __pyx_cur_scope->__pyx_t_4;
__pyx_cur_scope->__pyx_t_4 = 0;
__Pyx_XGOTREF(__pyx_t_8);
__pyx_t_9 = __pyx_cur_scope->__pyx_t_5;
__pyx_cur_scope->__pyx_t_5 = 0;
__Pyx_XGOTREF(__pyx_t_9);
__pyx_t_10 = __pyx_cur_scope->__pyx_t_6;
__pyx_cur_scope->__pyx_t_6 = 0;
__Pyx_XGOTREF(__pyx_t_10);
__pyx_t_11 = __pyx_cur_scope->__pyx_t_7;
__pyx_cur_scope->__pyx_t_7 = 0;
__Pyx_XGOTREF(__pyx_t_11);
__pyx_t_12 = __pyx_cur_scope->__pyx_t_8;
__pyx_cur_scope->__pyx_t_8 = 0;
__Pyx_XGOTREF(__pyx_t_12);
__pyx_t_24 = __pyx_cur_scope->__pyx_t_9;
__pyx_cur_scope->__pyx_t_9 = 0;
__Pyx_XGOTREF(__pyx_t_24);
__pyx_t_27 = __pyx_cur_scope->__pyx_t_10;
__pyx_cur_scope->__pyx_t_10 = 0;
__Pyx_XGOTREF(__pyx_t_27);
__pyx_t_28 = __pyx_cur_scope->__pyx_t_11;
__pyx_cur_scope->__pyx_t_11 = 0;
__Pyx_XGOTREF(__pyx_t_28);
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5025, __pyx_L21_except_error)
__pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
} else {
__pyx_t_1 = NULL;
if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(0, 5025, __pyx_L21_except_error)
__Pyx_GOTREF(__pyx_t_1);
}
__pyx_t_24 = __pyx_t_1;
__pyx_t_1 = 0;
__pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_t_24);
__Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
if (__pyx_t_19 < 0) __PYX_ERR(0, 5025, __pyx_L21_except_error)
__pyx_t_13 = ((!(__pyx_t_19 != 0)) != 0);
if (__pyx_t_13) {
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_27);
__Pyx_XGIVEREF(__pyx_t_28);
__Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_27, __pyx_t_28);
__pyx_t_3 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0;
__PYX_ERR(0, 5025, __pyx_L21_except_error)
}
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0;
goto __pyx_L20_exception_handled;
}
__pyx_L21_except_error:;
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
goto __pyx_L8_error;
__pyx_L23_try_return:;
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
goto __pyx_L16_return;
__pyx_L20_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_9) {
__pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5025, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_12);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XGOTREF(__pyx_r);
if (likely(__pyx_r)) {
__Pyx_XGIVEREF(__pyx_t_4);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_t_6);
__pyx_cur_scope->__pyx_t_1 = __pyx_t_6;
__Pyx_XGIVEREF(__pyx_t_7);
__pyx_cur_scope->__pyx_t_2 = __pyx_t_7;
__Pyx_XGIVEREF(__pyx_t_8);
__pyx_cur_scope->__pyx_t_3 = __pyx_t_8;
__Pyx_XGIVEREF(__pyx_t_9);
__pyx_cur_scope->__pyx_t_4 = __pyx_t_9;
__Pyx_XGIVEREF(__pyx_t_12);
__pyx_cur_scope->__pyx_t_5 = __pyx_t_12;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, awaiting value */
__pyx_generator->resume_label = 5;
return __pyx_r;
__pyx_L88_resume_from_await:;
__pyx_t_4 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_4);
__pyx_t_6 = __pyx_cur_scope->__pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = 0;
__Pyx_XGOTREF(__pyx_t_6);
__pyx_t_7 = __pyx_cur_scope->__pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = 0;
__Pyx_XGOTREF(__pyx_t_7);
__pyx_t_8 = __pyx_cur_scope->__pyx_t_3;
__pyx_cur_scope->__pyx_t_3 = 0;
__Pyx_XGOTREF(__pyx_t_8);
__pyx_t_9 = __pyx_cur_scope->__pyx_t_4;
__pyx_cur_scope->__pyx_t_4 = 0;
__Pyx_XGOTREF(__pyx_t_9);
__pyx_t_12 = __pyx_cur_scope->__pyx_t_5;
__pyx_cur_scope->__pyx_t_5 = 0;
__Pyx_XGOTREF(__pyx_t_12);
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5025, __pyx_L8_error)
__pyx_t_28 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_28);
} else {
__pyx_t_28 = NULL;
if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_28) < 0) __PYX_ERR(0, 5025, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_28);
}
__pyx_t_12 = __pyx_t_28;
__pyx_t_28 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
}
goto __pyx_L18;
}
__pyx_L16_return: {
__Pyx_PyThreadState_assign
__pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __pyx_t_22 = 0;
if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_24, &__pyx_t_23, &__pyx_t_22);
if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_12, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_12, &__pyx_t_11, &__pyx_t_10);
__Pyx_XGOTREF(__pyx_t_12);
__Pyx_XGOTREF(__pyx_t_11);
__Pyx_XGOTREF(__pyx_t_10);
__Pyx_XGOTREF(__pyx_t_24);
__Pyx_XGOTREF(__pyx_t_23);
__Pyx_XGOTREF(__pyx_t_22);
__pyx_t_30 = __pyx_r;
__pyx_r = 0;
if (__pyx_t_9) {
__pyx_t_31 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 5025, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_31);
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_31);
__Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0;
__Pyx_XGOTREF(__pyx_r);
if (likely(__pyx_r)) {
__Pyx_XGIVEREF(__pyx_t_4);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_t_6);
__pyx_cur_scope->__pyx_t_1 = __pyx_t_6;
__Pyx_XGIVEREF(__pyx_t_7);
__pyx_cur_scope->__pyx_t_2 = __pyx_t_7;
__Pyx_XGIVEREF(__pyx_t_8);
__pyx_cur_scope->__pyx_t_3 = __pyx_t_8;
__Pyx_XGIVEREF(__pyx_t_9);
__pyx_cur_scope->__pyx_t_4 = __pyx_t_9;
__Pyx_XGIVEREF(__pyx_t_10);
__pyx_cur_scope->__pyx_t_5 = __pyx_t_10;
__Pyx_XGIVEREF(__pyx_t_11);
__pyx_cur_scope->__pyx_t_6 = __pyx_t_11;
__Pyx_XGIVEREF(__pyx_t_12);
__pyx_cur_scope->__pyx_t_7 = __pyx_t_12;
__Pyx_XGIVEREF(__pyx_t_22);
__pyx_cur_scope->__pyx_t_8 = __pyx_t_22;
__Pyx_XGIVEREF(__pyx_t_23);
__pyx_cur_scope->__pyx_t_9 = __pyx_t_23;
__Pyx_XGIVEREF(__pyx_t_24);
__pyx_cur_scope->__pyx_t_10 = __pyx_t_24;
__Pyx_XGIVEREF(__pyx_t_30);
__pyx_cur_scope->__pyx_t_11 = __pyx_t_30;
__Pyx_XGIVEREF(__pyx_t_31);
__pyx_cur_scope->__pyx_t_12 = __pyx_t_31;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, awaiting value */
__pyx_generator->resume_label = 6;
return __pyx_r;
__pyx_L89_resume_from_await:;
__pyx_t_4 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_4);
__pyx_t_6 = __pyx_cur_scope->__pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = 0;
__Pyx_XGOTREF(__pyx_t_6);
__pyx_t_7 = __pyx_cur_scope->__pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = 0;
__Pyx_XGOTREF(__pyx_t_7);
__pyx_t_8 = __pyx_cur_scope->__pyx_t_3;
__pyx_cur_scope->__pyx_t_3 = 0;
__Pyx_XGOTREF(__pyx_t_8);
__pyx_t_9 = __pyx_cur_scope->__pyx_t_4;
__pyx_cur_scope->__pyx_t_4 = 0;
__Pyx_XGOTREF(__pyx_t_9);
__pyx_t_10 = __pyx_cur_scope->__pyx_t_5;
__pyx_cur_scope->__pyx_t_5 = 0;
__Pyx_XGOTREF(__pyx_t_10);
__pyx_t_11 = __pyx_cur_scope->__pyx_t_6;
__pyx_cur_scope->__pyx_t_6 = 0;
__Pyx_XGOTREF(__pyx_t_11);
__pyx_t_12 = __pyx_cur_scope->__pyx_t_7;
__pyx_cur_scope->__pyx_t_7 = 0;
__Pyx_XGOTREF(__pyx_t_12);
__pyx_t_22 = __pyx_cur_scope->__pyx_t_8;
__pyx_cur_scope->__pyx_t_8 = 0;
__Pyx_XGOTREF(__pyx_t_22);
__pyx_t_23 = __pyx_cur_scope->__pyx_t_9;
__pyx_cur_scope->__pyx_t_9 = 0;
__Pyx_XGOTREF(__pyx_t_23);
__pyx_t_24 = __pyx_cur_scope->__pyx_t_10;
__pyx_cur_scope->__pyx_t_10 = 0;
__Pyx_XGOTREF(__pyx_t_24);
__pyx_t_30 = __pyx_cur_scope->__pyx_t_11;
__pyx_cur_scope->__pyx_t_11 = 0;
__Pyx_XGOTREF(__pyx_t_30);
__pyx_t_31 = __pyx_cur_scope->__pyx_t_12;
__pyx_cur_scope->__pyx_t_12 = 0;
__Pyx_XGOTREF(__pyx_t_31);
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5025, __pyx_L8_error)
__pyx_t_28 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_28);
} else {
__pyx_t_28 = NULL;
if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_28) < 0) __PYX_ERR(0, 5025, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_28);
}
__pyx_t_31 = __pyx_t_28;
__pyx_t_28 = 0;
__Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0;
}
__pyx_r = __pyx_t_30;
__pyx_t_30 = 0;
if (PY_MAJOR_VERSION >= 3) {
__Pyx_XGIVEREF(__pyx_t_24);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_ExceptionReset(__pyx_t_24, __pyx_t_23, __pyx_t_22);
}
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_ErrRestore(__pyx_t_12, __pyx_t_11, __pyx_t_10);
__pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __pyx_t_22 = 0;
goto __pyx_L12_try_return;
}
__pyx_L18:;
}
goto __pyx_L90;
__pyx_L14_error:;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
goto __pyx_L8_error;
__pyx_L90:;
}
+5026: if keys:
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_keys); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 5026, __pyx_L19_error) if (__pyx_t_13) { /* … */ goto __pyx_L25; }
+5027: tasks = {parent._tasks[k] for k in keys}
{ /* enter inner scope */
__pyx_t_1 = PySet_New(NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5027, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_keys)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_keys)) {
__pyx_t_2 = __pyx_cur_scope->__pyx_v_keys; __Pyx_INCREF(__pyx_t_2); __pyx_t_14 = 0;
__pyx_t_15 = NULL;
} else {
__pyx_t_14 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5027, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5027, __pyx_L19_error)
}
for (;;) {
if (likely(!__pyx_t_15)) {
if (likely(PyList_CheckExact(__pyx_t_2))) {
if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_14); __Pyx_INCREF(__pyx_t_3); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5027, __pyx_L19_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5027, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
} else {
if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_14); __Pyx_INCREF(__pyx_t_3); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5027, __pyx_L19_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5027, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
}
} else {
__pyx_t_3 = __pyx_t_15(__pyx_t_2);
if (unlikely(!__pyx_t_3)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5027, __pyx_L19_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_3);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr71__pyx_v_k);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr71__pyx_v_k, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5027, __pyx_L19_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_parent->_tasks, __pyx_cur_scope->__pyx_9genexpr71__pyx_v_k); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5027, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(PySet_Add(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 5027, __pyx_L19_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_v_tasks = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+5028: missing_data = [ts._key for ts in tasks if not ts._who_has]
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5028, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_14 = 0;
__pyx_t_3 = __Pyx_set_iterator(__pyx_cur_scope->__pyx_v_tasks, 1, (&__pyx_t_16), (&__pyx_t_17)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5028, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_2);
__pyx_t_2 = __pyx_t_3;
__pyx_t_3 = 0;
while (1) {
__pyx_t_18 = __Pyx_set_iter_next(__pyx_t_2, __pyx_t_16, &__pyx_t_14, &__pyx_t_3, __pyx_t_17);
if (unlikely(__pyx_t_18 == 0)) break;
if (unlikely(__pyx_t_18 == -1)) __PYX_ERR(0, 5028, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5028, __pyx_L19_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_9genexpr72__pyx_v_ts));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr72__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_3));
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
__pyx_t_13 = (__pyx_cur_scope->__pyx_9genexpr72__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_cur_scope->__pyx_9genexpr72__pyx_v_ts->_who_has) != 0);
__pyx_t_19 = ((!__pyx_t_13) != 0);
if (__pyx_t_19) {
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_cur_scope->__pyx_9genexpr72__pyx_v_ts->_key))) __PYX_ERR(0, 5028, __pyx_L19_error)
}
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_v_missing_data = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+5029: if missing_data:
__pyx_t_19 = (PyList_GET_SIZE(__pyx_cur_scope->__pyx_v_missing_data) != 0);
if (__pyx_t_19) {
/* … */
}
+5030: return {"status": "missing-data", "keys": missing_data}
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5030, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_status, __pyx_kp_u_missing_data) < 0) __PYX_ERR(0, 5030, __pyx_L19_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_keys, __pyx_cur_scope->__pyx_v_missing_data) < 0) __PYX_ERR(0, 5030, __pyx_L19_error) __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L23_try_return;
5031: else:
+5032: tasks = set(parent._tasks.values())
/*else*/ {
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
__PYX_ERR(0, 5032, __pyx_L19_error)
}
__pyx_t_1 = __Pyx_PyDict_Values(__pyx_cur_scope->__pyx_v_parent->_tasks); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5032, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PySet_New(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5032, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_GIVEREF(__pyx_t_2);
__pyx_cur_scope->__pyx_v_tasks = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
}
__pyx_L25:;
5033:
+5034: if workers:
__pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_workers); if (unlikely(__pyx_t_19 < 0)) __PYX_ERR(0, 5034, __pyx_L19_error) if (__pyx_t_19) { /* … */ goto __pyx_L32; }
+5035: workers = {parent._workers_dv[w] for w in workers}
{ /* enter inner scope */
__pyx_t_2 = PySet_New(NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5035, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_2);
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_workers)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_workers)) {
__pyx_t_1 = __pyx_cur_scope->__pyx_v_workers; __Pyx_INCREF(__pyx_t_1); __pyx_t_16 = 0;
__pyx_t_15 = NULL;
} else {
__pyx_t_16 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_workers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5035, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_15 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5035, __pyx_L19_error)
}
for (;;) {
if (likely(!__pyx_t_15)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_16); __Pyx_INCREF(__pyx_t_3); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 5035, __pyx_L19_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5035, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
} else {
if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_16); __Pyx_INCREF(__pyx_t_3); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 5035, __pyx_L19_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5035, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
}
} else {
__pyx_t_3 = __pyx_t_15(__pyx_t_1);
if (unlikely(!__pyx_t_3)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5035, __pyx_L19_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_3);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr73__pyx_v_w);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr73__pyx_v_w, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5035, __pyx_L19_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_parent->_workers_dv, __pyx_cur_scope->__pyx_9genexpr73__pyx_v_w); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5035, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(PySet_Add(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 5035, __pyx_L19_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
} /* exit inner scope */
__Pyx_GOTREF(__pyx_cur_scope->__pyx_v_workers);
__Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_workers, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
+5036: workers_by_task = {ts: ts._who_has & workers for ts in tasks}
{ /* enter inner scope */
__pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5036, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_16 = 0;
__pyx_t_3 = __Pyx_set_iterator(__pyx_cur_scope->__pyx_v_tasks, 1, (&__pyx_t_14), (&__pyx_t_17)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5036, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_3;
__pyx_t_3 = 0;
while (1) {
__pyx_t_18 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_14, &__pyx_t_16, &__pyx_t_3, __pyx_t_17);
if (unlikely(__pyx_t_18 == 0)) break;
if (unlikely(__pyx_t_18 == -1)) __PYX_ERR(0, 5036, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5036, __pyx_L19_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_9genexpr74__pyx_v_ts));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr74__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_3));
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
__pyx_t_3 = PyNumber_And(__pyx_cur_scope->__pyx_9genexpr74__pyx_v_ts->_who_has, __pyx_cur_scope->__pyx_v_workers); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5036, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(PyDict_SetItem(__pyx_t_2, (PyObject*)__pyx_cur_scope->__pyx_9genexpr74__pyx_v_ts, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 5036, __pyx_L19_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_2);
__pyx_cur_scope->__pyx_v_workers_by_task = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
5037: else:
+5038: workers = set(parent._workers_dv.values())
/*else*/ {
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
__PYX_ERR(0, 5038, __pyx_L19_error)
}
__pyx_t_2 = __Pyx_PyDict_Values(__pyx_cur_scope->__pyx_v_parent->_workers_dv); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5038, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PySet_New(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5038, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GOTREF(__pyx_cur_scope->__pyx_v_workers);
__Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_workers, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
+5039: workers_by_task = {ts: ts._who_has for ts in tasks}
{ /* enter inner scope */
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5039, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_14 = 0;
__pyx_t_3 = __Pyx_set_iterator(__pyx_cur_scope->__pyx_v_tasks, 1, (&__pyx_t_16), (&__pyx_t_17)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5039, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_2);
__pyx_t_2 = __pyx_t_3;
__pyx_t_3 = 0;
while (1) {
__pyx_t_18 = __Pyx_set_iter_next(__pyx_t_2, __pyx_t_16, &__pyx_t_14, &__pyx_t_3, __pyx_t_17);
if (unlikely(__pyx_t_18 == 0)) break;
if (unlikely(__pyx_t_18 == -1)) __PYX_ERR(0, 5039, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5039, __pyx_L19_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_9genexpr75__pyx_v_ts));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr75__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_3));
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_cur_scope->__pyx_9genexpr75__pyx_v_ts, (PyObject*)__pyx_cur_scope->__pyx_9genexpr75__pyx_v_ts->_who_has))) __PYX_ERR(0, 5039, __pyx_L19_error)
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_v_workers_by_task = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
}
__pyx_L32:;
5040:
5041: ws: WorkerState
+5042: tasks_by_worker = {ws: set() for ws in workers}
{ /* enter inner scope */
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5042, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_workers)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_workers)) {
__pyx_t_2 = __pyx_cur_scope->__pyx_v_workers; __Pyx_INCREF(__pyx_t_2); __pyx_t_16 = 0;
__pyx_t_15 = NULL;
} else {
__pyx_t_16 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_workers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5042, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5042, __pyx_L19_error)
}
for (;;) {
if (likely(!__pyx_t_15)) {
if (likely(PyList_CheckExact(__pyx_t_2))) {
if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_16); __Pyx_INCREF(__pyx_t_3); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 5042, __pyx_L19_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5042, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
} else {
if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_16); __Pyx_INCREF(__pyx_t_3); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 5042, __pyx_L19_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5042, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
}
} else {
__pyx_t_3 = __pyx_t_15(__pyx_t_2);
if (unlikely(!__pyx_t_3)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5042, __pyx_L19_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_3);
}
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5042, __pyx_L19_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_9genexpr76__pyx_v_ws));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr76__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_3));
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
__pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5042, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_cur_scope->__pyx_9genexpr76__pyx_v_ws, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 5042, __pyx_L19_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_v_tasks_by_worker = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
5043:
+5044: for k, v in workers_by_task.items():
__pyx_t_16 = 0;
__pyx_t_2 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_workers_by_task, 1, __pyx_n_s_items, (&__pyx_t_14), (&__pyx_t_17)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5044, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_2;
__pyx_t_2 = 0;
while (1) {
__pyx_t_18 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_14, &__pyx_t_16, &__pyx_t_2, &__pyx_t_3, NULL, __pyx_t_17);
if (unlikely(__pyx_t_18 == 0)) break;
if (unlikely(__pyx_t_18 == -1)) __PYX_ERR(0, 5044, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_k);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_k, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_v);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_v, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
+5045: for vv in v:
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_v)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_v)) { __pyx_t_3 = __pyx_cur_scope->__pyx_v_v; __Pyx_INCREF(__pyx_t_3); __pyx_t_20 = 0; __pyx_t_15 = NULL; } else { __pyx_t_20 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_v); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5045, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_15 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5045, __pyx_L19_error) } for (;;) { if (likely(!__pyx_t_15)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_20 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_20); __Pyx_INCREF(__pyx_t_2); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 5045, __pyx_L19_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5045, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_20 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_20); __Pyx_INCREF(__pyx_t_2); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 5045, __pyx_L19_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5045, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_15(__pyx_t_3); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5045, __pyx_L19_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_vv); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_vv, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5046: tasks_by_worker[vv].add(k)
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_tasks_by_worker, __pyx_cur_scope->__pyx_v_vv); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5046, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_add); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5046, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_5, __pyx_cur_scope->__pyx_v_k) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_cur_scope->__pyx_v_k); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5046, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5047:
+5048: worker_bytes = {
{ /* enter inner scope */
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5048, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_1);
+5049: ws: sum(ts.get_nbytes() for ts in v)
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_9rebalance_9genexpr77_genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_35_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_35_genexpr *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_35_genexpr(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_35_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_35_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 5049, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_34_rebalance *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_9rebalance_9genexpr77_2generator36, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_Scheduler_rebalance_locals_genex, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 5049, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.rebalance.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_9rebalance_9genexpr77_2generator36(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5049, __pyx_L1_error)
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_9genexpr77__pyx_v_v)) { __Pyx_RaiseClosureNameError("v"); __PYX_ERR(0, 5049, __pyx_L1_error) }
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_9genexpr77__pyx_v_v)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_9genexpr77__pyx_v_v)) {
__pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_9genexpr77__pyx_v_v; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
__pyx_t_3 = NULL;
} else {
__pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_9genexpr77__pyx_v_v); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5049, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5049, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_3)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5049, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5049, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
} else {
if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5049, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5049, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
}
} else {
__pyx_t_4 = __pyx_t_3(__pyx_t_1);
if (unlikely(!__pyx_t_4)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5049, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_4);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_ts);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_ts, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_ts, __pyx_n_s_get_nbytes); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5049, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
if (likely(__pyx_t_6)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_5, function);
}
}
__pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5049, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_r = __pyx_t_4;
__pyx_t_4 = 0;
__Pyx_XGIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, yielding value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L6_resume_from_yield:;
__pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
__pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5049, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_21 = __pyx_pf_11distributed_9scheduler_9Scheduler_9rebalance_9genexpr77_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5049, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_21); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5049, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_cur_scope->__pyx_9genexpr77__pyx_v_ws, (PyObject*)__pyx_t_2))) __PYX_ERR(0, 5049, __pyx_L19_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_v_worker_bytes = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_35_genexpr {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_34_rebalance *__pyx_outer_scope;
PyObject *__pyx_v_ts;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
PyObject *(*__pyx_t_2)(PyObject *);
};
+5050: for ws, v in tasks_by_worker.items()
__pyx_t_14 = 0;
__pyx_t_2 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_tasks_by_worker, 1, __pyx_n_s_items, (&__pyx_t_16), (&__pyx_t_17)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5050, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__pyx_t_3 = __pyx_t_2;
__pyx_t_2 = 0;
while (1) {
__pyx_t_18 = __Pyx_dict_iter_next(__pyx_t_3, __pyx_t_16, &__pyx_t_14, &__pyx_t_2, &__pyx_t_21, NULL, __pyx_t_17);
if (unlikely(__pyx_t_18 == 0)) break;
if (unlikely(__pyx_t_18 == -1)) __PYX_ERR(0, 5050, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_t_21);
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5050, __pyx_L19_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_9genexpr77__pyx_v_ws));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr77__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_2));
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr77__pyx_v_v);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr77__pyx_v_v, __pyx_t_21);
__Pyx_GIVEREF(__pyx_t_21);
__pyx_t_21 = 0;
5051: }
5052:
+5053: avg = sum(worker_bytes.values()) / len(worker_bytes)
__pyx_t_1 = __Pyx_PyDict_Values(__pyx_cur_scope->__pyx_v_worker_bytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5053, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5053, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_16 = PyDict_Size(__pyx_cur_scope->__pyx_v_worker_bytes); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5053, __pyx_L19_error) __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_16); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5053, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5053, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_avg = __pyx_t_2; __pyx_t_2 = 0;
5054:
+5055: sorted_workers = list(
__pyx_t_1 = PySequence_List(__pyx_t_21); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5055, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_sorted_workers = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+5056: map(first, sorted(worker_bytes.items(), key=second, reverse=True))
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_first); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5056, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyDict_Items(__pyx_cur_scope->__pyx_v_worker_bytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5056, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5056, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5056, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_second); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5056, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_key, __pyx_t_21) < 0) __PYX_ERR(0, 5056, __pyx_L19_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_reverse, Py_True) < 0) __PYX_ERR(0, 5056, __pyx_L19_error) __pyx_t_21 = __Pyx_PyObject_Call(__pyx_builtin_sorted, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5056, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5056, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_21); __pyx_t_2 = 0; __pyx_t_21 = 0; __pyx_t_21 = __Pyx_PyObject_Call(__pyx_builtin_map, __pyx_t_1, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5056, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5057: )
5058:
+5059: recipients = iter(reversed(sorted_workers))
__pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_reversed, __pyx_cur_scope->__pyx_v_sorted_workers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5059, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_21 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5059, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_21); __pyx_cur_scope->__pyx_v_recipients = __pyx_t_21; __pyx_t_21 = 0;
+5060: recipient = next(recipients)
__pyx_t_21 = __Pyx_PyIter_Next(__pyx_cur_scope->__pyx_v_recipients); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5060, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_GIVEREF(__pyx_t_21); __pyx_cur_scope->__pyx_v_recipient = __pyx_t_21; __pyx_t_21 = 0;
+5061: msgs = [] # (sender, recipient, key)
__pyx_t_21 = PyList_New(0); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5061, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_GIVEREF(__pyx_t_21); __pyx_cur_scope->__pyx_v_msgs = ((PyObject*)__pyx_t_21); __pyx_t_21 = 0;
+5062: for sender in sorted_workers[: len(workers) // 2]:
__pyx_t_16 = PyObject_Length(__pyx_cur_scope->__pyx_v_workers); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5062, __pyx_L19_error) __pyx_t_21 = __Pyx_PyList_GetSlice(__pyx_cur_scope->__pyx_v_sorted_workers, 0, __Pyx_div_Py_ssize_t(__pyx_t_16, 2)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5062, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_1 = __pyx_t_21; __Pyx_INCREF(__pyx_t_1); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; for (;;) { if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_21 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_16); __Pyx_INCREF(__pyx_t_21); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 5062, __pyx_L19_error) #else __pyx_t_21 = PySequence_ITEM(__pyx_t_1, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5062, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21); #endif __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_sender); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_sender, __pyx_t_21); __Pyx_GIVEREF(__pyx_t_21); __pyx_t_21 = 0; /* … */ } __pyx_L48_break:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5063: sender_keys = {
{ /* enter inner scope */
__pyx_t_21 = PyDict_New(); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5063, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_21);
+5064: ts: ts.get_nbytes() for ts in tasks_by_worker[sender]
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_tasks_by_worker, __pyx_cur_scope->__pyx_v_sender); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5064, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_14 = 0; __pyx_t_15 = NULL; } else { __pyx_t_14 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5064, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_15 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5064, __pyx_L19_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_15)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_14); __Pyx_INCREF(__pyx_t_2); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5064, __pyx_L19_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5064, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_14); __Pyx_INCREF(__pyx_t_2); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5064, __pyx_L19_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5064, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_15(__pyx_t_3); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5064, __pyx_L19_error) } break; } __Pyx_GOTREF(__pyx_t_2); } if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5064, __pyx_L19_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_9genexpr79__pyx_v_ts)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr79__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_2)); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_20 = __pyx_f_11distributed_9scheduler_9TaskState_get_nbytes(__pyx_cur_scope->__pyx_9genexpr79__pyx_v_ts, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 5064, __pyx_L19_error) __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_20); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5064, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(PyDict_SetItem(__pyx_t_21, (PyObject*)__pyx_cur_scope->__pyx_9genexpr79__pyx_v_ts, (PyObject*)__pyx_t_2))) __PYX_ERR(0, 5064, __pyx_L19_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } /* exit inner scope */ __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_sender_keys); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_sender_keys, __pyx_t_21); __Pyx_GIVEREF(__pyx_t_21); __pyx_t_21 = 0;
5065: }
+5066: sender_keys = iter(
__pyx_t_21 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5066, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_sender_keys); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_sender_keys, __pyx_t_21); __Pyx_GIVEREF(__pyx_t_21); __pyx_t_21 = 0;
+5067: sorted(sender_keys.items(), key=second, reverse=True)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_sender_keys, __pyx_n_s_items); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5067, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_21 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5067, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5067, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_21); __pyx_t_21 = 0; __pyx_t_21 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5067, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_second); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5067, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_21, __pyx_n_s_key, __pyx_t_2) < 0) __PYX_ERR(0, 5067, __pyx_L19_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_t_21, __pyx_n_s_reverse, Py_True) < 0) __PYX_ERR(0, 5067, __pyx_L19_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_sorted, __pyx_t_3, __pyx_t_21); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5067, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
5068: )
5069:
+5070: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
__Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
goto __pyx_L58_try_end;
__pyx_L51_error:;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_24);
__Pyx_ExceptionReset(__pyx_t_22, __pyx_t_23, __pyx_t_24);
goto __pyx_L19_error;
__pyx_L56_try_break:;
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_24);
__Pyx_ExceptionReset(__pyx_t_22, __pyx_t_23, __pyx_t_24);
goto __pyx_L48_break;
__pyx_L58_try_end:;
}
+5071: while worker_bytes[sender] > avg:
while (1) {
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_worker_bytes, __pyx_cur_scope->__pyx_v_sender); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5071, __pyx_L51_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_2 = PyObject_RichCompare(__pyx_t_21, __pyx_cur_scope->__pyx_v_avg, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5071, __pyx_L51_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_19 < 0)) __PYX_ERR(0, 5071, __pyx_L51_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (!__pyx_t_19) break;
+5072: while (
while (1) {
+5073: worker_bytes[recipient] < avg
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_worker_bytes, __pyx_cur_scope->__pyx_v_recipient); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5073, __pyx_L51_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_21 = PyObject_RichCompare(__pyx_t_2, __pyx_cur_scope->__pyx_v_avg, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5073, __pyx_L51_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 5073, __pyx_L51_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (__pyx_t_13) { } else { __pyx_t_19 = __pyx_t_13; goto __pyx_L63_bool_binop_done; }
+5074: and worker_bytes[sender] > avg
__pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_worker_bytes, __pyx_cur_scope->__pyx_v_sender); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5074, __pyx_L51_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_2 = PyObject_RichCompare(__pyx_t_21, __pyx_cur_scope->__pyx_v_avg, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5074, __pyx_L51_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 5074, __pyx_L51_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_19 = __pyx_t_13; __pyx_L63_bool_binop_done:; if (!__pyx_t_19) break;
5075: ):
+5076: ts, nb = next(sender_keys)
__pyx_t_2 = __Pyx_PyIter_Next(__pyx_cur_scope->__pyx_v_sender_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5076, __pyx_L51_error) __Pyx_GOTREF(__pyx_t_2); if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 5076, __pyx_L51_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_21 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_21 = PyList_GET_ITEM(sequence, 0); __pyx_t_3 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(__pyx_t_3); #else __pyx_t_21 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5076, __pyx_L51_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5076, __pyx_L51_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5076, __pyx_L51_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_25 = Py_TYPE(__pyx_t_5)->tp_iternext; index = 0; __pyx_t_21 = __pyx_t_25(__pyx_t_5); if (unlikely(!__pyx_t_21)) goto __pyx_L65_unpacking_failed; __Pyx_GOTREF(__pyx_t_21); index = 1; __pyx_t_3 = __pyx_t_25(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L65_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); if (__Pyx_IternextUnpackEndCheck(__pyx_t_25(__pyx_t_5), 2) < 0) __PYX_ERR(0, 5076, __pyx_L51_error) __pyx_t_25 = NULL; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L66_unpacking_done; __pyx_L65_unpacking_failed:; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_25 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 5076, __pyx_L51_error) __pyx_L66_unpacking_done:; } if (!(likely(((__pyx_t_21) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_21, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5076, __pyx_L51_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_ts)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_21)); __Pyx_GIVEREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_nb); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_nb, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0;
+5077: if ts not in tasks_by_worker[recipient]:
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_tasks_by_worker, __pyx_cur_scope->__pyx_v_recipient); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5077, __pyx_L51_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_19 = (__Pyx_PySequence_ContainsTF(((PyObject *)__pyx_cur_scope->__pyx_v_ts), __pyx_t_2, Py_NE)); if (unlikely(__pyx_t_19 < 0)) __PYX_ERR(0, 5077, __pyx_L51_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_13 = (__pyx_t_19 != 0); if (__pyx_t_13) { /* … */ } }
+5078: tasks_by_worker[recipient].add(ts)
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_tasks_by_worker, __pyx_cur_scope->__pyx_v_recipient); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5078, __pyx_L51_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_add); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5078, __pyx_L51_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_3, ((PyObject *)__pyx_cur_scope->__pyx_v_ts)) : __Pyx_PyObject_CallOneArg(__pyx_t_21, ((PyObject *)__pyx_cur_scope->__pyx_v_ts)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5078, __pyx_L51_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5079: # tasks_by_worker[sender].remove(ts)
+5080: msgs.append((sender, recipient, ts))
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5080, __pyx_L51_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_sender); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_sender); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_cur_scope->__pyx_v_sender); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_recipient); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_recipient); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_cur_scope->__pyx_v_recipient); __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_ts)); __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_ts)); PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_cur_scope->__pyx_v_ts)); __pyx_t_26 = __Pyx_PyList_Append(__pyx_cur_scope->__pyx_v_msgs, __pyx_t_2); if (unlikely(__pyx_t_26 == ((int)-1))) __PYX_ERR(0, 5080, __pyx_L51_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5081: worker_bytes[sender] -= nb
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_sender); __pyx_t_2 = __pyx_cur_scope->__pyx_v_sender; __pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_worker_bytes, __pyx_t_2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5081, __pyx_L51_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_3 = PyNumber_InPlaceSubtract(__pyx_t_21, __pyx_cur_scope->__pyx_v_nb); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5081, __pyx_L51_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_worker_bytes, __pyx_t_2, __pyx_t_3) < 0)) __PYX_ERR(0, 5081, __pyx_L51_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5082: worker_bytes[recipient] += nb
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_recipient); __pyx_t_2 = __pyx_cur_scope->__pyx_v_recipient; __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_worker_bytes, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5082, __pyx_L51_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_21 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_cur_scope->__pyx_v_nb); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5082, __pyx_L51_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(PyDict_SetItem(__pyx_cur_scope->__pyx_v_worker_bytes, __pyx_t_2, __pyx_t_21) < 0)) __PYX_ERR(0, 5082, __pyx_L51_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5083: if worker_bytes[sender] > avg:
__pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_worker_bytes, __pyx_cur_scope->__pyx_v_sender); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5083, __pyx_L51_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_21 = PyObject_RichCompare(__pyx_t_2, __pyx_cur_scope->__pyx_v_avg, Py_GT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5083, __pyx_L51_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 5083, __pyx_L51_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (__pyx_t_13) { /* … */ } }
+5084: recipient = next(recipients)
__pyx_t_21 = __Pyx_PyIter_Next(__pyx_cur_scope->__pyx_v_recipients); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5084, __pyx_L51_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_recipient); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_recipient, __pyx_t_21); __Pyx_GIVEREF(__pyx_t_21); __pyx_t_21 = 0;
+5085: except StopIteration:
__pyx_t_17 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_StopIteration); if (__pyx_t_17) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.rebalance", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_21, &__pyx_t_2, &__pyx_t_3) < 0) __PYX_ERR(0, 5085, __pyx_L53_except_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_3);
+5086: break
goto __pyx_L69_except_break;
__pyx_L69_except_break:;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
goto __pyx_L56_try_break;
}
goto __pyx_L53_except_error;
__pyx_L53_except_error:;
5087:
+5088: to_recipients = defaultdict(lambda: defaultdict(list))
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_9rebalance_lambda14(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_9rebalance_lambda14 = {"lambda14", (PyCFunction)__pyx_pw_11distributed_9scheduler_9Scheduler_9rebalance_lambda14, METH_NOARGS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_9rebalance_lambda14(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("lambda14 (wrapper)", 0);
__pyx_r = __pyx_lambda_funcdef_lambda14(__pyx_self);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_lambda_funcdef_lambda14(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("lambda14", 0);
__Pyx_XDECREF(__pyx_r);
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_defaultdict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5088, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
}
}
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)(&PyList_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)(&PyList_Type)));
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5088, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.rebalance.lambda14", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_9rebalance_3generator37(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_defaultdict); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5088, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_9rebalance_lambda14, 0, __pyx_n_s_Scheduler_rebalance_locals_lambd, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5088, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_21 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_21 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_21)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_21);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_1 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_21, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2);
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5088, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_v_to_recipients = __pyx_t_1;
__pyx_t_1 = 0;
+5089: to_senders = defaultdict(list)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_defaultdict); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5089, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, ((PyObject *)(&PyList_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)(&PyList_Type))); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5089, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_to_senders = __pyx_t_1; __pyx_t_1 = 0;
+5090: for sender, recipient, ts in msgs:
__pyx_t_1 = __pyx_cur_scope->__pyx_v_msgs; __Pyx_INCREF(__pyx_t_1); __pyx_t_16 = 0; for (;;) { if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_16); __Pyx_INCREF(__pyx_t_3); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 5090, __pyx_L19_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5090, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); #endif if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { PyObject* sequence = __pyx_t_3; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 5090, __pyx_L19_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_21 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 2); } else { __pyx_t_2 = PyList_GET_ITEM(sequence, 0); __pyx_t_21 = PyList_GET_ITEM(sequence, 1); __pyx_t_5 = PyList_GET_ITEM(sequence, 2); } __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(__pyx_t_5); #else __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5090, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_21 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5090, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_5 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5090, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; __pyx_t_27 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 5090, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_25 = Py_TYPE(__pyx_t_27)->tp_iternext; index = 0; __pyx_t_2 = __pyx_t_25(__pyx_t_27); if (unlikely(!__pyx_t_2)) goto __pyx_L73_unpacking_failed; __Pyx_GOTREF(__pyx_t_2); index = 1; __pyx_t_21 = __pyx_t_25(__pyx_t_27); if (unlikely(!__pyx_t_21)) goto __pyx_L73_unpacking_failed; __Pyx_GOTREF(__pyx_t_21); index = 2; __pyx_t_5 = __pyx_t_25(__pyx_t_27); if (unlikely(!__pyx_t_5)) goto __pyx_L73_unpacking_failed; __Pyx_GOTREF(__pyx_t_5); if (__Pyx_IternextUnpackEndCheck(__pyx_t_25(__pyx_t_27), 3) < 0) __PYX_ERR(0, 5090, __pyx_L19_error) __pyx_t_25 = NULL; __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; goto __pyx_L74_unpacking_done; __pyx_L73_unpacking_failed:; __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __pyx_t_25 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 5090, __pyx_L19_error) __pyx_L74_unpacking_done:; } if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5090, __pyx_L19_error) __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_sender); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_sender, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_recipient); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_recipient, __pyx_t_21); __Pyx_GIVEREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_ts)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_5)); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5091: to_recipients[recipient.address][ts._key].append(sender.address)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_recipient, __pyx_n_s_address); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5091, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_to_recipients, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5091, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_cur_scope->__pyx_v_ts->_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5091, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_sender, __pyx_n_s_address); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5091, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_26 = __Pyx_PyObject_Append(__pyx_t_3, __pyx_t_5); if (unlikely(__pyx_t_26 == ((int)-1))) __PYX_ERR(0, 5091, __pyx_L19_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5092: to_senders[sender.address].append(ts._key)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_sender, __pyx_n_s_address); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5092, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_to_senders, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5092, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_26 = __Pyx_PyObject_Append(__pyx_t_3, __pyx_cur_scope->__pyx_v_ts->_key); if (unlikely(__pyx_t_26 == ((int)-1))) __PYX_ERR(0, 5092, __pyx_L19_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5093:
+5094: result = await asyncio.gather(
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5094, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_gather); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5094, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5094, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5094, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_0 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_1 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_2 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_3 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_4 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_5 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_t_6 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_t_12); __pyx_cur_scope->__pyx_t_7 = __pyx_t_12; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L75_resume_from_await:; __pyx_t_4 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_6 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_7 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_9); __pyx_t_10 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_11 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_11); __pyx_t_12 = __pyx_cur_scope->__pyx_t_7; __pyx_cur_scope->__pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5094, __pyx_L19_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else { __pyx_t_1 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(0, 5094, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_result = __pyx_t_1; __pyx_t_1 = 0;
5095: *(
+5096: retry_operation(self.rpc(addr=r).gather, who_has=v)
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_9rebalance_1genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_36_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_36_genexpr *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_36_genexpr(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_36_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_36_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 5096, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_34_rebalance *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_9rebalance_3generator37, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_Scheduler_rebalance_locals_genex, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 5096, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.rebalance.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_9rebalance_3generator37(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5096, __pyx_L1_error)
/* … */
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_retry_operation); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5096, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 5096, __pyx_L1_error) }
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self, __pyx_n_s_rpc); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5096, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5096, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_addr, __pyx_cur_scope->__pyx_v_r) < 0) __PYX_ERR(0, 5096, __pyx_L1_error)
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5096, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_gather); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5096, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5096, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_GIVEREF(__pyx_t_8);
PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8);
__pyx_t_8 = 0;
__pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5096, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_who_has, __pyx_cur_scope->__pyx_v_v) < 0) __PYX_ERR(0, 5096, __pyx_L1_error)
__pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5096, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_r = __pyx_t_5;
__pyx_t_5 = 0;
__Pyx_XGIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
__pyx_cur_scope->__pyx_t_3 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, yielding value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L6_resume_from_yield:;
__pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
__pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
__pyx_t_4 = __pyx_cur_scope->__pyx_t_3;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5096, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_9rebalance_6generator38(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_t_1 = __pyx_pf_11distributed_9scheduler_9Scheduler_9rebalance_1genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5096, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_1);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_36_genexpr {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_34_rebalance *__pyx_outer_scope;
PyObject *__pyx_v_r;
PyObject *__pyx_v_v;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
Py_ssize_t __pyx_t_2;
int __pyx_t_3;
};
+5097: for r, v in to_recipients.items()
__pyx_t_2 = 0;
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_to_recipients)) { __Pyx_RaiseClosureNameError("to_recipients"); __PYX_ERR(0, 5097, __pyx_L1_error) }
if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_to_recipients == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 5097, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_to_recipients, 0, __pyx_n_s_items, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5097, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_5;
__pyx_t_5 = 0;
while (1) {
__pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, &__pyx_t_6, NULL, __pyx_t_4);
if (unlikely(__pyx_t_7 == 0)) break;
if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 5097, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_r);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_v);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_v, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
5098: )
5099: )
+5100: for r, v in to_recipients.items():
__pyx_t_16 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_to_recipients == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 5100, __pyx_L19_error)
}
__pyx_t_5 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_to_recipients, 0, __pyx_n_s_items, (&__pyx_t_14), (&__pyx_t_17)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5100, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_5;
__pyx_t_5 = 0;
while (1) {
__pyx_t_18 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_14, &__pyx_t_16, &__pyx_t_5, &__pyx_t_3, NULL, __pyx_t_17);
if (unlikely(__pyx_t_18 == 0)) break;
if (unlikely(__pyx_t_18 == -1)) __PYX_ERR(0, 5100, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_r);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_v);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_v, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
+5101: self.log_event(r, {"action": "rebalance", "who_has": v})
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_log_event_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5101, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_21 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5101, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21); if (PyDict_SetItem(__pyx_t_21, __pyx_n_u_action, __pyx_n_u_rebalance) < 0) __PYX_ERR(0, 5101, __pyx_L19_error) if (PyDict_SetItem(__pyx_t_21, __pyx_n_u_who_has, __pyx_cur_scope->__pyx_v_v) < 0) __PYX_ERR(0, 5101, __pyx_L19_error) __pyx_t_2 = NULL; __pyx_t_18 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_18 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_r, __pyx_t_21}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_18, 2+__pyx_t_18); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5101, __pyx_L19_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_r, __pyx_t_21}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_18, 2+__pyx_t_18); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5101, __pyx_L19_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } else #endif { __pyx_t_27 = PyTuple_New(2+__pyx_t_18); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 5101, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_27); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_27, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_cur_scope->__pyx_v_r); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_r); PyTuple_SET_ITEM(__pyx_t_27, 0+__pyx_t_18, __pyx_cur_scope->__pyx_v_r); __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_27, 1+__pyx_t_18, __pyx_t_21); __pyx_t_21 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_27, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5101, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5102:
+5103: self.log_event(
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_log_event_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5103, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3);
5104: "all",
5105: {
+5106: "action": "rebalance",
__pyx_t_5 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5106, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_action, __pyx_n_u_rebalance) < 0) __PYX_ERR(0, 5106, __pyx_L19_error)
+5107: "total-keys": len(tasks),
__pyx_t_14 = PySet_GET_SIZE(__pyx_cur_scope->__pyx_v_tasks); if (unlikely(__pyx_t_14 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5107, __pyx_L19_error) __pyx_t_27 = PyInt_FromSsize_t(__pyx_t_14); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 5107, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_27); if (PyDict_SetItem(__pyx_t_5, __pyx_kp_u_total_keys, __pyx_t_27) < 0) __PYX_ERR(0, 5106, __pyx_L19_error) __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+5108: "senders": valmap(len, to_senders),
__Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_valmap); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5108, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_2 = __Pyx_GetBuiltinName(__pyx_n_s_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5108, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_28 = NULL; __pyx_t_17 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { __pyx_t_28 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_28)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_28); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); __pyx_t_17 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[3] = {__pyx_t_28, __pyx_t_2, __pyx_cur_scope->__pyx_v_to_senders}; __pyx_t_27 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 5108, __pyx_L19_error) __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0; __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[3] = {__pyx_t_28, __pyx_t_2, __pyx_cur_scope->__pyx_v_to_senders}; __pyx_t_27 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 5108, __pyx_L19_error) __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0; __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_29 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 5108, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_29); if (__pyx_t_28) { __Pyx_GIVEREF(__pyx_t_28); PyTuple_SET_ITEM(__pyx_t_29, 0, __pyx_t_28); __pyx_t_28 = NULL; } __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_29, 0+__pyx_t_17, __pyx_t_2); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_to_senders); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_to_senders); PyTuple_SET_ITEM(__pyx_t_29, 1+__pyx_t_17, __pyx_cur_scope->__pyx_v_to_senders); __pyx_t_2 = 0; __pyx_t_27 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_29, NULL); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 5108, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0; } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_senders, __pyx_t_27) < 0) __PYX_ERR(0, 5106, __pyx_L19_error) __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+5109: "recipients": valmap(len, to_recipients),
__Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_valmap); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5109, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_29 = __Pyx_GetBuiltinName(__pyx_n_s_len); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 5109, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_29); __pyx_t_2 = NULL; __pyx_t_17 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); __pyx_t_17 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_29, __pyx_cur_scope->__pyx_v_to_recipients}; __pyx_t_27 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 5109, __pyx_L19_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_29, __pyx_cur_scope->__pyx_v_to_recipients}; __pyx_t_27 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 5109, __pyx_L19_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0; } else #endif { __pyx_t_28 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 5109, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_28); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_28, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_GIVEREF(__pyx_t_29); PyTuple_SET_ITEM(__pyx_t_28, 0+__pyx_t_17, __pyx_t_29); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_to_recipients); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_to_recipients); PyTuple_SET_ITEM(__pyx_t_28, 1+__pyx_t_17, __pyx_cur_scope->__pyx_v_to_recipients); __pyx_t_29 = 0; __pyx_t_27 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_28, NULL); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 5109, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0; } __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_recipients, __pyx_t_27) < 0) __PYX_ERR(0, 5106, __pyx_L19_error) __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+5110: "moved_keys": len(msgs),
__pyx_t_14 = PyList_GET_SIZE(__pyx_cur_scope->__pyx_v_msgs); if (unlikely(__pyx_t_14 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5110, __pyx_L19_error) __pyx_t_27 = PyInt_FromSsize_t(__pyx_t_14); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 5110, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_27); if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_moved_keys, __pyx_t_27) < 0) __PYX_ERR(0, 5106, __pyx_L19_error) __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __pyx_t_27 = NULL; __pyx_t_17 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_27 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_27)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_27); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_17 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_27, __pyx_n_u_all, __pyx_t_5}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5103, __pyx_L19_error) __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_27, __pyx_n_u_all, __pyx_t_5}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5103, __pyx_L19_error) __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_21 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5103, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21); if (__pyx_t_27) { __Pyx_GIVEREF(__pyx_t_27); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_27); __pyx_t_27 = NULL; } __Pyx_INCREF(__pyx_n_u_all); __Pyx_GIVEREF(__pyx_n_u_all); PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_17, __pyx_n_u_all); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_17, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_21, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5103, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5111: },
5112: )
5113:
+5114: if not all(r["status"] == "OK" for r in result):
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_9rebalance_4genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_37_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_37_genexpr *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_37_genexpr(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_37_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_37_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 5114, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_34_rebalance *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_9rebalance_6generator38, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_Scheduler_rebalance_locals_genex, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 5114, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.rebalance.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_9rebalance_6generator38(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5114, __pyx_L1_error)
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_result)) { __Pyx_RaiseClosureNameError("result"); __PYX_ERR(0, 5114, __pyx_L1_error) }
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_result)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_result)) {
__pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_result; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
__pyx_t_3 = NULL;
} else {
__pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_result); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5114, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5114, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_3)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5114, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5114, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
} else {
if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5114, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5114, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
}
} else {
__pyx_t_4 = __pyx_t_3(__pyx_t_1);
if (unlikely(!__pyx_t_4)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5114, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_4);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_r);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
__pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_cur_scope->__pyx_v_r, __pyx_n_u_status); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5114, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_OK, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5114, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_6 = ((!__pyx_t_5) != 0);
if (__pyx_t_6) {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(Py_False);
__pyx_r = Py_False;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
}
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(Py_True);
__pyx_r = Py_True;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_9rebalance_9generator39(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_t_1 = __pyx_pf_11distributed_9scheduler_9Scheduler_9rebalance_4genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5114, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5114, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 5114, __pyx_L19_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_19 = ((!__pyx_t_13) != 0);
if (__pyx_t_19) {
/* … */
}
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_37_genexpr {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_34_rebalance *__pyx_outer_scope;
PyObject *__pyx_v_r;
};
+5115: return {
__Pyx_XDECREF(__pyx_r);
+5116: "status": "missing-data",
__pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5116, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_status, __pyx_kp_u_missing_data) < 0) __PYX_ERR(0, 5116, __pyx_L19_error)
+5117: "keys": tuple(
__pyx_t_21 = __Pyx_PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5117, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_keys, __pyx_t_21) < 0) __PYX_ERR(0, 5116, __pyx_L19_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L23_try_return;
+5118: concat(
__Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_concat); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5118, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21);
+5119: r["keys"].keys()
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_9rebalance_7genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_38_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_38_genexpr *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_38_genexpr(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_38_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_38_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 5119, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_34_rebalance *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_9rebalance_9generator39, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_Scheduler_rebalance_locals_genex, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 5119, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.rebalance.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_9rebalance_9generator39(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5119, __pyx_L1_error)
/* … */
__pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_cur_scope->__pyx_v_r, __pyx_n_u_keys); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5119, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_keys); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5119, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
if (likely(__pyx_t_6)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_7, function);
}
}
__pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5119, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_r = __pyx_t_4;
__pyx_t_4 = 0;
__Pyx_XGIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, yielding value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L7_resume_from_yield:;
__pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
__pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5119, __pyx_L1_error)
/* … */
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_9rebalance_12generator40(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_t_5 = __pyx_pf_11distributed_9scheduler_9Scheduler_9rebalance_7genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5119, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_27 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) {
__pyx_t_27 = PyMethod_GET_SELF(__pyx_t_21);
if (likely(__pyx_t_27)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21);
__Pyx_INCREF(__pyx_t_27);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_21, function);
}
}
__pyx_t_1 = (__pyx_t_27) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_27, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_t_5);
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5118, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_38_genexpr {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_34_rebalance *__pyx_outer_scope;
PyObject *__pyx_v_r;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
PyObject *(*__pyx_t_2)(PyObject *);
};
+5120: for r in result
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_result)) { __Pyx_RaiseClosureNameError("result"); __PYX_ERR(0, 5120, __pyx_L1_error) }
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_result)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_result)) {
__pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_result; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
__pyx_t_3 = NULL;
} else {
__pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_result); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5120, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5120, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_3)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5120, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5120, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
} else {
if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5120, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5120, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
}
} else {
__pyx_t_4 = __pyx_t_3(__pyx_t_1);
if (unlikely(!__pyx_t_4)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5120, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_4);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_r);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
+5121: if r["status"] == "missing-data"
__pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_cur_scope->__pyx_v_r, __pyx_n_u_status); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_kp_u_missing_data, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5121, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_5) { /* … */ }
5122: )
5123: ),
5124: }
5125:
+5126: for sender, recipient, ts in msgs:
__pyx_t_3 = __pyx_cur_scope->__pyx_v_msgs; __Pyx_INCREF(__pyx_t_3); __pyx_t_14 = 0; for (;;) { if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_21 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_14); __Pyx_INCREF(__pyx_t_21); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5126, __pyx_L19_error) #else __pyx_t_21 = PySequence_ITEM(__pyx_t_3, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5126, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21); #endif if ((likely(PyTuple_CheckExact(__pyx_t_21))) || (PyList_CheckExact(__pyx_t_21))) { PyObject* sequence = __pyx_t_21; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 5126, __pyx_L19_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_27 = PyTuple_GET_ITEM(sequence, 2); } else { __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_5 = PyList_GET_ITEM(sequence, 1); __pyx_t_27 = PyList_GET_ITEM(sequence, 2); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_27); #else __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5126, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5126, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_27 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 5126, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_27); #endif __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } else { Py_ssize_t index = -1; __pyx_t_28 = PyObject_GetIter(__pyx_t_21); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 5126, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_28); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_25 = Py_TYPE(__pyx_t_28)->tp_iternext; index = 0; __pyx_t_1 = __pyx_t_25(__pyx_t_28); if (unlikely(!__pyx_t_1)) goto __pyx_L81_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); index = 1; __pyx_t_5 = __pyx_t_25(__pyx_t_28); if (unlikely(!__pyx_t_5)) goto __pyx_L81_unpacking_failed; __Pyx_GOTREF(__pyx_t_5); index = 2; __pyx_t_27 = __pyx_t_25(__pyx_t_28); if (unlikely(!__pyx_t_27)) goto __pyx_L81_unpacking_failed; __Pyx_GOTREF(__pyx_t_27); if (__Pyx_IternextUnpackEndCheck(__pyx_t_25(__pyx_t_28), 3) < 0) __PYX_ERR(0, 5126, __pyx_L19_error) __pyx_t_25 = NULL; __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0; goto __pyx_L82_unpacking_done; __pyx_L81_unpacking_failed:; __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0; __pyx_t_25 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 5126, __pyx_L19_error) __pyx_L82_unpacking_done:; } if (!(likely(((__pyx_t_27) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_27, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5126, __pyx_L19_error) __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_sender); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_sender, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_recipient); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_recipient, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_ts)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_27)); __Pyx_GIVEREF(__pyx_t_27); __pyx_t_27 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5127: assert ts._state == "memory"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_19 = (__Pyx_PyUnicode_Equals(__pyx_cur_scope->__pyx_v_ts->_state, __pyx_n_u_memory_2, Py_EQ)); if (unlikely(__pyx_t_19 < 0)) __PYX_ERR(0, 5127, __pyx_L19_error)
if (unlikely(!(__pyx_t_19 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 5127, __pyx_L19_error)
}
}
#endif
+5128: ts._who_has.add(recipient)
if (unlikely(__pyx_cur_scope->__pyx_v_ts->_who_has == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 5128, __pyx_L19_error)
}
__pyx_t_26 = PySet_Add(__pyx_cur_scope->__pyx_v_ts->_who_has, __pyx_cur_scope->__pyx_v_recipient); if (unlikely(__pyx_t_26 == ((int)-1))) __PYX_ERR(0, 5128, __pyx_L19_error)
+5129: recipient.has_what.add(ts)
__pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_recipient, __pyx_n_s_has_what); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 5129, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_27); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_27, __pyx_n_s_add); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5129, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __pyx_t_27 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_27 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_27)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_27); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_21 = (__pyx_t_27) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_27, ((PyObject *)__pyx_cur_scope->__pyx_v_ts)) : __Pyx_PyObject_CallOneArg(__pyx_t_5, ((PyObject *)__pyx_cur_scope->__pyx_v_ts)); __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5129, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+5130: recipient.nbytes += ts.get_nbytes()
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_recipient, __pyx_n_s_nbytes); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5130, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_16 = __pyx_f_11distributed_9scheduler_9TaskState_get_nbytes(__pyx_cur_scope->__pyx_v_ts, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 5130, __pyx_L19_error) __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_16); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5130, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_27 = PyNumber_InPlaceAdd(__pyx_t_21, __pyx_t_5); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 5130, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_cur_scope->__pyx_v_recipient, __pyx_n_s_nbytes, __pyx_t_27) < 0) __PYX_ERR(0, 5130, __pyx_L19_error) __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+5131: self.log.append(
__pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_log); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 5131, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_27); /* … */ __pyx_t_26 = __Pyx_PyObject_Append(__pyx_t_27, __pyx_t_28); if (unlikely(__pyx_t_26 == ((int)-1))) __PYX_ERR(0, 5131, __pyx_L19_error) __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
5132: (
+5133: "rebalance",
__pyx_t_28 = PyTuple_New(5); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 5133, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_28); __Pyx_INCREF(__pyx_n_u_rebalance); __Pyx_GIVEREF(__pyx_n_u_rebalance); PyTuple_SET_ITEM(__pyx_t_28, 0, __pyx_n_u_rebalance); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_ts->_key); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_ts->_key); PyTuple_SET_ITEM(__pyx_t_28, 1, __pyx_cur_scope->__pyx_v_ts->_key); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_28, 2, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_28, 3, __pyx_t_21); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_28, 4, __pyx_t_1); __pyx_t_5 = 0; __pyx_t_21 = 0; __pyx_t_1 = 0;
5134: ts._key,
+5135: time(),
__Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_time); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5135, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_21); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_21, function); } } __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_21); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5135, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+5136: sender.address,
__pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_sender, __pyx_n_s_address); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5136, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_21);
+5137: recipient.address,
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_recipient, __pyx_n_s_address); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5137, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1);
5138: )
5139: )
5140:
+5141: await asyncio.gather(
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5141, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_28 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_gather); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 5141, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_28); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_t_27 = __Pyx_PySequence_Tuple(__pyx_t_3); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 5141, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_28, __pyx_t_27, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5141, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0; __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_0 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_1 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_2 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_3 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_4 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_5 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_t_6 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_t_12); __pyx_cur_scope->__pyx_t_7 = __pyx_t_12; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 3; return __pyx_r; __pyx_L83_resume_from_await:; __pyx_t_4 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_6 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_7 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_9); __pyx_t_10 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_11 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_11); __pyx_t_12 = __pyx_cur_scope->__pyx_t_7; __pyx_cur_scope->__pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5141, __pyx_L19_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 5141, __pyx_L19_error) } }
+5142: *(self._delete_worker_data(r, v) for r, v in to_senders.items())
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_9rebalance_10genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_39_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_39_genexpr *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_39_genexpr(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_39_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_39_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 5142, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_34_rebalance *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_9rebalance_12generator40, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_Scheduler_rebalance_locals_genex, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 5142, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.rebalance.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_9rebalance_12generator40(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5142, __pyx_L1_error)
__pyx_t_2 = 0;
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_to_senders)) { __Pyx_RaiseClosureNameError("to_senders"); __PYX_ERR(0, 5142, __pyx_L1_error) }
if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_to_senders == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 5142, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_to_senders, 0, __pyx_n_s_items, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5142, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_5;
__pyx_t_5 = 0;
while (1) {
__pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, &__pyx_t_6, NULL, __pyx_t_4);
if (unlikely(__pyx_t_7 == 0)) break;
if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 5142, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_r);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_r, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_v);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_v, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 5142, __pyx_L1_error) }
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self, __pyx_n_s_delete_worker_data); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5142, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_8 = NULL;
__pyx_t_7 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
if (likely(__pyx_t_8)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_8);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_5, function);
__pyx_t_7 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_5)) {
PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_cur_scope->__pyx_v_r, __pyx_cur_scope->__pyx_v_v};
__pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5142, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_GOTREF(__pyx_t_6);
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_cur_scope->__pyx_v_r, __pyx_cur_scope->__pyx_v_v};
__pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5142, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_GOTREF(__pyx_t_6);
} else
#endif
{
__pyx_t_9 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5142, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (__pyx_t_8) {
__Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL;
}
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_r);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_r);
PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_7, __pyx_cur_scope->__pyx_v_r);
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_v);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_v);
PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_7, __pyx_cur_scope->__pyx_v_v);
__pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5142, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_r = __pyx_t_6;
__pyx_t_6 = 0;
__Pyx_XGIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
__pyx_cur_scope->__pyx_t_3 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, yielding value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L6_resume_from_yield:;
__pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
__pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
__pyx_t_4 = __pyx_cur_scope->__pyx_t_3;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5142, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_3 = __pyx_pf_11distributed_9scheduler_9Scheduler_9rebalance_10genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5142, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_39_genexpr {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_34_rebalance *__pyx_outer_scope;
PyObject *__pyx_v_r;
PyObject *__pyx_v_v;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
Py_ssize_t __pyx_t_2;
int __pyx_t_3;
};
5143: )
5144:
+5145: return {"status": "OK"}
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5145, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_status, __pyx_n_u_OK) < 0) __PYX_ERR(0, 5145, __pyx_L19_error) __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L23_try_return;
5146:
+5147: async def replicate(
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_125replicate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_124replicate[] = "Replicate data throughout cluster\n\n This performs a tree copy of the data throughout the network\n individually on each piece of data.\n\n Parameters\n ----------\n keys: Iterable\n list of keys to replicate\n n: int\n Number of replications we expect to see within the cluster\n branching_factor: int, optional\n The number of workers that can copy data in each generation.\n The larger the branching factor, the more data we copy in\n a single step, but the more a given worker risks being\n swamped by data requests.\n\n See also\n --------\n Scheduler.rebalance\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_125replicate = {"replicate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_125replicate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_124replicate};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_125replicate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_keys = 0;
PyObject *__pyx_v_n = 0;
PyObject *__pyx_v_workers = 0;
PyObject *__pyx_v_branching_factor = 0;
PyObject *__pyx_v_delete = 0;
PyObject *__pyx_v_lock = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("replicate (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_keys,&__pyx_n_s_n,&__pyx_n_s_workers,&__pyx_n_s_branching_factor,&__pyx_n_s_delete,&__pyx_n_s_lock_2,0};
PyObject* values[8] = {0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_9replicate_2generator41(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_124replicate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_keys, PyObject *__pyx_v_n, PyObject *__pyx_v_workers, PyObject *__pyx_v_branching_factor, PyObject *__pyx_v_delete, PyObject *__pyx_v_lock) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_40_replicate *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("replicate", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_40_replicate *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_40_replicate(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_40_replicate, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_40_replicate *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 5147, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_comm = __pyx_v_comm;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm);
__pyx_cur_scope->__pyx_v_keys = __pyx_v_keys;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_keys);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_keys);
__pyx_cur_scope->__pyx_v_n = __pyx_v_n;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_n);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_n);
__pyx_cur_scope->__pyx_v_workers = __pyx_v_workers;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_workers);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_workers);
__pyx_cur_scope->__pyx_v_branching_factor = __pyx_v_branching_factor;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_branching_factor);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_branching_factor);
__pyx_cur_scope->__pyx_v_delete = __pyx_v_delete;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_delete);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_delete);
__pyx_cur_scope->__pyx_v_lock = __pyx_v_lock;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_lock);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_lock);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_126generator15, __pyx_codeobj__76, (PyObject *) __pyx_cur_scope, __pyx_n_s_replicate, __pyx_n_s_Scheduler_replicate, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 5147, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.replicate", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_126generator15(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("replicate", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5147, __pyx_L1_error)
/* … */
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_XDECREF(__pyx_t_18);
__Pyx_XDECREF(__pyx_t_19);
__Pyx_XDECREF(__pyx_t_20);
__Pyx_AddTraceback("replicate", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__290 = PyTuple_Pack(31, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_keys, __pyx_n_s_n, __pyx_n_s_workers, __pyx_n_s_branching_factor, __pyx_n_s_delete, __pyx_n_s_lock_2, __pyx_n_s_parent, __pyx_n_s_ws, __pyx_n_s_wws, __pyx_n_s_ts, __pyx_n_s_tasks, __pyx_n_s_missing_data_2, __pyx_n_s_del_worker_tasks, __pyx_n_s_del_candidates, __pyx_n_s_gathers, __pyx_n_s_n_missing, __pyx_n_s_count, __pyx_n_s_results, __pyx_n_s_w, __pyx_n_s_v, __pyx_n_s_w, __pyx_n_s_k, __pyx_n_s_ts, __pyx_n_s_ws, __pyx_n_s_tasks, __pyx_n_s_t, __pyx_n_s_wws, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__290)) __PYX_ERR(0, 5147, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__290);
__Pyx_GIVEREF(__pyx_tuple__290);
__pyx_codeobj__76 = (PyObject*)__Pyx_PyCode_New(8, 0, 31, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__290, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_replicate, 5147, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__76)) __PYX_ERR(0, 5147, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_125replicate, 0, __pyx_n_s_Scheduler_replicate, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__76)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5147, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__291);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_replicate, __pyx_t_12) < 0) __PYX_ERR(0, 5147, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__291 = PyTuple_Pack(7, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)__pyx_int_2), ((PyObject *)Py_True), ((PyObject *)Py_True)); if (unlikely(!__pyx_tuple__291)) __PYX_ERR(0, 5147, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__291);
__Pyx_GIVEREF(__pyx_tuple__291);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_40_replicate {
PyObject_HEAD
PyObject *__pyx_v_branching_factor;
PyObject *__pyx_v_comm;
PyObject *__pyx_v_count;
PyObject *__pyx_v_del_candidates;
PyObject *__pyx_v_del_worker_tasks;
PyObject *__pyx_v_delete;
PyObject *__pyx_v_gathers;
PyObject *__pyx_v_genexpr;
PyObject *__pyx_9genexpr85__pyx_v_k;
PyObject *__pyx_v_keys;
PyObject *__pyx_v_lock;
PyObject *__pyx_v_missing_data;
PyObject *__pyx_v_n;
PyObject *__pyx_v_n_missing;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent;
PyObject *__pyx_v_results;
PyObject *__pyx_v_self;
PyObject *__pyx_9genexpr88__pyx_v_t;
PyObject *__pyx_9genexpr87__pyx_v_tasks;
PyObject *__pyx_v_tasks;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_9genexpr86__pyx_v_ts;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts;
PyObject *__pyx_v_v;
PyObject *__pyx_9genexpr84__pyx_v_w;
PyObject *__pyx_v_w;
PyObject *__pyx_v_workers;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_9genexpr87__pyx_v_ws;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_9genexpr89__pyx_v_wws;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_wws;
PyObject *__pyx_t_0;
PyObject *__pyx_t_1;
PyObject *__pyx_t_2;
PyObject *__pyx_t_3;
PyObject *__pyx_t_4;
PyObject *__pyx_t_5;
PyObject *__pyx_t_6;
PyObject *__pyx_t_7;
PyObject *__pyx_t_8;
};
5148: self,
+5149: comm=None,
values[1] = ((PyObject *)((PyObject *)Py_None));
+5150: keys=None,
values[2] = ((PyObject *)((PyObject *)Py_None));
+5151: n=None,
values[3] = ((PyObject *)((PyObject *)Py_None));
+5152: workers=None,
values[4] = ((PyObject *)((PyObject *)Py_None));
values[5] = ((PyObject *)((PyObject *)__pyx_int_2));
5153: branching_factor=2,
+5154: delete=True,
values[6] = ((PyObject *)((PyObject *)Py_True));
+5155: lock=True,
values[7] = ((PyObject *)((PyObject *)Py_True));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keys);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_workers);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_branching_factor);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_delete);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lock_2);
if (value) { values[7] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "replicate") < 0)) __PYX_ERR(0, 5147, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_keys = values[2];
__pyx_v_n = values[3];
__pyx_v_workers = values[4];
__pyx_v_branching_factor = values[5];
__pyx_v_delete = values[6];
__pyx_v_lock = values[7];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("replicate", 0, 1, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5147, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.replicate", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_124replicate(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_keys, __pyx_v_n, __pyx_v_workers, __pyx_v_branching_factor, __pyx_v_delete, __pyx_v_lock);
5156: ):
5157: """Replicate data throughout cluster
5158:
5159: This performs a tree copy of the data throughout the network
5160: individually on each piece of data.
5161:
5162: Parameters
5163: ----------
5164: keys: Iterable
5165: list of keys to replicate
5166: n: int
5167: Number of replications we expect to see within the cluster
5168: branching_factor: int, optional
5169: The number of workers that can copy data in each generation.
5170: The larger the branching factor, the more data we copy in
5171: a single step, but the more a given worker risks being
5172: swamped by data requests.
5173:
5174: See also
5175: --------
5176: Scheduler.rebalance
5177: """
+5178: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_cur_scope->__pyx_v_self; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1); __pyx_t_1 = 0;
5179: ws: WorkerState
5180: wws: WorkerState
5181: ts: TaskState
5182:
+5183: assert branching_factor > 0
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = PyObject_RichCompare(__pyx_cur_scope->__pyx_v_branching_factor, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5183, __pyx_L1_error)
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5183, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_2)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 5183, __pyx_L1_error)
}
}
#endif
+5184: async with self._lock if lock else empty_context:
/*with:*/ {
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_lock); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5184, __pyx_L1_error)
if (__pyx_t_2) {
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_lock); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5184, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __pyx_t_3;
__pyx_t_3 = 0;
} else {
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_empty_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5184, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __pyx_t_3;
__pyx_t_3 = 0;
}
__pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_aexit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5184, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_aenter); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5184, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
if (likely(__pyx_t_6)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_5, function);
}
}
__pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5184, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_3);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XGOTREF(__pyx_r);
if (likely(__pyx_r)) {
__Pyx_XGIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
__Pyx_XGIVEREF(__pyx_t_4);
__pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, awaiting value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L5_resume_from_await:;
__pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = 0;
__Pyx_XGOTREF(__pyx_t_4);
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5184, __pyx_L4_error)
__pyx_t_3 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_3);
} else {
__pyx_t_3 = NULL;
if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_3) < 0) __PYX_ERR(0, 5184, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_3);
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/*try:*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
goto __pyx_L14_try_end;
__pyx_L9_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.replicate", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_18, &__pyx_t_3) < 0) __PYX_ERR(0, 5184, __pyx_L11_except_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GOTREF(__pyx_t_18);
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = PyTuple_Pack(3, __pyx_t_6, __pyx_t_18, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5184, __pyx_L11_except_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_24 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5184, __pyx_L11_except_error)
__Pyx_GOTREF(__pyx_t_24);
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_24);
__Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
__Pyx_XGOTREF(__pyx_r);
if (likely(__pyx_r)) {
__Pyx_XGIVEREF(__pyx_t_3);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_3;
__Pyx_XGIVEREF(__pyx_t_4);
__pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_t_6);
__pyx_cur_scope->__pyx_t_2 = __pyx_t_6;
__Pyx_XGIVEREF(__pyx_t_7);
__pyx_cur_scope->__pyx_t_3 = __pyx_t_7;
__Pyx_XGIVEREF(__pyx_t_8);
__pyx_cur_scope->__pyx_t_4 = __pyx_t_8;
__Pyx_XGIVEREF(__pyx_t_9);
__pyx_cur_scope->__pyx_t_5 = __pyx_t_9;
__Pyx_XGIVEREF(__pyx_t_18);
__pyx_cur_scope->__pyx_t_6 = __pyx_t_18;
__Pyx_XGIVEREF(__pyx_t_24);
__pyx_cur_scope->__pyx_t_7 = __pyx_t_24;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_SwapException(__pyx_generator);
/* return from generator, awaiting value */
__pyx_generator->resume_label = 4;
return __pyx_r;
__pyx_L55_resume_from_await:;
__pyx_t_3 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_3);
__pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = 0;
__Pyx_XGOTREF(__pyx_t_4);
__pyx_t_6 = __pyx_cur_scope->__pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = 0;
__Pyx_XGOTREF(__pyx_t_6);
__pyx_t_7 = __pyx_cur_scope->__pyx_t_3;
__pyx_cur_scope->__pyx_t_3 = 0;
__Pyx_XGOTREF(__pyx_t_7);
__pyx_t_8 = __pyx_cur_scope->__pyx_t_4;
__pyx_cur_scope->__pyx_t_4 = 0;
__Pyx_XGOTREF(__pyx_t_8);
__pyx_t_9 = __pyx_cur_scope->__pyx_t_5;
__pyx_cur_scope->__pyx_t_5 = 0;
__Pyx_XGOTREF(__pyx_t_9);
__pyx_t_18 = __pyx_cur_scope->__pyx_t_6;
__pyx_cur_scope->__pyx_t_6 = 0;
__Pyx_XGOTREF(__pyx_t_18);
__pyx_t_24 = __pyx_cur_scope->__pyx_t_7;
__pyx_cur_scope->__pyx_t_7 = 0;
__Pyx_XGOTREF(__pyx_t_24);
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5184, __pyx_L11_except_error)
__pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1);
} else {
__pyx_t_1 = NULL;
if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(0, 5184, __pyx_L11_except_error)
__Pyx_GOTREF(__pyx_t_1);
}
__pyx_t_24 = __pyx_t_1;
__pyx_t_1 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_24);
__Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
if (__pyx_t_12 < 0) __PYX_ERR(0, 5184, __pyx_L11_except_error)
__pyx_t_2 = ((!(__pyx_t_12 != 0)) != 0);
if (__pyx_t_2) {
__Pyx_GIVEREF(__pyx_t_6);
__Pyx_GIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ErrRestoreWithState(__pyx_t_6, __pyx_t_18, __pyx_t_3);
__pyx_t_6 = 0; __pyx_t_18 = 0; __pyx_t_3 = 0;
__PYX_ERR(0, 5184, __pyx_L11_except_error)
}
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
goto __pyx_L10_exception_handled;
}
__pyx_L11_except_error:;
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
goto __pyx_L1_error;
__pyx_L13_try_return:;
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
goto __pyx_L6_return;
__pyx_L10_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
__pyx_L14_try_end:;
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_4) {
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5184, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_9);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_XGOTREF(__pyx_r);
if (likely(__pyx_r)) {
__Pyx_XGIVEREF(__pyx_t_4);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_t_9);
__pyx_cur_scope->__pyx_t_1 = __pyx_t_9;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, awaiting value */
__pyx_generator->resume_label = 5;
return __pyx_r;
__pyx_L56_resume_from_await:;
__pyx_t_4 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_4);
__pyx_t_9 = __pyx_cur_scope->__pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = 0;
__Pyx_XGOTREF(__pyx_t_9);
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5184, __pyx_L1_error)
__pyx_t_3 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_3);
} else {
__pyx_t_3 = NULL;
if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_3) < 0) __PYX_ERR(0, 5184, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
}
__pyx_t_9 = __pyx_t_3;
__pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
goto __pyx_L8;
}
__pyx_L6_return: {
__Pyx_PyThreadState_assign
__pyx_t_9 = 0; __pyx_t_8 = 0; __pyx_t_7 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0;
if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_24, &__pyx_t_25, &__pyx_t_26);
if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7);
__Pyx_XGOTREF(__pyx_t_9);
__Pyx_XGOTREF(__pyx_t_8);
__Pyx_XGOTREF(__pyx_t_7);
__Pyx_XGOTREF(__pyx_t_24);
__Pyx_XGOTREF(__pyx_t_25);
__Pyx_XGOTREF(__pyx_t_26);
__pyx_t_27 = __pyx_r;
__pyx_r = 0;
if (__pyx_t_4) {
__pyx_t_28 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 5184, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_28);
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_28);
__Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_XGOTREF(__pyx_r);
if (likely(__pyx_r)) {
__Pyx_XGIVEREF(__pyx_t_4);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_t_7);
__pyx_cur_scope->__pyx_t_1 = __pyx_t_7;
__Pyx_XGIVEREF(__pyx_t_8);
__pyx_cur_scope->__pyx_t_2 = __pyx_t_8;
__Pyx_XGIVEREF(__pyx_t_9);
__pyx_cur_scope->__pyx_t_3 = __pyx_t_9;
__Pyx_XGIVEREF(__pyx_t_24);
__pyx_cur_scope->__pyx_t_4 = __pyx_t_24;
__Pyx_XGIVEREF(__pyx_t_25);
__pyx_cur_scope->__pyx_t_5 = __pyx_t_25;
__Pyx_XGIVEREF(__pyx_t_26);
__pyx_cur_scope->__pyx_t_6 = __pyx_t_26;
__Pyx_XGIVEREF(__pyx_t_27);
__pyx_cur_scope->__pyx_t_7 = __pyx_t_27;
__Pyx_XGIVEREF(__pyx_t_28);
__pyx_cur_scope->__pyx_t_8 = __pyx_t_28;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, awaiting value */
__pyx_generator->resume_label = 6;
return __pyx_r;
__pyx_L57_resume_from_await:;
__pyx_t_4 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_4);
__pyx_t_7 = __pyx_cur_scope->__pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = 0;
__Pyx_XGOTREF(__pyx_t_7);
__pyx_t_8 = __pyx_cur_scope->__pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = 0;
__Pyx_XGOTREF(__pyx_t_8);
__pyx_t_9 = __pyx_cur_scope->__pyx_t_3;
__pyx_cur_scope->__pyx_t_3 = 0;
__Pyx_XGOTREF(__pyx_t_9);
__pyx_t_24 = __pyx_cur_scope->__pyx_t_4;
__pyx_cur_scope->__pyx_t_4 = 0;
__Pyx_XGOTREF(__pyx_t_24);
__pyx_t_25 = __pyx_cur_scope->__pyx_t_5;
__pyx_cur_scope->__pyx_t_5 = 0;
__Pyx_XGOTREF(__pyx_t_25);
__pyx_t_26 = __pyx_cur_scope->__pyx_t_6;
__pyx_cur_scope->__pyx_t_6 = 0;
__Pyx_XGOTREF(__pyx_t_26);
__pyx_t_27 = __pyx_cur_scope->__pyx_t_7;
__pyx_cur_scope->__pyx_t_7 = 0;
__Pyx_XGOTREF(__pyx_t_27);
__pyx_t_28 = __pyx_cur_scope->__pyx_t_8;
__pyx_cur_scope->__pyx_t_8 = 0;
__Pyx_XGOTREF(__pyx_t_28);
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5184, __pyx_L1_error)
__pyx_t_3 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_3);
} else {
__pyx_t_3 = NULL;
if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_3) < 0) __PYX_ERR(0, 5184, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
}
__pyx_t_28 = __pyx_t_3;
__pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
}
__pyx_r = __pyx_t_27;
__pyx_t_27 = 0;
if (PY_MAJOR_VERSION >= 3) {
__Pyx_XGIVEREF(__pyx_t_24);
__Pyx_XGIVEREF(__pyx_t_25);
__Pyx_XGIVEREF(__pyx_t_26);
__Pyx_ExceptionReset(__pyx_t_24, __pyx_t_25, __pyx_t_26);
}
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ErrRestore(__pyx_t_9, __pyx_t_8, __pyx_t_7);
__pyx_t_9 = 0; __pyx_t_8 = 0; __pyx_t_7 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0;
goto __pyx_L0;
}
__pyx_L8:;
}
goto __pyx_L58;
__pyx_L4_error:;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L1_error;
__pyx_L58:;
}
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
+5185: workers = {parent._workers_dv[w] for w in self.workers_list(workers)}
{ /* enter inner scope */
__pyx_t_1 = PySet_New(NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5185, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_workers_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5185, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
if (likely(__pyx_t_6)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_5, function);
}
}
__pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_cur_scope->__pyx_v_workers) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_cur_scope->__pyx_v_workers);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5185, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
__pyx_t_5 = __pyx_t_3; __Pyx_INCREF(__pyx_t_5); __pyx_t_10 = 0;
__pyx_t_11 = NULL;
} else {
__pyx_t_10 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5185, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_11 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5185, __pyx_L9_error)
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
for (;;) {
if (likely(!__pyx_t_11)) {
if (likely(PyList_CheckExact(__pyx_t_5))) {
if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 5185, __pyx_L9_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5185, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
} else {
if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 5185, __pyx_L9_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5185, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
}
} else {
__pyx_t_3 = __pyx_t_11(__pyx_t_5);
if (unlikely(!__pyx_t_3)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5185, __pyx_L9_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_3);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr84__pyx_v_w);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr84__pyx_v_w, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5185, __pyx_L9_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_parent->_workers_dv, __pyx_cur_scope->__pyx_9genexpr84__pyx_v_w); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5185, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(PySet_Add(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 5185, __pyx_L9_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
} /* exit inner scope */
__Pyx_GOTREF(__pyx_cur_scope->__pyx_v_workers);
__Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_workers, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
+5186: if n is None:
__pyx_t_2 = (__pyx_cur_scope->__pyx_v_n == Py_None);
__pyx_t_12 = (__pyx_t_2 != 0);
if (__pyx_t_12) {
/* … */
goto __pyx_L17;
}
+5187: n = len(workers)
__pyx_t_10 = PyObject_Length(__pyx_cur_scope->__pyx_v_workers); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5187, __pyx_L9_error) __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5187, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_n); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_n, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0;
5188: else:
+5189: n = min(n, len(workers))
/*else*/ {
__pyx_t_10 = PyObject_Length(__pyx_cur_scope->__pyx_v_workers); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5189, __pyx_L9_error)
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_n);
__pyx_t_1 = __pyx_cur_scope->__pyx_v_n;
__pyx_t_3 = PyInt_FromSsize_t(__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5189, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = PyObject_RichCompare(__pyx_t_3, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5189, __pyx_L9_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5189, __pyx_L9_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (__pyx_t_12) {
__pyx_t_6 = PyInt_FromSsize_t(__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5189, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __pyx_t_6;
__pyx_t_6 = 0;
} else {
__Pyx_INCREF(__pyx_t_1);
__pyx_t_5 = __pyx_t_1;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __pyx_t_5;
__Pyx_INCREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_cur_scope->__pyx_v_n);
__Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_n, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
}
__pyx_L17:;
+5190: if n == 0:
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_cur_scope->__pyx_v_n, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5190, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5190, __pyx_L9_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__pyx_t_12)) { /* … */ }
+5191: raise ValueError("Can not use replicate to delete data")
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__77, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5191, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 5191, __pyx_L9_error) /* … */ __pyx_tuple__77 = PyTuple_Pack(1, __pyx_kp_u_Can_not_use_replicate_to_delete); if (unlikely(!__pyx_tuple__77)) __PYX_ERR(0, 5191, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__77); __Pyx_GIVEREF(__pyx_tuple__77);
5192:
+5193: tasks = {parent._tasks[k] for k in keys}
{ /* enter inner scope */
__pyx_t_1 = PySet_New(NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5193, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_keys)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_keys)) {
__pyx_t_5 = __pyx_cur_scope->__pyx_v_keys; __Pyx_INCREF(__pyx_t_5); __pyx_t_10 = 0;
__pyx_t_11 = NULL;
} else {
__pyx_t_10 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_keys); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5193, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_11 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5193, __pyx_L9_error)
}
for (;;) {
if (likely(!__pyx_t_11)) {
if (likely(PyList_CheckExact(__pyx_t_5))) {
if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_6); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 5193, __pyx_L9_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5193, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
} else {
if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_6); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 5193, __pyx_L9_error)
#else
__pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5193, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
}
} else {
__pyx_t_6 = __pyx_t_11(__pyx_t_5);
if (unlikely(!__pyx_t_6)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5193, __pyx_L9_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_6);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr85__pyx_v_k);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr85__pyx_v_k, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5193, __pyx_L9_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_parent->_tasks, __pyx_cur_scope->__pyx_9genexpr85__pyx_v_k); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5193, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_6);
if (unlikely(PySet_Add(__pyx_t_1, (PyObject*)__pyx_t_6))) __PYX_ERR(0, 5193, __pyx_L9_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_v_tasks = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+5194: missing_data = [ts._key for ts in tasks if not ts._who_has]
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5194, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_10 = 0;
__pyx_t_6 = __Pyx_set_iterator(__pyx_cur_scope->__pyx_v_tasks, 1, (&__pyx_t_13), (&__pyx_t_14)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5194, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_5);
__pyx_t_5 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_15 = __Pyx_set_iter_next(__pyx_t_5, __pyx_t_13, &__pyx_t_10, &__pyx_t_6, __pyx_t_14);
if (unlikely(__pyx_t_15 == 0)) break;
if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 5194, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5194, __pyx_L9_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_9genexpr86__pyx_v_ts));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr86__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6));
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_12 = (__pyx_cur_scope->__pyx_9genexpr86__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_cur_scope->__pyx_9genexpr86__pyx_v_ts->_who_has) != 0);
__pyx_t_2 = ((!__pyx_t_12) != 0);
if (__pyx_t_2) {
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_cur_scope->__pyx_9genexpr86__pyx_v_ts->_key))) __PYX_ERR(0, 5194, __pyx_L9_error)
}
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_v_missing_data = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+5195: if missing_data:
__pyx_t_2 = (PyList_GET_SIZE(__pyx_cur_scope->__pyx_v_missing_data) != 0);
if (__pyx_t_2) {
/* … */
}
+5196: return {"status": "missing-data", "keys": missing_data}
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5196, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_status, __pyx_kp_u_missing_data) < 0) __PYX_ERR(0, 5196, __pyx_L9_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_keys, __pyx_cur_scope->__pyx_v_missing_data) < 0) __PYX_ERR(0, 5196, __pyx_L9_error) __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L13_try_return;
5197:
5198: # Delete extraneous data
+5199: if delete:
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_delete); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5199, __pyx_L9_error) if (__pyx_t_2) { /* … */ }
+5200: del_worker_tasks = defaultdict(set)
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_defaultdict); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5200, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, ((PyObject *)(&PySet_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_5, ((PyObject *)(&PySet_Type))); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5200, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_del_worker_tasks = __pyx_t_1; __pyx_t_1 = 0;
+5201: for ts in tasks:
__pyx_t_13 = 0;
__pyx_t_5 = __Pyx_set_iterator(__pyx_cur_scope->__pyx_v_tasks, 1, (&__pyx_t_10), (&__pyx_t_14)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5201, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_5;
__pyx_t_5 = 0;
while (1) {
__pyx_t_15 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_10, &__pyx_t_13, &__pyx_t_5, __pyx_t_14);
if (unlikely(__pyx_t_15 == 0)) break;
if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 5201, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5201, __pyx_L9_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_ts));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_5));
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
+5202: del_candidates = ts._who_has & workers
__pyx_t_5 = PyNumber_And(__pyx_cur_scope->__pyx_v_ts->_who_has, __pyx_cur_scope->__pyx_v_workers); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5202, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_del_candidates); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_del_candidates, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0;
+5203: if len(del_candidates) > n:
__pyx_t_16 = PyObject_Length(__pyx_cur_scope->__pyx_v_del_candidates); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5203, __pyx_L9_error) __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_16); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5203, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyObject_RichCompare(__pyx_t_5, __pyx_cur_scope->__pyx_v_n, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5203, __pyx_L9_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5203, __pyx_L9_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { /* … */ } } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5204: for ws in random.sample(
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_random); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5204, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_sample); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5204, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) { __pyx_t_3 = __pyx_t_6; __Pyx_INCREF(__pyx_t_3); __pyx_t_16 = 0; __pyx_t_11 = NULL; } else { __pyx_t_16 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5204, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_11 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5204, __pyx_L9_error) } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_16); __Pyx_INCREF(__pyx_t_6); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 5204, __pyx_L9_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5204, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_6); #endif } else { if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_16); __Pyx_INCREF(__pyx_t_6); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 5204, __pyx_L9_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5204, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_6); #endif } } else { __pyx_t_6 = __pyx_t_11(__pyx_t_3); if (unlikely(!__pyx_t_6)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5204, __pyx_L9_error) } break; } __Pyx_GOTREF(__pyx_t_6); } if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5204, __pyx_L9_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_ws)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_6)); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5205: del_candidates, len(del_candidates) - n
__pyx_t_16 = PyObject_Length(__pyx_cur_scope->__pyx_v_del_candidates); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5205, __pyx_L9_error) __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_16); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5205, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_17 = PyNumber_Subtract(__pyx_t_5, __pyx_cur_scope->__pyx_v_n); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5205, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_cur_scope->__pyx_v_del_candidates, __pyx_t_17}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5204, __pyx_L9_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_cur_scope->__pyx_v_del_candidates, __pyx_t_17}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5204, __pyx_L9_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; } else #endif { __pyx_t_18 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5204, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_18); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_cur_scope->__pyx_v_del_candidates); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_del_candidates); PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_15, __pyx_cur_scope->__pyx_v_del_candidates); __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_15, __pyx_t_17); __pyx_t_17 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_18, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5204, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5206: ):
+5207: del_worker_tasks[ws].add(ts)
__pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_del_worker_tasks, ((PyObject *)__pyx_cur_scope->__pyx_v_ws)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5207, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_add); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5207, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) { __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_17); if (likely(__pyx_t_18)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); __Pyx_INCREF(__pyx_t_18); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_17, function); } } __pyx_t_6 = (__pyx_t_18) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_18, ((PyObject *)__pyx_cur_scope->__pyx_v_ts)) : __Pyx_PyObject_CallOneArg(__pyx_t_17, ((PyObject *)__pyx_cur_scope->__pyx_v_ts)); __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5207, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5208:
+5209: await asyncio.gather(
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5209, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_gather); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5209, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; { /* enter inner scope */ /* … */ __pyx_t_6 = PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5209, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5209, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_0 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_1 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_2 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_3 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L35_resume_from_await:; __pyx_t_4 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_7 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5209, __pyx_L9_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 5209, __pyx_L9_error) } }
+5210: *[
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5210, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1);
+5211: self._delete_worker_data(ws._address, [t.key for t in tasks])
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_delete_worker_data); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5211, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_17); { /* enter inner scope */ __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5211, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_5); if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_9genexpr87__pyx_v_tasks)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_9genexpr87__pyx_v_tasks)) { __pyx_t_19 = __pyx_cur_scope->__pyx_9genexpr87__pyx_v_tasks; __Pyx_INCREF(__pyx_t_19); __pyx_t_16 = 0; __pyx_t_11 = NULL; } else { __pyx_t_16 = -1; __pyx_t_19 = PyObject_GetIter(__pyx_cur_scope->__pyx_9genexpr87__pyx_v_tasks); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5211, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_11 = Py_TYPE(__pyx_t_19)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5211, __pyx_L9_error) } for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_19))) { if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_19)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_20 = PyList_GET_ITEM(__pyx_t_19, __pyx_t_16); __Pyx_INCREF(__pyx_t_20); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 5211, __pyx_L9_error) #else __pyx_t_20 = PySequence_ITEM(__pyx_t_19, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5211, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_20); #endif } else { if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_19)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_20 = PyTuple_GET_ITEM(__pyx_t_19, __pyx_t_16); __Pyx_INCREF(__pyx_t_20); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 5211, __pyx_L9_error) #else __pyx_t_20 = PySequence_ITEM(__pyx_t_19, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5211, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_20); #endif } } else { __pyx_t_20 = __pyx_t_11(__pyx_t_19); if (unlikely(!__pyx_t_20)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5211, __pyx_L9_error) } break; } __Pyx_GOTREF(__pyx_t_20); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr88__pyx_v_t); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr88__pyx_v_t, __pyx_t_20); __Pyx_GIVEREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_9genexpr88__pyx_v_t, __pyx_n_s_key); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5211, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_20); if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_t_20))) __PYX_ERR(0, 5211, __pyx_L9_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; } /* exit inner scope */ __pyx_t_19 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) { __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_17); if (likely(__pyx_t_19)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); __Pyx_INCREF(__pyx_t_19); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_17, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_17)) { PyObject *__pyx_temp[3] = {__pyx_t_19, __pyx_cur_scope->__pyx_9genexpr87__pyx_v_ws->_address, __pyx_t_5}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5211, __pyx_L9_error) __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) { PyObject *__pyx_temp[3] = {__pyx_t_19, __pyx_cur_scope->__pyx_9genexpr87__pyx_v_ws->_address, __pyx_t_5}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5211, __pyx_L9_error) __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_20 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5211, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_20); if (__pyx_t_19) { __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_19); __pyx_t_19 = NULL; } __Pyx_INCREF(__pyx_cur_scope->__pyx_9genexpr87__pyx_v_ws->_address); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_9genexpr87__pyx_v_ws->_address); PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_15, __pyx_cur_scope->__pyx_9genexpr87__pyx_v_ws->_address); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_15, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_20, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5211, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_18))) __PYX_ERR(0, 5210, __pyx_L9_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } /* exit inner scope */
+5212: for ws, tasks in del_worker_tasks.items()
__pyx_t_10 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_del_worker_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 5212, __pyx_L9_error)
}
__pyx_t_17 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_del_worker_tasks, 0, __pyx_n_s_items, (&__pyx_t_13), (&__pyx_t_14)); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5212, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_XDECREF(__pyx_t_6);
__pyx_t_6 = __pyx_t_17;
__pyx_t_17 = 0;
while (1) {
__pyx_t_15 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_13, &__pyx_t_10, &__pyx_t_17, &__pyx_t_18, NULL, __pyx_t_14);
if (unlikely(__pyx_t_15 == 0)) break;
if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 5212, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_GOTREF(__pyx_t_18);
if (!(likely(((__pyx_t_17) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_17, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5212, __pyx_L9_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_9genexpr87__pyx_v_ws));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr87__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_17));
__Pyx_GIVEREF(__pyx_t_17);
__pyx_t_17 = 0;
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_9genexpr87__pyx_v_tasks);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr87__pyx_v_tasks, __pyx_t_18);
__Pyx_GIVEREF(__pyx_t_18);
__pyx_t_18 = 0;
5213: ]
5214: )
5215:
5216: # Copy not-yet-filled data
+5217: while tasks:
while (1) {
__pyx_t_2 = (PySet_GET_SIZE(__pyx_cur_scope->__pyx_v_tasks) != 0);
if (!__pyx_t_2) break;
+5218: gathers = defaultdict(dict)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_defaultdict); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5218, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_3, ((PyObject *)(&PyDict_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)(&PyDict_Type))); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5218, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_gathers); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_gathers, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0;
+5219: for ts in list(tasks):
__pyx_t_1 = PySequence_List(__pyx_cur_scope->__pyx_v_tasks); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5219, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 5219, __pyx_L9_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5219, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); #endif if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5219, __pyx_L9_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_ts)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1)); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_L38_continue:; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5220: if ts._state == "forgotten":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_cur_scope->__pyx_v_ts->_state, __pyx_n_u_forgotten, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5220, __pyx_L9_error) __pyx_t_12 = (__pyx_t_2 != 0); if (__pyx_t_12) { /* … */ }
5221: # task is no longer needed by any client or dependant task
+5222: tasks.remove(ts)
__pyx_t_21 = __Pyx_PySet_Remove(__pyx_cur_scope->__pyx_v_tasks, ((PyObject *)__pyx_cur_scope->__pyx_v_ts)); if (unlikely(__pyx_t_21 == ((int)-1))) __PYX_ERR(0, 5222, __pyx_L9_error)
+5223: continue
goto __pyx_L38_continue;
+5224: n_missing = n - len(ts._who_has & workers)
__pyx_t_1 = PyNumber_And(__pyx_cur_scope->__pyx_v_ts->_who_has, __pyx_cur_scope->__pyx_v_workers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5224, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5224, __pyx_L9_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5224, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyNumber_Subtract(__pyx_cur_scope->__pyx_v_n, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5224, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_n_missing); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_n_missing, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0;
+5225: if n_missing <= 0:
__pyx_t_3 = PyObject_RichCompare(__pyx_cur_scope->__pyx_v_n_missing, __pyx_int_0, Py_LE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5225, __pyx_L9_error) __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5225, __pyx_L9_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_12) { /* … */ }
5226: # Already replicated enough
+5227: tasks.remove(ts)
__pyx_t_21 = __Pyx_PySet_Remove(__pyx_cur_scope->__pyx_v_tasks, ((PyObject *)__pyx_cur_scope->__pyx_v_ts)); if (unlikely(__pyx_t_21 == ((int)-1))) __PYX_ERR(0, 5227, __pyx_L9_error)
+5228: continue
goto __pyx_L38_continue;
5229:
+5230: count = min(n_missing, branching_factor * len(ts._who_has))
__pyx_t_3 = __pyx_cur_scope->__pyx_v_ts->_who_has;
__Pyx_INCREF(__pyx_t_3);
if (unlikely(__pyx_t_3 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 5230, __pyx_L9_error)
}
__pyx_t_10 = PySet_GET_SIZE(__pyx_t_3); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5230, __pyx_L9_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyInt_FromSsize_t(__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5230, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = PyNumber_Multiply(__pyx_cur_scope->__pyx_v_branching_factor, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5230, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_n_missing);
__pyx_t_3 = __pyx_cur_scope->__pyx_v_n_missing;
__pyx_t_17 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5230, __pyx_L9_error)
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5230, __pyx_L9_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (__pyx_t_12) {
__Pyx_INCREF(__pyx_t_1);
__pyx_t_18 = __pyx_t_1;
} else {
__Pyx_INCREF(__pyx_t_3);
__pyx_t_18 = __pyx_t_3;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __pyx_t_18;
__Pyx_INCREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_count);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_count, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
+5231: assert count > 0
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = PyObject_RichCompare(__pyx_cur_scope->__pyx_v_count, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5231, __pyx_L9_error)
__pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5231, __pyx_L9_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_12)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 5231, __pyx_L9_error)
}
}
#endif
5232:
+5233: for ws in random.sample(workers - ts._who_has, count):
__Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_random); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5233, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_sample); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5233, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = PyNumber_Subtract(__pyx_cur_scope->__pyx_v_workers, __pyx_cur_scope->__pyx_v_ts->_who_has); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5233, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_17 = NULL; __pyx_t_14 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_17)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_17); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_14 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_17, __pyx_t_18, __pyx_cur_scope->__pyx_v_count}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5233, __pyx_L9_error) __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_17, __pyx_t_18, __pyx_cur_scope->__pyx_v_count}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5233, __pyx_L9_error) __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; } else #endif { __pyx_t_20 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5233, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_20); if (__pyx_t_17) { __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_17); __pyx_t_17 = NULL; } __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_14, __pyx_t_18); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_count); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_count); PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_14, __pyx_cur_scope->__pyx_v_count); __pyx_t_18 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_20, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5233, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_10 = 0; __pyx_t_11 = NULL; } else { __pyx_t_10 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5233, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_11 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5233, __pyx_L9_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 5233, __pyx_L9_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5233, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 5233, __pyx_L9_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5233, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_11(__pyx_t_3); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5233, __pyx_L9_error) } break; } __Pyx_GOTREF(__pyx_t_1); } if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5233, __pyx_L9_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_ws)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1)); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5234: gathers[ws._address][ts._key] = [
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5234, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_20 = __Pyx_PyObject_Dict_GetItem(__pyx_cur_scope->__pyx_v_gathers, __pyx_cur_scope->__pyx_v_ws->_address); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5234, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_20);
if (unlikely(PyObject_SetItem(__pyx_t_20, __pyx_cur_scope->__pyx_v_ts->_key, __pyx_t_1) < 0)) __PYX_ERR(0, 5234, __pyx_L9_error)
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5235: wws._address for wws in ts._who_has
__pyx_t_16 = 0;
__pyx_t_18 = __Pyx_set_iterator(__pyx_cur_scope->__pyx_v_ts->_who_has, 1, (&__pyx_t_22), (&__pyx_t_14)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5235, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_XDECREF(__pyx_t_20);
__pyx_t_20 = __pyx_t_18;
__pyx_t_18 = 0;
while (1) {
__pyx_t_15 = __Pyx_set_iter_next(__pyx_t_20, __pyx_t_22, &__pyx_t_16, &__pyx_t_18, __pyx_t_14);
if (unlikely(__pyx_t_15 == 0)) break;
if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 5235, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_18);
if (!(likely(((__pyx_t_18) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_18, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5235, __pyx_L9_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_9genexpr89__pyx_v_wws));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr89__pyx_v_wws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_18));
__Pyx_GIVEREF(__pyx_t_18);
__pyx_t_18 = 0;
/* … */
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_cur_scope->__pyx_9genexpr89__pyx_v_wws->_address))) __PYX_ERR(0, 5234, __pyx_L9_error)
}
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
} /* exit inner scope */
5236: ]
5237:
+5238: results = await asyncio.gather(
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5238, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_gather); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5238, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* … */ __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5238, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5238, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_6); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_0 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_1 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_2 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_3 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 3; return __pyx_r; __pyx_L46_resume_from_await:; __pyx_t_4 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_7 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5238, __pyx_L9_error) __pyx_t_6 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_6); } else { __pyx_t_6 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_6) < 0) __PYX_ERR(0, 5238, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_6); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_results); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_results, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0;
5239: *(
+5240: retry_operation(self.rpc(addr=w).gather, who_has=who_has)
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_9replicate_genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_41_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_41_genexpr *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_41_genexpr(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_41_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_41_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 5240, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_40_replicate *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_9replicate_2generator41, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_Scheduler_replicate_locals_genex, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 5240, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.replicate.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_9replicate_2generator41(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5240, __pyx_L1_error)
/* … */
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_retry_operation); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5240, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 5240, __pyx_L1_error) }
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self, __pyx_n_s_rpc); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5240, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5240, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_addr, __pyx_cur_scope->__pyx_v_w) < 0) __PYX_ERR(0, 5240, __pyx_L1_error)
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5240, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_gather); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5240, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5240, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_GIVEREF(__pyx_t_8);
PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8);
__pyx_t_8 = 0;
__pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5240, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_who_has, __pyx_cur_scope->__pyx_v_who_has) < 0) __PYX_ERR(0, 5240, __pyx_L1_error)
__pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5240, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_r = __pyx_t_5;
__pyx_t_5 = 0;
__Pyx_XGIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
__pyx_cur_scope->__pyx_t_3 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, yielding value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L6_resume_from_yield:;
__pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
__pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
__pyx_t_4 = __pyx_cur_scope->__pyx_t_3;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5240, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_6 = __pyx_pf_11distributed_9scheduler_9Scheduler_9replicate_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5240, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_6);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_41_genexpr {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_40_replicate *__pyx_outer_scope;
PyObject *__pyx_v_w;
PyObject *__pyx_v_who_has;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
Py_ssize_t __pyx_t_2;
int __pyx_t_3;
};
+5241: for w, who_has in gathers.items()
__pyx_t_2 = 0;
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_gathers)) { __Pyx_RaiseClosureNameError("gathers"); __PYX_ERR(0, 5241, __pyx_L1_error) }
if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_gathers == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 5241, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_gathers, 0, __pyx_n_s_items, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5241, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_5;
__pyx_t_5 = 0;
while (1) {
__pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, &__pyx_t_6, NULL, __pyx_t_4);
if (unlikely(__pyx_t_7 == 0)) break;
if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 5241, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_w);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_w, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_who_has);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_who_has, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
5242: )
5243: )
+5244: for w, v in zip(gathers, results):
__pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5244, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_gathers); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_gathers); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_cur_scope->__pyx_v_gathers); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_results); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_results); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_cur_scope->__pyx_v_results); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_zip, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5244, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6); __pyx_t_13 = 0; __pyx_t_11 = NULL; } else { __pyx_t_13 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5244, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_11 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5244, __pyx_L9_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_6))) { if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 5244, __pyx_L9_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5244, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 5244, __pyx_L9_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5244, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_11(__pyx_t_6); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5244, __pyx_L9_error) } break; } __Pyx_GOTREF(__pyx_t_1); } if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 5244, __pyx_L9_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_20 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_3 = PyList_GET_ITEM(sequence, 0); __pyx_t_20 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_20); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5244, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_20 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5244, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_20); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; __pyx_t_18 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5244, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_23 = Py_TYPE(__pyx_t_18)->tp_iternext; index = 0; __pyx_t_3 = __pyx_t_23(__pyx_t_18); if (unlikely(!__pyx_t_3)) goto __pyx_L49_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_20 = __pyx_t_23(__pyx_t_18); if (unlikely(!__pyx_t_20)) goto __pyx_L49_unpacking_failed; __Pyx_GOTREF(__pyx_t_20); if (__Pyx_IternextUnpackEndCheck(__pyx_t_23(__pyx_t_18), 2) < 0) __PYX_ERR(0, 5244, __pyx_L9_error) __pyx_t_23 = NULL; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; goto __pyx_L50_unpacking_done; __pyx_L49_unpacking_failed:; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_23 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 5244, __pyx_L9_error) __pyx_L50_unpacking_done:; } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_w); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_w, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_v); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_v, __pyx_t_20); __Pyx_GIVEREF(__pyx_t_20); __pyx_t_20 = 0; /* … */ } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; }
+5245: if v["status"] == "OK":
__pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_cur_scope->__pyx_v_v, __pyx_n_u_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5245, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_OK, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5245, __pyx_L9_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_12) { /* … */ goto __pyx_L51; }
+5246: self.add_keys(worker=w, keys=list(gathers[w]))
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_add_keys_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5246, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_20 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5246, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_20); if (PyDict_SetItem(__pyx_t_20, __pyx_n_s_worker, __pyx_cur_scope->__pyx_v_w) < 0) __PYX_ERR(0, 5246, __pyx_L9_error) __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_gathers, __pyx_cur_scope->__pyx_v_w); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5246, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_18 = PySequence_List(__pyx_t_3); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5246, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_20, __pyx_n_s_keys, __pyx_t_18) < 0) __PYX_ERR(0, 5246, __pyx_L9_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_20); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5246, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
5247: else:
+5248: logger.warning("Communication failed during replication: %s", v)
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_20, __pyx_n_s_logger); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5248, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_20, __pyx_n_s_warning); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5248, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_t_20 = NULL;
__pyx_t_14 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_20 = PyMethod_GET_SELF(__pyx_t_1);
if (likely(__pyx_t_20)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_20);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_1, function);
__pyx_t_14 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_1)) {
PyObject *__pyx_temp[3] = {__pyx_t_20, __pyx_kp_u_Communication_failed_during_repl, __pyx_cur_scope->__pyx_v_v};
__pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5248, __pyx_L9_error)
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_GOTREF(__pyx_t_18);
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
PyObject *__pyx_temp[3] = {__pyx_t_20, __pyx_kp_u_Communication_failed_during_repl, __pyx_cur_scope->__pyx_v_v};
__pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5248, __pyx_L9_error)
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_GOTREF(__pyx_t_18);
} else
#endif
{
__pyx_t_3 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5248, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_3);
if (__pyx_t_20) {
__Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_20); __pyx_t_20 = NULL;
}
__Pyx_INCREF(__pyx_kp_u_Communication_failed_during_repl);
__Pyx_GIVEREF(__pyx_kp_u_Communication_failed_during_repl);
PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_14, __pyx_kp_u_Communication_failed_during_repl);
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_v);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_v);
PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_14, __pyx_cur_scope->__pyx_v_v);
__pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5248, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
}
__pyx_L51:;
5249:
+5250: self.log_event(w, {"action": "replicate-add", "keys": gathers[w]})
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_log_event_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5250, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5250, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_action, __pyx_kp_u_replicate_add) < 0) __PYX_ERR(0, 5250, __pyx_L9_error) __pyx_t_20 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_gathers, __pyx_cur_scope->__pyx_v_w); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5250, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_20); if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_keys, __pyx_t_20) < 0) __PYX_ERR(0, 5250, __pyx_L9_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_20 = NULL; __pyx_t_14 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_20)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_14 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_20, __pyx_cur_scope->__pyx_v_w, __pyx_t_3}; __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5250, __pyx_L9_error) __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_20, __pyx_cur_scope->__pyx_v_w, __pyx_t_3}; __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5250, __pyx_L9_error) __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_17 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5250, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_17); if (__pyx_t_20) { __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_20); __pyx_t_20 = NULL; } __Pyx_INCREF(__pyx_cur_scope->__pyx_v_w); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_w); PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_14, __pyx_cur_scope->__pyx_v_w); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_14, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_17, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5250, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
5251:
+5252: self.log_event(
__pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_log_event_2); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5252, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_18);
5253: "all",
5254: {
+5255: "action": "replicate",
__pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5255, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_action, __pyx_n_u_replicate) < 0) __PYX_ERR(0, 5255, __pyx_L9_error)
+5256: "workers": list(workers),
__pyx_t_17 = PySequence_List(__pyx_cur_scope->__pyx_v_workers); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5256, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_17); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_workers, __pyx_t_17) < 0) __PYX_ERR(0, 5255, __pyx_L9_error) __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+5257: "key-count": len(keys),
__pyx_t_13 = PyObject_Length(__pyx_cur_scope->__pyx_v_keys); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5257, __pyx_L9_error) __pyx_t_17 = PyInt_FromSsize_t(__pyx_t_13); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5257, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_17); if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u_key_count, __pyx_t_17) < 0) __PYX_ERR(0, 5255, __pyx_L9_error) __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+5258: "branching-factor": branching_factor,
if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u_branching_factor_2, __pyx_cur_scope->__pyx_v_branching_factor) < 0) __PYX_ERR(0, 5255, __pyx_L9_error) __pyx_t_17 = NULL; __pyx_t_14 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) { __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_18); if (likely(__pyx_t_17)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18); __Pyx_INCREF(__pyx_t_17); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_18, function); __pyx_t_14 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_18)) { PyObject *__pyx_temp[3] = {__pyx_t_17, __pyx_n_u_all, __pyx_t_1}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5252, __pyx_L9_error) __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) { PyObject *__pyx_temp[3] = {__pyx_t_17, __pyx_n_u_all, __pyx_t_1}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5252, __pyx_L9_error) __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { __pyx_t_3 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5252, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_17) { __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_17); __pyx_t_17 = NULL; } __Pyx_INCREF(__pyx_n_u_all); __Pyx_GIVEREF(__pyx_n_u_all); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_14, __pyx_n_u_all); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_14, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5252, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5259: },
5260: )
5261:
+5262: def workers_to_close(
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_128workers_to_close(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_127workers_to_close[] = "\n Find workers that we can close with low cost\n\n This returns a list of workers that are good candidates to retire.\n These workers are not running anything and are storing\n relatively little data relative to their peers. If all workers are\n idle then we still maintain enough workers to have enough RAM to store\n our data, with a comfortable buffer.\n\n This is for use with systems like ``distributed.deploy.adaptive``.\n\n Parameters\n ----------\n memory_factor : Number\n Amount of extra space we want to have for our stored data.\n Defaults two 2, or that we want to have twice as much memory as we\n currently have data.\n n : int\n Number of workers to close\n minimum : int\n Minimum number of workers to keep around\n key : Callable(WorkerState)\n An optional callable mapping a WorkerState object to a group\n affiliation. Groups will be closed together. This is useful when\n closing workers must be done collectively, such as by hostname.\n target : int\n Target number of workers to have after we close\n attribute : str\n The attribute of the WorkerState object to return, like \"address\"\n or \"name\". Defaults to \"address\".\n\n Examples\n --------\n >>> scheduler.workers_to_close()\n ['tcp://192.168.0.1:1234', 'tcp://192.168.0.2:1234']\n\n Group workers by hostname prior to closing\n\n >>> scheduler.workers_to_close(key=lambda ws: ws.host)\n ['tcp://192.168.0.1:1234', 'tcp://192.168.0.1:4567']\n\n Remove two workers\n\n >>> scheduler.workers_to_close(n=2)\n\n Keep enough workers to have twice as much memory as we we need.\n\n >>> scheduler.workers_to_close(memory_ratio=2)\n\n Returns\n -------\n to_close: list of worker addresses that ""are OK to close\n\n See Also\n --------\n Scheduler.retire_workers\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_128workers_to_close = {"workers_to_close", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_128workers_to_close, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_127workers_to_close};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_128workers_to_close(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_memory_ratio = 0;
PyObject *__pyx_v_n = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_minimum = 0;
PyObject *__pyx_v_target = 0;
PyObject *__pyx_v_attribute = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("workers_to_close (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_memory_ratio,&__pyx_n_s_n,&__pyx_n_s_key,&__pyx_n_s_minimum,&__pyx_n_s_target,&__pyx_n_s_attribute,0};
PyObject* values[8] = {0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_127workers_to_close(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_memory_ratio, PyObject *__pyx_v_n, PyObject *__pyx_v_key, PyObject *__pyx_v_minimum, PyObject *__pyx_v_target, PyObject *__pyx_v_attribute) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_42_workers_to_close *__pyx_cur_scope;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_v_limit_bytes = NULL;
PyObject *__pyx_v_limit = NULL;
PyObject *__pyx_v_total = NULL;
PyObject *__pyx_v__key = 0;
PyObject *__pyx_v_idle = NULL;
PyObject *__pyx_v_to_close = NULL;
PyObject *__pyx_v_n_remain = NULL;
PyObject *__pyx_v_group = NULL;
PyObject *__pyx_v_result = NULL;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_9genexpr91__pyx_v_ws = NULL;
PyObject *__pyx_9genexpr92__pyx_v_k = NULL;
PyObject *__pyx_9genexpr92__pyx_v_v = NULL;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_9genexpr93__pyx_v_ws = NULL;
PyObject *__pyx_9genexpr94__pyx_v_k = NULL;
PyObject *__pyx_9genexpr94__pyx_v_v = NULL;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_9genexpr95__pyx_v_ws = NULL;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_9genexpr97__pyx_v_ws = NULL;
PyObject *__pyx_9genexpr98__pyx_v_g = NULL;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_9genexpr98__pyx_v_ws = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("workers_to_close", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_42_workers_to_close *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_42_workers_to_close(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_42_workers_to_close, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_42_workers_to_close *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 5262, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__Pyx_INCREF(__pyx_v_memory_ratio);
__Pyx_INCREF(__pyx_v_n);
__Pyx_INCREF(__pyx_v_key);
__Pyx_INCREF(__pyx_v_target);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.workers_to_close", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_v_limit_bytes);
__Pyx_XDECREF(__pyx_v_limit);
__Pyx_XDECREF(__pyx_v_total);
__Pyx_XDECREF(__pyx_v__key);
__Pyx_XDECREF(__pyx_v_idle);
__Pyx_XDECREF(__pyx_v_to_close);
__Pyx_XDECREF(__pyx_v_n_remain);
__Pyx_XDECREF(__pyx_v_group);
__Pyx_XDECREF(__pyx_v_result);
__Pyx_XDECREF((PyObject *)__pyx_9genexpr91__pyx_v_ws);
__Pyx_XDECREF(__pyx_9genexpr92__pyx_v_k);
__Pyx_XDECREF(__pyx_9genexpr92__pyx_v_v);
__Pyx_XDECREF((PyObject *)__pyx_9genexpr93__pyx_v_ws);
__Pyx_XDECREF(__pyx_9genexpr94__pyx_v_k);
__Pyx_XDECREF(__pyx_9genexpr94__pyx_v_v);
__Pyx_XDECREF((PyObject *)__pyx_9genexpr95__pyx_v_ws);
__Pyx_XDECREF((PyObject *)__pyx_9genexpr97__pyx_v_ws);
__Pyx_XDECREF(__pyx_9genexpr98__pyx_v_g);
__Pyx_XDECREF((PyObject *)__pyx_9genexpr98__pyx_v_ws);
__Pyx_XDECREF(__pyx_v_memory_ratio);
__Pyx_XDECREF(__pyx_v_n);
__Pyx_XDECREF(__pyx_v_key);
__Pyx_XDECREF(__pyx_v_target);
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_131generator16(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__292 = PyTuple_Pack(32, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_memory_ratio, __pyx_n_s_n, __pyx_n_s_key, __pyx_n_s_minimum, __pyx_n_s_target, __pyx_n_s_attribute, __pyx_n_s_parent, __pyx_n_s_ws, __pyx_n_s_groups, __pyx_n_s_limit_bytes, __pyx_n_s_group_bytes, __pyx_n_s_limit, __pyx_n_s_total, __pyx_n_s_key_2, __pyx_n_s_key_2, __pyx_n_s_idle, __pyx_n_s_to_close, __pyx_n_s_n_remain, __pyx_n_s_group, __pyx_n_s_result, __pyx_n_s_ws, __pyx_n_s_k, __pyx_n_s_v, __pyx_n_s_ws, __pyx_n_s_k, __pyx_n_s_v, __pyx_n_s_ws, __pyx_n_s_ws, __pyx_n_s_g, __pyx_n_s_ws); if (unlikely(!__pyx_tuple__292)) __PYX_ERR(0, 5262, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__292);
__Pyx_GIVEREF(__pyx_tuple__292);
__pyx_codeobj__293 = (PyObject*)__Pyx_PyCode_New(8, 0, 32, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__292, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_workers_to_close, 5262, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__293)) __PYX_ERR(0, 5262, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_128workers_to_close, 0, __pyx_n_s_Scheduler_workers_to_close, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__293)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5262, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__294);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_workers_to_close, __pyx_t_12) < 0) __PYX_ERR(0, 5262, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__294 = PyTuple_Pack(7, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject*)__pyx_n_u_address)); if (unlikely(!__pyx_tuple__294)) __PYX_ERR(0, 5262, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__294);
__Pyx_GIVEREF(__pyx_tuple__294);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_42_workers_to_close {
PyObject_HEAD
PyObject *__pyx_v_group_bytes;
PyObject *__pyx_v_groups;
};
5263: self,
+5264: comm=None,
values[1] = ((PyObject *)((PyObject *)Py_None));
+5265: memory_ratio=None,
values[2] = ((PyObject *)((PyObject *)Py_None));
+5266: n=None,
values[3] = ((PyObject *)((PyObject *)Py_None));
+5267: key=None,
values[4] = ((PyObject *)((PyObject *)Py_None));
+5268: minimum=None,
values[5] = ((PyObject *)((PyObject *)Py_None));
+5269: target=None,
values[6] = ((PyObject *)((PyObject *)Py_None));
values[7] = ((PyObject *)((PyObject*)__pyx_n_u_address));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_memory_ratio);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_minimum);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_target);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attribute);
if (value) { values[7] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "workers_to_close") < 0)) __PYX_ERR(0, 5262, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_memory_ratio = values[2];
__pyx_v_n = values[3];
__pyx_v_key = values[4];
__pyx_v_minimum = values[5];
__pyx_v_target = values[6];
__pyx_v_attribute = values[7];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("workers_to_close", 0, 1, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5262, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.workers_to_close", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_127workers_to_close(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_memory_ratio, __pyx_v_n, __pyx_v_key, __pyx_v_minimum, __pyx_v_target, __pyx_v_attribute);
5270: attribute="address",
5271: ):
5272: """
5273: Find workers that we can close with low cost
5274:
5275: This returns a list of workers that are good candidates to retire.
5276: These workers are not running anything and are storing
5277: relatively little data relative to their peers. If all workers are
5278: idle then we still maintain enough workers to have enough RAM to store
5279: our data, with a comfortable buffer.
5280:
5281: This is for use with systems like ``distributed.deploy.adaptive``.
5282:
5283: Parameters
5284: ----------
5285: memory_factor : Number
5286: Amount of extra space we want to have for our stored data.
5287: Defaults two 2, or that we want to have twice as much memory as we
5288: currently have data.
5289: n : int
5290: Number of workers to close
5291: minimum : int
5292: Minimum number of workers to keep around
5293: key : Callable(WorkerState)
5294: An optional callable mapping a WorkerState object to a group
5295: affiliation. Groups will be closed together. This is useful when
5296: closing workers must be done collectively, such as by hostname.
5297: target : int
5298: Target number of workers to have after we close
5299: attribute : str
5300: The attribute of the WorkerState object to return, like "address"
5301: or "name". Defaults to "address".
5302:
5303: Examples
5304: --------
5305: >>> scheduler.workers_to_close()
5306: ['tcp://192.168.0.1:1234', 'tcp://192.168.0.2:1234']
5307:
5308: Group workers by hostname prior to closing
5309:
5310: >>> scheduler.workers_to_close(key=lambda ws: ws.host)
5311: ['tcp://192.168.0.1:1234', 'tcp://192.168.0.1:4567']
5312:
5313: Remove two workers
5314:
5315: >>> scheduler.workers_to_close(n=2)
5316:
5317: Keep enough workers to have twice as much memory as we we need.
5318:
5319: >>> scheduler.workers_to_close(memory_ratio=2)
5320:
5321: Returns
5322: -------
5323: to_close: list of worker addresses that are OK to close
5324:
5325: See Also
5326: --------
5327: Scheduler.retire_workers
5328: """
+5329: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+5330: if target is not None and n is None:
__pyx_t_3 = (__pyx_v_target != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_4 = (__pyx_v_n == Py_None);
__pyx_t_3 = (__pyx_t_4 != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L4_bool_binop_done:;
if (__pyx_t_2) {
/* … */
}
+5331: n = len(parent._workers_dv) - target
__pyx_t_1 = __pyx_v_parent->_workers_dv;
__Pyx_INCREF(__pyx_t_1);
if (unlikely(__pyx_t_1 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 5331, __pyx_L1_error)
}
__pyx_t_5 = PyDict_Size(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5331, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5331, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = PyNumber_Subtract(__pyx_t_1, __pyx_v_target); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5331, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_n, __pyx_t_6);
__pyx_t_6 = 0;
+5332: if n is not None:
__pyx_t_2 = (__pyx_v_n != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
}
+5333: if n < 0:
__pyx_t_6 = PyObject_RichCompare(__pyx_v_n, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5333, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5333, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_3) { /* … */ }
+5334: n = 0
__Pyx_INCREF(__pyx_int_0); __Pyx_DECREF_SET(__pyx_v_n, __pyx_int_0);
+5335: target = len(parent._workers_dv) - n
__pyx_t_6 = __pyx_v_parent->_workers_dv;
__Pyx_INCREF(__pyx_t_6);
if (unlikely(__pyx_t_6 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 5335, __pyx_L1_error)
}
__pyx_t_5 = PyDict_Size(__pyx_t_6); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5335, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5335, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = PyNumber_Subtract(__pyx_t_6, __pyx_v_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5335, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF_SET(__pyx_v_target, __pyx_t_1);
__pyx_t_1 = 0;
5336:
+5337: if n is None and memory_ratio is None:
__pyx_t_2 = (__pyx_v_n == Py_None);
__pyx_t_4 = (__pyx_t_2 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_3 = __pyx_t_4;
goto __pyx_L9_bool_binop_done;
}
__pyx_t_4 = (__pyx_v_memory_ratio == Py_None);
__pyx_t_2 = (__pyx_t_4 != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L9_bool_binop_done:;
if (__pyx_t_3) {
/* … */
}
+5338: memory_ratio = 2
__Pyx_INCREF(__pyx_int_2); __Pyx_DECREF_SET(__pyx_v_memory_ratio, __pyx_int_2);
5339:
5340: ws: WorkerState
+5341: with log_errors():
/*with:*/ {
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_log_errors); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
__pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
if (likely(__pyx_t_7)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
__Pyx_INCREF(__pyx_t_7);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_6, function);
}
}
__pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_8 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5341, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_9 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
__pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7);
if (likely(__pyx_t_9)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
__Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_7, function);
}
}
__pyx_t_6 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5341, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/*try:*/ {
{
/*try:*/ {
/* … */
}
__pyx_L15_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.workers_to_close", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_16, &__pyx_t_7, &__pyx_t_1) < 0) __PYX_ERR(0, 5341, __pyx_L17_except_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_GOTREF(__pyx_t_7);
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = PyTuple_Pack(3, __pyx_t_16, __pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5341, __pyx_L17_except_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_20 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5341, __pyx_L17_except_error)
__Pyx_GOTREF(__pyx_t_20);
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_20);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
if (__pyx_t_4 < 0) __PYX_ERR(0, 5341, __pyx_L17_except_error)
__pyx_t_3 = ((!(__pyx_t_4 != 0)) != 0);
if (__pyx_t_3) {
__Pyx_GIVEREF(__pyx_t_16);
__Pyx_GIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_ErrRestoreWithState(__pyx_t_16, __pyx_t_7, __pyx_t_1);
__pyx_t_16 = 0; __pyx_t_7 = 0; __pyx_t_1 = 0;
__PYX_ERR(0, 5341, __pyx_L17_except_error)
}
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L16_exception_handled;
}
__pyx_L17_except_error:;
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
goto __pyx_L1_error;
__pyx_L19_try_return:;
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
goto __pyx_L12_return;
__pyx_L16_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_8) {
__pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
}
goto __pyx_L14;
}
__pyx_L12_return: {
__pyx_t_12 = __pyx_r;
__pyx_r = 0;
if (__pyx_t_8) {
__pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
}
__pyx_r = __pyx_t_12;
__pyx_t_12 = 0;
goto __pyx_L0;
}
__pyx_L14:;
}
goto __pyx_L89;
__pyx_L11_error:;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
goto __pyx_L1_error;
__pyx_L89:;
}
+5342: if not n and all([ws._processing for ws in parent._workers_dv.values()]):
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_n); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5342, __pyx_L15_error) __pyx_t_4 = ((!__pyx_t_2) != 0); if (__pyx_t_4) { } else { __pyx_t_3 = __pyx_t_4; goto __pyx_L22_bool_binop_done; } { /* enter inner scope */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5342, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = 0; if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values"); __PYX_ERR(0, 5342, __pyx_L26_error) } __pyx_t_7 = __Pyx_dict_iterator(__pyx_v_parent->_workers_dv, 1, __pyx_n_s_values, (&__pyx_t_13), (&__pyx_t_14)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5342, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = __pyx_t_7; __pyx_t_7 = 0; while (1) { __pyx_t_15 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_13, &__pyx_t_5, NULL, &__pyx_t_7, NULL, __pyx_t_14); if (unlikely(__pyx_t_15 == 0)) break; if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 5342, __pyx_L26_error) __Pyx_GOTREF(__pyx_t_7); if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5342, __pyx_L26_error) __Pyx_XDECREF_SET(__pyx_9genexpr91__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_7)); __pyx_t_7 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_9genexpr91__pyx_v_ws->_processing))) __PYX_ERR(0, 5342, __pyx_L26_error) } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF((PyObject *)__pyx_9genexpr91__pyx_v_ws); __pyx_9genexpr91__pyx_v_ws = 0; goto __pyx_L29_exit_scope; __pyx_L26_error:; __Pyx_XDECREF((PyObject *)__pyx_9genexpr91__pyx_v_ws); __pyx_9genexpr91__pyx_v_ws = 0; goto __pyx_L15_error; __pyx_L29_exit_scope:; } /* exit inner scope */ __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5342, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 5342, __pyx_L15_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_3 = __pyx_t_4; __pyx_L22_bool_binop_done:; if (__pyx_t_3) { /* … */ }
+5343: return []
__Pyx_XDECREF(__pyx_r); __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5343, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_6); __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L19_try_return;
5344:
+5345: if key is None:
__pyx_t_3 = (__pyx_v_key == Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
/* … */
}
+5346: key = operator.attrgetter("address")
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_operator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5346, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_attrgetter); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5346, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_6 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_1, __pyx_n_u_address) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_n_u_address); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5346, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_6); __pyx_t_6 = 0;
+5347: if isinstance(key, bytes) and dask.config.get(
__pyx_t_3 = PyBytes_Check(__pyx_v_key); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { } else { __pyx_t_4 = __pyx_t_2; goto __pyx_L32_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_dask); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5347, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_config); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5347, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_get); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5347, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_6 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_1, __pyx_kp_u_distributed_scheduler_pickle) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_kp_u_distributed_scheduler_pickle); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5347, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5347, __pyx_L15_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_4 = __pyx_t_2; __pyx_L32_bool_binop_done:; if (__pyx_t_4) { /* … */ }
5348: "distributed.scheduler.pickle"
5349: ):
+5350: key = pickle.loads(key)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_pickle); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5350, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_loads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5350, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_7, __pyx_v_key) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_key); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5350, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_6); __pyx_t_6 = 0;
5351:
+5352: groups = groupby(key, parent._workers.values())
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_groupby); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5352, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent->_workers, __pyx_n_s_values); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5352, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_7 = (__pyx_t_16) ? __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_16) : __Pyx_PyObject_CallNoArg(__pyx_t_9); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5352, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; __pyx_t_14 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_14 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_key, __pyx_t_7}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5352, __pyx_L15_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_key, __pyx_t_7}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5352, __pyx_L15_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_16 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5352, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_16); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_14, __pyx_v_key); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_14, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_16, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5352, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_groups = __pyx_t_6; __pyx_t_6 = 0;
5353:
+5354: limit_bytes = {
{ /* enter inner scope */
__pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5354, __pyx_L36_error)
__Pyx_GOTREF(__pyx_t_6);
+5355: k: sum([ws._memory_limit for ws in v]) for k, v in groups.items()
__pyx_t_13 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_groups == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 5355, __pyx_L36_error)
}
__pyx_t_16 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_groups, 0, __pyx_n_s_items, (&__pyx_t_5), (&__pyx_t_14)); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5355, __pyx_L36_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_16;
__pyx_t_16 = 0;
while (1) {
__pyx_t_15 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_5, &__pyx_t_13, &__pyx_t_16, &__pyx_t_7, NULL, __pyx_t_14);
if (unlikely(__pyx_t_15 == 0)) break;
if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 5355, __pyx_L36_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_GOTREF(__pyx_t_7);
__Pyx_XDECREF_SET(__pyx_9genexpr92__pyx_v_k, __pyx_t_16);
__pyx_t_16 = 0;
__Pyx_XDECREF_SET(__pyx_9genexpr92__pyx_v_v, __pyx_t_7);
__pyx_t_7 = 0;
{ /* enter inner scope */
__pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5355, __pyx_L41_error)
__Pyx_GOTREF(__pyx_t_7);
if (likely(PyList_CheckExact(__pyx_9genexpr92__pyx_v_v)) || PyTuple_CheckExact(__pyx_9genexpr92__pyx_v_v)) {
__pyx_t_16 = __pyx_9genexpr92__pyx_v_v; __Pyx_INCREF(__pyx_t_16); __pyx_t_17 = 0;
__pyx_t_18 = NULL;
} else {
__pyx_t_17 = -1; __pyx_t_16 = PyObject_GetIter(__pyx_9genexpr92__pyx_v_v); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5355, __pyx_L41_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_18 = Py_TYPE(__pyx_t_16)->tp_iternext; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5355, __pyx_L41_error)
}
for (;;) {
if (likely(!__pyx_t_18)) {
if (likely(PyList_CheckExact(__pyx_t_16))) {
if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_16)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_17); __Pyx_INCREF(__pyx_t_9); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5355, __pyx_L41_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_16, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5355, __pyx_L41_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
} else {
if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_16)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_16, __pyx_t_17); __Pyx_INCREF(__pyx_t_9); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5355, __pyx_L41_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_16, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5355, __pyx_L41_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
}
} else {
__pyx_t_9 = __pyx_t_18(__pyx_t_16);
if (unlikely(!__pyx_t_9)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5355, __pyx_L41_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_9);
}
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5355, __pyx_L41_error)
__Pyx_XDECREF_SET(__pyx_9genexpr93__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_9));
__pyx_t_9 = 0;
__pyx_t_9 = PyInt_FromSsize_t(__pyx_9genexpr93__pyx_v_ws->_memory_limit); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5355, __pyx_L41_error)
__Pyx_GOTREF(__pyx_t_9);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 5355, __pyx_L41_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr93__pyx_v_ws); __pyx_9genexpr93__pyx_v_ws = 0;
goto __pyx_L44_exit_scope;
__pyx_L41_error:;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr93__pyx_v_ws); __pyx_9genexpr93__pyx_v_ws = 0;
goto __pyx_L36_error;
__pyx_L44_exit_scope:;
} /* exit inner scope */
__pyx_t_16 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_7); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5355, __pyx_L36_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(PyDict_SetItem(__pyx_t_6, (PyObject*)__pyx_9genexpr92__pyx_v_k, (PyObject*)__pyx_t_16))) __PYX_ERR(0, 5355, __pyx_L36_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_9genexpr92__pyx_v_k); __pyx_9genexpr92__pyx_v_k = 0;
__Pyx_XDECREF(__pyx_9genexpr92__pyx_v_v); __pyx_9genexpr92__pyx_v_v = 0;
goto __pyx_L45_exit_scope;
__pyx_L36_error:;
__Pyx_XDECREF(__pyx_9genexpr92__pyx_v_k); __pyx_9genexpr92__pyx_v_k = 0;
__Pyx_XDECREF(__pyx_9genexpr92__pyx_v_v); __pyx_9genexpr92__pyx_v_v = 0;
goto __pyx_L15_error;
__pyx_L45_exit_scope:;
} /* exit inner scope */
__pyx_v_limit_bytes = ((PyObject*)__pyx_t_6);
__pyx_t_6 = 0;
5356: }
+5357: group_bytes = {k: sum([ws._nbytes for ws in v]) for k, v in groups.items()}
{ /* enter inner scope */
__pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5357, __pyx_L48_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_groups == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 5357, __pyx_L48_error)
}
__pyx_t_16 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_groups, 0, __pyx_n_s_items, (&__pyx_t_13), (&__pyx_t_14)); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5357, __pyx_L48_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_16;
__pyx_t_16 = 0;
while (1) {
__pyx_t_15 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_13, &__pyx_t_5, &__pyx_t_16, &__pyx_t_7, NULL, __pyx_t_14);
if (unlikely(__pyx_t_15 == 0)) break;
if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 5357, __pyx_L48_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_GOTREF(__pyx_t_7);
__Pyx_XDECREF_SET(__pyx_9genexpr94__pyx_v_k, __pyx_t_16);
__pyx_t_16 = 0;
__Pyx_XDECREF_SET(__pyx_9genexpr94__pyx_v_v, __pyx_t_7);
__pyx_t_7 = 0;
{ /* enter inner scope */
__pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5357, __pyx_L53_error)
__Pyx_GOTREF(__pyx_t_7);
if (likely(PyList_CheckExact(__pyx_9genexpr94__pyx_v_v)) || PyTuple_CheckExact(__pyx_9genexpr94__pyx_v_v)) {
__pyx_t_16 = __pyx_9genexpr94__pyx_v_v; __Pyx_INCREF(__pyx_t_16); __pyx_t_17 = 0;
__pyx_t_18 = NULL;
} else {
__pyx_t_17 = -1; __pyx_t_16 = PyObject_GetIter(__pyx_9genexpr94__pyx_v_v); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5357, __pyx_L53_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_18 = Py_TYPE(__pyx_t_16)->tp_iternext; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5357, __pyx_L53_error)
}
for (;;) {
if (likely(!__pyx_t_18)) {
if (likely(PyList_CheckExact(__pyx_t_16))) {
if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_16)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_17); __Pyx_INCREF(__pyx_t_9); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5357, __pyx_L53_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_16, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5357, __pyx_L53_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
} else {
if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_16)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_16, __pyx_t_17); __Pyx_INCREF(__pyx_t_9); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5357, __pyx_L53_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_16, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5357, __pyx_L53_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
}
} else {
__pyx_t_9 = __pyx_t_18(__pyx_t_16);
if (unlikely(!__pyx_t_9)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5357, __pyx_L53_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_9);
}
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5357, __pyx_L53_error)
__Pyx_XDECREF_SET(__pyx_9genexpr95__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_9));
__pyx_t_9 = 0;
__pyx_t_9 = PyInt_FromSsize_t(__pyx_9genexpr95__pyx_v_ws->_nbytes); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5357, __pyx_L53_error)
__Pyx_GOTREF(__pyx_t_9);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 5357, __pyx_L53_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr95__pyx_v_ws); __pyx_9genexpr95__pyx_v_ws = 0;
goto __pyx_L56_exit_scope;
__pyx_L53_error:;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr95__pyx_v_ws); __pyx_9genexpr95__pyx_v_ws = 0;
goto __pyx_L48_error;
__pyx_L56_exit_scope:;
} /* exit inner scope */
__pyx_t_16 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_7); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5357, __pyx_L48_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(PyDict_SetItem(__pyx_t_6, (PyObject*)__pyx_9genexpr94__pyx_v_k, (PyObject*)__pyx_t_16))) __PYX_ERR(0, 5357, __pyx_L48_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_9genexpr94__pyx_v_k); __pyx_9genexpr94__pyx_v_k = 0;
__Pyx_XDECREF(__pyx_9genexpr94__pyx_v_v); __pyx_9genexpr94__pyx_v_v = 0;
goto __pyx_L57_exit_scope;
__pyx_L48_error:;
__Pyx_XDECREF(__pyx_9genexpr94__pyx_v_k); __pyx_9genexpr94__pyx_v_k = 0;
__Pyx_XDECREF(__pyx_9genexpr94__pyx_v_v); __pyx_9genexpr94__pyx_v_v = 0;
goto __pyx_L15_error;
__pyx_L57_exit_scope:;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_6);
__pyx_cur_scope->__pyx_v_group_bytes = ((PyObject*)__pyx_t_6);
__pyx_t_6 = 0;
5358:
+5359: limit = sum(limit_bytes.values())
__pyx_t_6 = __Pyx_PyDict_Values(__pyx_v_limit_bytes); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5359, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5359, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_limit = __pyx_t_1; __pyx_t_1 = 0;
+5360: total = sum(group_bytes.values())
__pyx_t_1 = __Pyx_PyDict_Values(__pyx_cur_scope->__pyx_v_group_bytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5360, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5360, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_total = __pyx_t_6; __pyx_t_6 = 0;
5361:
+5362: def _key(group):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_16workers_to_close_1_key(PyObject *__pyx_self, PyObject *__pyx_v_group); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_16workers_to_close_1_key = {"_key", (PyCFunction)__pyx_pw_11distributed_9scheduler_9Scheduler_16workers_to_close_1_key, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_16workers_to_close_1_key(PyObject *__pyx_self, PyObject *__pyx_v_group) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_key (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_16workers_to_close__key(__pyx_self, ((PyObject *)__pyx_v_group));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_16workers_to_close__key(PyObject *__pyx_self, PyObject *__pyx_v_group) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_42_workers_to_close *__pyx_cur_scope;
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_42_workers_to_close *__pyx_outer_scope;
int __pyx_v_is_idle;
PyObject *__pyx_v_bytes = NULL;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_9genexpr96__pyx_v_wws = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_key", 0);
__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_42_workers_to_close *) __Pyx_CyFunction_GetClosure(__pyx_self);
__pyx_cur_scope = __pyx_outer_scope;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.workers_to_close._key", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_bytes);
__Pyx_XDECREF((PyObject *)__pyx_9genexpr96__pyx_v_wws);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__78 = PyTuple_Pack(5, __pyx_n_s_group, __pyx_n_s_wws, __pyx_n_s_is_idle, __pyx_n_s_bytes, __pyx_n_s_wws); if (unlikely(!__pyx_tuple__78)) __PYX_ERR(0, 5362, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__78);
__Pyx_GIVEREF(__pyx_tuple__78);
/* … */
__pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_16workers_to_close_1_key, 0, __pyx_n_s_Scheduler_workers_to_close_local, ((PyObject*)__pyx_cur_scope), __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__79)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5362, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v__key = __pyx_t_6;
__pyx_t_6 = 0;
__pyx_codeobj__79 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__78, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_key_2, 5362, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__79)) __PYX_ERR(0, 5362, __pyx_L1_error)
5363: wws: WorkerState
+5364: is_idle = not any([wws._processing for wws in groups[group]])
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5364, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(!__pyx_cur_scope->__pyx_v_groups)) { __Pyx_RaiseClosureNameError("groups"); __PYX_ERR(0, 5364, __pyx_L5_error) }
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_groups, __pyx_v_group); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5364, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_2);
if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
__pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
__pyx_t_5 = NULL;
} else {
__pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5364, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5364, __pyx_L5_error)
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
for (;;) {
if (likely(!__pyx_t_5)) {
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5364, __pyx_L5_error)
#else
__pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5364, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
} else {
if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5364, __pyx_L5_error)
#else
__pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5364, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
}
} else {
__pyx_t_2 = __pyx_t_5(__pyx_t_3);
if (unlikely(!__pyx_t_2)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5364, __pyx_L5_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_2);
}
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5364, __pyx_L5_error)
__Pyx_XDECREF_SET(__pyx_9genexpr96__pyx_v_wws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_2));
__pyx_t_2 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_9genexpr96__pyx_v_wws->_processing))) __PYX_ERR(0, 5364, __pyx_L5_error)
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr96__pyx_v_wws); __pyx_9genexpr96__pyx_v_wws = 0;
goto __pyx_L8_exit_scope;
__pyx_L5_error:;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr96__pyx_v_wws); __pyx_9genexpr96__pyx_v_wws = 0;
goto __pyx_L1_error;
__pyx_L8_exit_scope:;
} /* exit inner scope */
__pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_any, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5364, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 5364, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_is_idle = (!__pyx_t_6);
+5365: bytes = -group_bytes[group]
if (unlikely(!__pyx_cur_scope->__pyx_v_group_bytes)) { __Pyx_RaiseClosureNameError("group_bytes"); __PYX_ERR(0, 5365, __pyx_L1_error) }
if (unlikely(__pyx_cur_scope->__pyx_v_group_bytes == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5365, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_group_bytes, __pyx_v_group); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5365, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = PyNumber_Negative(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5365, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_bytes = __pyx_t_1;
__pyx_t_1 = 0;
+5366: return (is_idle, bytes)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_is_idle); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_v_bytes); __Pyx_GIVEREF(__pyx_v_bytes); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_bytes); __pyx_t_1 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
5367:
+5368: idle = sorted(groups, key=_key)
__pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5368, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_groups); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_groups); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_cur_scope->__pyx_v_groups); __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5368, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_key, __pyx_v__key) < 0) __PYX_ERR(0, 5368, __pyx_L15_error) __pyx_t_16 = __Pyx_PyObject_Call(__pyx_builtin_sorted, __pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5368, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_idle = __pyx_t_16; __pyx_t_16 = 0;
5369:
+5370: to_close = []
__pyx_t_16 = PyList_New(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5370, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_16); __pyx_v_to_close = ((PyObject*)__pyx_t_16); __pyx_t_16 = 0;
+5371: n_remain = len(parent._workers_dv)
__pyx_t_16 = __pyx_v_parent->_workers_dv;
__Pyx_INCREF(__pyx_t_16);
if (unlikely(__pyx_t_16 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 5371, __pyx_L15_error)
}
__pyx_t_13 = PyDict_Size(__pyx_t_16); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5371, __pyx_L15_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = PyInt_FromSsize_t(__pyx_t_13); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5371, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_v_n_remain = __pyx_t_16;
__pyx_t_16 = 0;
5372:
+5373: while idle:
while (1) {
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_idle); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 5373, __pyx_L15_error)
if (!__pyx_t_4) break;
+5374: group = idle.pop()
__pyx_t_16 = __Pyx_PyObject_Pop(__pyx_v_idle); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5374, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_XDECREF_SET(__pyx_v_group, __pyx_t_16); __pyx_t_16 = 0;
+5375: if n is None and any([ws._processing for ws in groups[group]]):
__pyx_t_2 = (__pyx_v_n == Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
} else {
__pyx_t_4 = __pyx_t_3;
goto __pyx_L61_bool_binop_done;
}
{ /* enter inner scope */
__pyx_t_16 = PyList_New(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5375, __pyx_L65_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_groups, __pyx_v_group); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5375, __pyx_L65_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
__pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6); __pyx_t_13 = 0;
__pyx_t_18 = NULL;
} else {
__pyx_t_13 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5375, __pyx_L65_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_18 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5375, __pyx_L65_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
for (;;) {
if (likely(!__pyx_t_18)) {
if (likely(PyList_CheckExact(__pyx_t_6))) {
if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 5375, __pyx_L65_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5375, __pyx_L65_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
} else {
if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 5375, __pyx_L65_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5375, __pyx_L65_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
}
} else {
__pyx_t_1 = __pyx_t_18(__pyx_t_6);
if (unlikely(!__pyx_t_1)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5375, __pyx_L65_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_1);
}
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5375, __pyx_L65_error)
__Pyx_XDECREF_SET(__pyx_9genexpr97__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1));
__pyx_t_1 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_16, (PyObject*)__pyx_9genexpr97__pyx_v_ws->_processing))) __PYX_ERR(0, 5375, __pyx_L65_error)
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr97__pyx_v_ws); __pyx_9genexpr97__pyx_v_ws = 0;
goto __pyx_L68_exit_scope;
__pyx_L65_error:;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr97__pyx_v_ws); __pyx_9genexpr97__pyx_v_ws = 0;
goto __pyx_L15_error;
__pyx_L68_exit_scope:;
} /* exit inner scope */
__pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_any, __pyx_t_16); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5375, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5375, __pyx_L15_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_4 = __pyx_t_3;
__pyx_L61_bool_binop_done:;
if (__pyx_t_4) {
/* … */
}
+5376: break
goto __pyx_L59_break;
5377:
+5378: if minimum and n_remain - len(groups[group]) < minimum:
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_minimum); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5378, __pyx_L15_error) if (__pyx_t_3) { } else { __pyx_t_4 = __pyx_t_3; goto __pyx_L70_bool_binop_done; } __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_groups, __pyx_v_group); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5378, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_13 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5378, __pyx_L15_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_13); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5378, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_16 = PyNumber_Subtract(__pyx_v_n_remain, __pyx_t_6); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5378, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyObject_RichCompare(__pyx_t_16, __pyx_v_minimum, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5378, __pyx_L15_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5378, __pyx_L15_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_4 = __pyx_t_3; __pyx_L70_bool_binop_done:; if (__pyx_t_4) { /* … */ }
+5379: break
goto __pyx_L59_break;
5380:
+5381: limit -= limit_bytes[group]
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_limit_bytes, __pyx_v_group); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5381, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_16 = PyNumber_InPlaceSubtract(__pyx_v_limit, __pyx_t_6); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5381, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF_SET(__pyx_v_limit, __pyx_t_16); __pyx_t_16 = 0;
5382:
+5383: if (n is not None and n_remain - len(groups[group]) >= target) or (
__pyx_t_3 = (__pyx_v_n != Py_None);
__pyx_t_2 = (__pyx_t_3 != 0);
if (!__pyx_t_2) {
goto __pyx_L74_next_or;
} else {
}
__pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_groups, __pyx_v_group); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5383, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_13 = PyObject_Length(__pyx_t_16); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5383, __pyx_L15_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = PyInt_FromSsize_t(__pyx_t_13); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5383, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_6 = PyNumber_Subtract(__pyx_v_n_remain, __pyx_t_16); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5383, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = PyObject_RichCompare(__pyx_t_6, __pyx_v_target, Py_GE); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5383, __pyx_L15_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5383, __pyx_L15_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (!__pyx_t_2) {
} else {
__pyx_t_4 = __pyx_t_2;
goto __pyx_L73_bool_binop_done;
}
__pyx_L74_next_or:;
/* … */
if (__pyx_t_4) {
/* … */
goto __pyx_L72;
}
+5384: memory_ratio is not None and limit >= memory_ratio * total
__pyx_t_2 = (__pyx_v_memory_ratio != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
} else {
__pyx_t_4 = __pyx_t_3;
goto __pyx_L73_bool_binop_done;
}
__pyx_t_16 = PyNumber_Multiply(__pyx_v_memory_ratio, __pyx_v_total); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5384, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_6 = PyObject_RichCompare(__pyx_v_limit, __pyx_t_16, Py_GE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5384, __pyx_L15_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5384, __pyx_L15_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_4 = __pyx_t_3;
__pyx_L73_bool_binop_done:;
5385: ):
+5386: to_close.append(group)
__pyx_t_19 = __Pyx_PyList_Append(__pyx_v_to_close, __pyx_v_group); if (unlikely(__pyx_t_19 == ((int)-1))) __PYX_ERR(0, 5386, __pyx_L15_error)
+5387: n_remain -= len(groups[group])
__pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_groups, __pyx_v_group); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5387, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_13 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5387, __pyx_L15_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_13); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5387, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_16 = PyNumber_InPlaceSubtract(__pyx_v_n_remain, __pyx_t_6); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5387, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF_SET(__pyx_v_n_remain, __pyx_t_16); __pyx_t_16 = 0;
5388:
5389: else:
+5390: break
/*else*/ {
goto __pyx_L59_break;
}
__pyx_L72:;
}
__pyx_L59_break:;
5391:
+5392: result = [getattr(ws, attribute) for g in to_close for ws in groups[g]]
{ /* enter inner scope */
__pyx_t_16 = PyList_New(0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5392, __pyx_L79_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_6 = __pyx_v_to_close; __Pyx_INCREF(__pyx_t_6); __pyx_t_13 = 0;
for (;;) {
if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 5392, __pyx_L79_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5392, __pyx_L79_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
__Pyx_XDECREF_SET(__pyx_9genexpr98__pyx_v_g, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_groups, __pyx_9genexpr98__pyx_v_g); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5392, __pyx_L79_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
__pyx_t_7 = __pyx_t_1; __Pyx_INCREF(__pyx_t_7); __pyx_t_5 = 0;
__pyx_t_18 = NULL;
} else {
__pyx_t_5 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5392, __pyx_L79_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_18 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5392, __pyx_L79_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
for (;;) {
if (likely(!__pyx_t_18)) {
if (likely(PyList_CheckExact(__pyx_t_7))) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_7)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5392, __pyx_L79_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5392, __pyx_L79_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
} else {
if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5392, __pyx_L79_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_7, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5392, __pyx_L79_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
}
} else {
__pyx_t_1 = __pyx_t_18(__pyx_t_7);
if (unlikely(!__pyx_t_1)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5392, __pyx_L79_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_1);
}
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5392, __pyx_L79_error)
__Pyx_XDECREF_SET(__pyx_9genexpr98__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1));
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_GetAttr(((PyObject *)__pyx_9genexpr98__pyx_v_ws), __pyx_v_attribute); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5392, __pyx_L79_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_16, (PyObject*)__pyx_t_1))) __PYX_ERR(0, 5392, __pyx_L79_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_9genexpr98__pyx_v_g); __pyx_9genexpr98__pyx_v_g = 0;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr98__pyx_v_ws); __pyx_9genexpr98__pyx_v_ws = 0;
goto __pyx_L84_exit_scope;
__pyx_L79_error:;
__Pyx_XDECREF(__pyx_9genexpr98__pyx_v_g); __pyx_9genexpr98__pyx_v_g = 0;
__Pyx_XDECREF((PyObject *)__pyx_9genexpr98__pyx_v_ws); __pyx_9genexpr98__pyx_v_ws = 0;
goto __pyx_L15_error;
__pyx_L84_exit_scope:;
} /* exit inner scope */
__pyx_v_result = ((PyObject*)__pyx_t_16);
__pyx_t_16 = 0;
+5393: if result:
__pyx_t_4 = (PyList_GET_SIZE(__pyx_v_result) != 0);
if (__pyx_t_4) {
/* … */
}
+5394: logger.debug("Suggest closing workers: %s", result)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_logger); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5394, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_debug); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5394, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; __pyx_t_14 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_14 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_kp_u_Suggest_closing_workers_s, __pyx_v_result}; __pyx_t_16 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5394, __pyx_L15_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_16); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_kp_u_Suggest_closing_workers_s, __pyx_v_result}; __pyx_t_16 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5394, __pyx_L15_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_16); } else #endif { __pyx_t_1 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5394, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_kp_u_Suggest_closing_workers_s); __Pyx_GIVEREF(__pyx_kp_u_Suggest_closing_workers_s); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_14, __pyx_kp_u_Suggest_closing_workers_s); __Pyx_INCREF(__pyx_v_result); __Pyx_GIVEREF(__pyx_v_result); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_14, __pyx_v_result); __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5394, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
5395:
+5396: return result
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_result); __pyx_r = __pyx_v_result; goto __pyx_L19_try_return;
5397:
+5398: async def retire_workers(
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_130retire_workers(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_129retire_workers[] = "Gracefully retire workers from cluster\n\n Parameters\n ----------\n workers: list (optional)\n List of worker addresses to retire.\n If not provided we call ``workers_to_close`` which finds a good set\n workers_names: list (optional)\n List of worker names to retire.\n remove: bool (defaults to True)\n Whether or not to remove the worker metadata immediately or else\n wait for the worker to contact us\n close_workers: bool (defaults to False)\n Whether or not to actually close the worker explicitly from here.\n Otherwise we expect some external job scheduler to finish off the\n worker.\n **kwargs: dict\n Extra options to pass to workers_to_close to determine which\n workers we should drop\n\n Returns\n -------\n Dictionary mapping worker ID/address to dictionary of information about\n that worker for each retired worker.\n\n See Also\n --------\n Scheduler.workers_to_close\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_130retire_workers = {"retire_workers", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_130retire_workers, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_129retire_workers};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_130retire_workers(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_workers = 0;
PyObject *__pyx_v_remove = 0;
PyObject *__pyx_v_close_workers = 0;
PyObject *__pyx_v_names = 0;
PyObject *__pyx_v_lock = 0;
PyObject *__pyx_v_kwargs = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("retire_workers (wrapper)", 0);
__pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
__Pyx_GOTREF(__pyx_v_kwargs);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_workers,&__pyx_n_s_remove,&__pyx_n_s_close_workers,&__pyx_n_s_names,&__pyx_n_s_lock_2,0};
PyObject* values[7] = {0,0,0,0,0,0,0};
/* … */
/* function exit code */
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_129retire_workers(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_workers, PyObject *__pyx_v_remove, PyObject *__pyx_v_close_workers, PyObject *__pyx_v_names, PyObject *__pyx_v_lock, PyObject *__pyx_v_kwargs) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_43_retire_workers *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("retire_workers", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_43_retire_workers *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_43_retire_workers(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_43_retire_workers, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_43_retire_workers *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 5398, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_comm = __pyx_v_comm;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm);
__pyx_cur_scope->__pyx_v_workers = __pyx_v_workers;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_workers);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_workers);
__pyx_cur_scope->__pyx_v_remove = __pyx_v_remove;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_remove);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_remove);
__pyx_cur_scope->__pyx_v_close_workers = __pyx_v_close_workers;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_close_workers);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_close_workers);
__pyx_cur_scope->__pyx_v_names = __pyx_v_names;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_names);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_names);
__pyx_cur_scope->__pyx_v_lock = __pyx_v_lock;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_lock);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_lock);
__pyx_cur_scope->__pyx_v_kwargs = __pyx_v_kwargs;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_kwargs);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_kwargs);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_131generator16, __pyx_codeobj__80, (PyObject *) __pyx_cur_scope, __pyx_n_s_retire_workers, __pyx_n_s_Scheduler_retire_workers, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 5398, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.retire_workers", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_131generator16(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("retire_workers", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5398, __pyx_L1_error)
/* … */
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_23);
__Pyx_XDECREF(__pyx_t_24);
__Pyx_AddTraceback("retire_workers", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__295 = PyTuple_Pack(22, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_workers, __pyx_n_s_remove, __pyx_n_s_close_workers, __pyx_n_s_names, __pyx_n_s_lock_2, __pyx_n_s_kwargs, __pyx_n_s_parent, __pyx_n_s_ws, __pyx_n_s_ts, __pyx_n_s_keys, __pyx_n_s_other_workers, __pyx_n_s_worker_keys, __pyx_n_s_ws, __pyx_n_s_w, __pyx_n_s_w, __pyx_n_s_ts, __pyx_n_s_ws, __pyx_n_s_ws, __pyx_n_s_w, __pyx_n_s_w); if (unlikely(!__pyx_tuple__295)) __PYX_ERR(0, 5398, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__295);
__Pyx_GIVEREF(__pyx_tuple__295);
__pyx_codeobj__80 = (PyObject*)__Pyx_PyCode_New(7, 0, 22, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__295, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_retire_workers, 5398, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__80)) __PYX_ERR(0, 5398, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5398, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_return, __pyx_n_u_dict_2) < 0) __PYX_ERR(0, 5398, __pyx_L1_error)
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_130retire_workers, 0, __pyx_n_s_Scheduler_retire_workers, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__80)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5398, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__296);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_12);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_retire_workers, __pyx_t_2) < 0) __PYX_ERR(0, 5398, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__296 = PyTuple_Pack(6, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_True), ((PyObject *)Py_False), ((PyObject *)Py_None), ((PyObject *)Py_True)); if (unlikely(!__pyx_tuple__296)) __PYX_ERR(0, 5398, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__296);
__Pyx_GIVEREF(__pyx_tuple__296);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_43_retire_workers {
PyObject_HEAD
PyObject *__pyx_v_close_workers;
PyObject *__pyx_v_comm;
PyObject *__pyx_v_keys;
PyObject *__pyx_v_kwargs;
PyObject *__pyx_v_lock;
PyObject *__pyx_v_names;
PyObject *__pyx_v_other_workers;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent;
PyObject *__pyx_v_remove;
PyObject *__pyx_v_self;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_10genexpr102__pyx_v_ts;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts;
PyObject *__pyx_10genexpr100__pyx_v_w;
PyObject *__pyx_10genexpr101__pyx_v_w;
PyObject *__pyx_10genexpr105__pyx_v_w;
PyObject *__pyx_10genexpr106__pyx_v_w;
PyObject *__pyx_v_worker_keys;
PyObject *__pyx_v_workers;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_10genexpr103__pyx_v_ws;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_10genexpr104__pyx_v_ws;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_9genexpr99__pyx_v_ws;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws;
PyObject *__pyx_t_0;
PyObject *__pyx_t_1;
PyObject *__pyx_t_2;
PyObject *__pyx_t_3;
PyObject *__pyx_t_4;
PyObject *__pyx_t_5;
PyObject *__pyx_t_6;
PyObject *__pyx_t_7;
PyObject *__pyx_t_8;
PyObject *__pyx_t_9;
PyObject *__pyx_t_10;
PyObject *__pyx_t_11;
PyObject *__pyx_t_12;
};
5399: self,
+5400: comm=None,
values[1] = ((PyObject *)((PyObject *)Py_None));
+5401: workers=None,
values[2] = ((PyObject *)((PyObject *)Py_None));
+5402: remove=True,
values[3] = ((PyObject *)((PyObject *)Py_True));
+5403: close_workers=False,
values[4] = ((PyObject *)((PyObject *)Py_False));
+5404: names=None,
values[5] = ((PyObject *)((PyObject *)Py_None));
+5405: lock=True,
values[6] = ((PyObject *)((PyObject *)Py_True));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_workers);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_remove);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close_workers);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_names);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lock_2);
if (value) { values[6] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "retire_workers") < 0)) __PYX_ERR(0, 5398, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_workers = values[2];
__pyx_v_remove = values[3];
__pyx_v_close_workers = values[4];
__pyx_v_names = values[5];
__pyx_v_lock = values[6];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("retire_workers", 0, 1, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5398, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_CLEAR(__pyx_v_kwargs);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.retire_workers", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_129retire_workers(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_workers, __pyx_v_remove, __pyx_v_close_workers, __pyx_v_names, __pyx_v_lock, __pyx_v_kwargs);
5406: **kwargs,
5407: ) -> dict:
5408: """Gracefully retire workers from cluster
5409:
5410: Parameters
5411: ----------
5412: workers: list (optional)
5413: List of worker addresses to retire.
5414: If not provided we call ``workers_to_close`` which finds a good set
5415: workers_names: list (optional)
5416: List of worker names to retire.
5417: remove: bool (defaults to True)
5418: Whether or not to remove the worker metadata immediately or else
5419: wait for the worker to contact us
5420: close_workers: bool (defaults to False)
5421: Whether or not to actually close the worker explicitly from here.
5422: Otherwise we expect some external job scheduler to finish off the
5423: worker.
5424: **kwargs: dict
5425: Extra options to pass to workers_to_close to determine which
5426: workers we should drop
5427:
5428: Returns
5429: -------
5430: Dictionary mapping worker ID/address to dictionary of information about
5431: that worker for each retired worker.
5432:
5433: See Also
5434: --------
5435: Scheduler.workers_to_close
5436: """
+5437: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_cur_scope->__pyx_v_self; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1); __pyx_t_1 = 0;
5438: ws: WorkerState
5439: ts: TaskState
+5440: with log_errors():
/*with:*/ {
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_log_errors); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5440, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
}
}
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5440, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5440, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5440, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5440, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/*try:*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
goto __pyx_L13_try_end;
__pyx_L8_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
__Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.retire_workers", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_24, &__pyx_t_5, &__pyx_t_23) < 0) __PYX_ERR(0, 5440, __pyx_L10_except_error)
__Pyx_GOTREF(__pyx_t_24);
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_23);
__pyx_t_3 = PyTuple_Pack(3, __pyx_t_24, __pyx_t_5, __pyx_t_23); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5440, __pyx_L10_except_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5440, __pyx_L10_except_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_10);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (__pyx_t_9 < 0) __PYX_ERR(0, 5440, __pyx_L10_except_error)
__pyx_t_14 = ((!(__pyx_t_9 != 0)) != 0);
if (__pyx_t_14) {
__Pyx_GIVEREF(__pyx_t_24);
__Pyx_GIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_ErrRestoreWithState(__pyx_t_24, __pyx_t_5, __pyx_t_23);
__pyx_t_24 = 0; __pyx_t_5 = 0; __pyx_t_23 = 0;
__PYX_ERR(0, 5440, __pyx_L10_except_error)
}
__Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
goto __pyx_L9_exception_handled;
}
__pyx_L10_except_error:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L1_error;
__pyx_L12_try_return:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L5_return;
__pyx_L9_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
__pyx_L13_try_end:;
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_4) {
__pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5440, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
goto __pyx_L7;
}
__pyx_L5_return: {
__Pyx_PyThreadState_assign
__pyx_t_8 = 0; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_10 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0;
if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_19, &__pyx_t_20);
if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6);
__Pyx_XGOTREF(__pyx_t_8);
__Pyx_XGOTREF(__pyx_t_7);
__Pyx_XGOTREF(__pyx_t_6);
__Pyx_XGOTREF(__pyx_t_10);
__Pyx_XGOTREF(__pyx_t_19);
__Pyx_XGOTREF(__pyx_t_20);
__pyx_t_25 = __pyx_r;
__pyx_r = 0;
if (__pyx_t_4) {
__pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5440, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
}
__pyx_r = __pyx_t_25;
__pyx_t_25 = 0;
if (PY_MAJOR_VERSION >= 3) {
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_ExceptionReset(__pyx_t_10, __pyx_t_19, __pyx_t_20);
}
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_ErrRestore(__pyx_t_8, __pyx_t_7, __pyx_t_6);
__pyx_t_8 = 0; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_10 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0;
goto __pyx_L0;
}
__pyx_L7:;
}
goto __pyx_L79;
__pyx_L4_error:;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L1_error;
__pyx_L79:;
}
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
+5441: async with self._lock if lock else empty_context:
/*with:*/ {
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_lock); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 5441, __pyx_L8_error)
if (__pyx_t_9) {
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_lock); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5441, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __pyx_t_2;
__pyx_t_2 = 0;
} else {
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_empty_context); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5441, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __pyx_t_2;
__pyx_t_2 = 0;
}
__pyx_t_10 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_aexit); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5441, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_aenter); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5441, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5441, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XGOTREF(__pyx_r);
if (likely(__pyx_r)) {
__Pyx_XGIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
__Pyx_XGIVEREF(__pyx_t_4);
__pyx_cur_scope->__pyx_t_1 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_t_6);
__pyx_cur_scope->__pyx_t_2 = __pyx_t_6;
__Pyx_XGIVEREF(__pyx_t_7);
__pyx_cur_scope->__pyx_t_3 = __pyx_t_7;
__Pyx_XGIVEREF(__pyx_t_8);
__pyx_cur_scope->__pyx_t_4 = __pyx_t_8;
__Pyx_XGIVEREF(__pyx_t_10);
__pyx_cur_scope->__pyx_t_5 = __pyx_t_10;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, awaiting value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L15_resume_from_await:;
__pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_4 = __pyx_cur_scope->__pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = 0;
__Pyx_XGOTREF(__pyx_t_4);
__pyx_t_6 = __pyx_cur_scope->__pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = 0;
__Pyx_XGOTREF(__pyx_t_6);
__pyx_t_7 = __pyx_cur_scope->__pyx_t_3;
__pyx_cur_scope->__pyx_t_3 = 0;
__Pyx_XGOTREF(__pyx_t_7);
__pyx_t_8 = __pyx_cur_scope->__pyx_t_4;
__pyx_cur_scope->__pyx_t_4 = 0;
__Pyx_XGOTREF(__pyx_t_8);
__pyx_t_10 = __pyx_cur_scope->__pyx_t_5;
__pyx_cur_scope->__pyx_t_5 = 0;
__Pyx_XGOTREF(__pyx_t_10);
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5441, __pyx_L14_error)
__pyx_t_2 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_2);
} else {
__pyx_t_2 = NULL;
if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_2) < 0) __PYX_ERR(0, 5441, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_2);
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/*try:*/ {
{
/*try:*/ {
/* … */
}
__pyx_L19_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
__Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.retire_workers", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_23, &__pyx_t_5, &__pyx_t_24) < 0) __PYX_ERR(0, 5441, __pyx_L21_except_error)
__Pyx_GOTREF(__pyx_t_23);
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_24);
__pyx_t_3 = PyTuple_Pack(3, __pyx_t_23, __pyx_t_5, __pyx_t_24); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5441, __pyx_L21_except_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_3, NULL);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5441, __pyx_L21_except_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_21);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_XGOTREF(__pyx_r);
if (likely(__pyx_r)) {
__Pyx_XGIVEREF(__pyx_t_4);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_t_5);
__pyx_cur_scope->__pyx_t_1 = __pyx_t_5;
__Pyx_XGIVEREF(__pyx_t_6);
__pyx_cur_scope->__pyx_t_2 = __pyx_t_6;
__Pyx_XGIVEREF(__pyx_t_7);
__pyx_cur_scope->__pyx_t_3 = __pyx_t_7;
__Pyx_XGIVEREF(__pyx_t_8);
__pyx_cur_scope->__pyx_t_4 = __pyx_t_8;
__Pyx_XGIVEREF(__pyx_t_10);
__pyx_cur_scope->__pyx_t_5 = __pyx_t_10;
__Pyx_XGIVEREF(__pyx_t_11);
__pyx_cur_scope->__pyx_t_6 = __pyx_t_11;
__Pyx_XGIVEREF(__pyx_t_12);
__pyx_cur_scope->__pyx_t_7 = __pyx_t_12;
__Pyx_XGIVEREF(__pyx_t_13);
__pyx_cur_scope->__pyx_t_8 = __pyx_t_13;
__Pyx_XGIVEREF(__pyx_t_21);
__pyx_cur_scope->__pyx_t_9 = __pyx_t_21;
__Pyx_XGIVEREF(__pyx_t_23);
__pyx_cur_scope->__pyx_t_10 = __pyx_t_23;
__Pyx_XGIVEREF(__pyx_t_24);
__pyx_cur_scope->__pyx_t_11 = __pyx_t_24;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_SwapException(__pyx_generator);
/* return from generator, awaiting value */
__pyx_generator->resume_label = 6;
return __pyx_r;
__pyx_L72_resume_from_await:;
__pyx_t_4 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_4);
__pyx_t_5 = __pyx_cur_scope->__pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = 0;
__Pyx_XGOTREF(__pyx_t_5);
__pyx_t_6 = __pyx_cur_scope->__pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = 0;
__Pyx_XGOTREF(__pyx_t_6);
__pyx_t_7 = __pyx_cur_scope->__pyx_t_3;
__pyx_cur_scope->__pyx_t_3 = 0;
__Pyx_XGOTREF(__pyx_t_7);
__pyx_t_8 = __pyx_cur_scope->__pyx_t_4;
__pyx_cur_scope->__pyx_t_4 = 0;
__Pyx_XGOTREF(__pyx_t_8);
__pyx_t_10 = __pyx_cur_scope->__pyx_t_5;
__pyx_cur_scope->__pyx_t_5 = 0;
__Pyx_XGOTREF(__pyx_t_10);
__pyx_t_11 = __pyx_cur_scope->__pyx_t_6;
__pyx_cur_scope->__pyx_t_6 = 0;
__Pyx_XGOTREF(__pyx_t_11);
__pyx_t_12 = __pyx_cur_scope->__pyx_t_7;
__pyx_cur_scope->__pyx_t_7 = 0;
__Pyx_XGOTREF(__pyx_t_12);
__pyx_t_13 = __pyx_cur_scope->__pyx_t_8;
__pyx_cur_scope->__pyx_t_8 = 0;
__Pyx_XGOTREF(__pyx_t_13);
__pyx_t_21 = __pyx_cur_scope->__pyx_t_9;
__pyx_cur_scope->__pyx_t_9 = 0;
__Pyx_XGOTREF(__pyx_t_21);
__pyx_t_23 = __pyx_cur_scope->__pyx_t_10;
__pyx_cur_scope->__pyx_t_10 = 0;
__Pyx_XGOTREF(__pyx_t_23);
__pyx_t_24 = __pyx_cur_scope->__pyx_t_11;
__pyx_cur_scope->__pyx_t_11 = 0;
__Pyx_XGOTREF(__pyx_t_24);
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5441, __pyx_L21_except_error)
__pyx_t_3 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_3);
} else {
__pyx_t_3 = NULL;
if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_3) < 0) __PYX_ERR(0, 5441, __pyx_L21_except_error)
__Pyx_GOTREF(__pyx_t_3);
}
__pyx_t_21 = __pyx_t_3;
__pyx_t_3 = 0;
__pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_21);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
if (__pyx_t_14 < 0) __PYX_ERR(0, 5441, __pyx_L21_except_error)
__pyx_t_9 = ((!(__pyx_t_14 != 0)) != 0);
if (__pyx_t_9) {
__Pyx_GIVEREF(__pyx_t_23);
__Pyx_GIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_24);
__Pyx_ErrRestoreWithState(__pyx_t_23, __pyx_t_5, __pyx_t_24);
__pyx_t_23 = 0; __pyx_t_5 = 0; __pyx_t_24 = 0;
__PYX_ERR(0, 5441, __pyx_L21_except_error)
}
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
goto __pyx_L20_exception_handled;
}
__pyx_L21_except_error:;
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
goto __pyx_L8_error;
__pyx_L23_try_return:;
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
goto __pyx_L16_return;
__pyx_L20_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_10) {
__pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5441, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_13);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XGOTREF(__pyx_r);
if (likely(__pyx_r)) {
__Pyx_XGIVEREF(__pyx_t_4);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_t_6);
__pyx_cur_scope->__pyx_t_1 = __pyx_t_6;
__Pyx_XGIVEREF(__pyx_t_7);
__pyx_cur_scope->__pyx_t_2 = __pyx_t_7;
__Pyx_XGIVEREF(__pyx_t_8);
__pyx_cur_scope->__pyx_t_3 = __pyx_t_8;
__Pyx_XGIVEREF(__pyx_t_10);
__pyx_cur_scope->__pyx_t_4 = __pyx_t_10;
__Pyx_XGIVEREF(__pyx_t_13);
__pyx_cur_scope->__pyx_t_5 = __pyx_t_13;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, awaiting value */
__pyx_generator->resume_label = 7;
return __pyx_r;
__pyx_L73_resume_from_await:;
__pyx_t_4 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_4);
__pyx_t_6 = __pyx_cur_scope->__pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = 0;
__Pyx_XGOTREF(__pyx_t_6);
__pyx_t_7 = __pyx_cur_scope->__pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = 0;
__Pyx_XGOTREF(__pyx_t_7);
__pyx_t_8 = __pyx_cur_scope->__pyx_t_3;
__pyx_cur_scope->__pyx_t_3 = 0;
__Pyx_XGOTREF(__pyx_t_8);
__pyx_t_10 = __pyx_cur_scope->__pyx_t_4;
__pyx_cur_scope->__pyx_t_4 = 0;
__Pyx_XGOTREF(__pyx_t_10);
__pyx_t_13 = __pyx_cur_scope->__pyx_t_5;
__pyx_cur_scope->__pyx_t_5 = 0;
__Pyx_XGOTREF(__pyx_t_13);
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5441, __pyx_L8_error)
__pyx_t_24 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_24);
} else {
__pyx_t_24 = NULL;
if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_24) < 0) __PYX_ERR(0, 5441, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_24);
}
__pyx_t_13 = __pyx_t_24;
__pyx_t_24 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
}
goto __pyx_L18;
}
__pyx_L16_return: {
__Pyx_PyThreadState_assign
__pyx_t_13 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0;
if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_21, &__pyx_t_20, &__pyx_t_19);
if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_12, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_12, &__pyx_t_11);
__Pyx_XGOTREF(__pyx_t_13);
__Pyx_XGOTREF(__pyx_t_12);
__Pyx_XGOTREF(__pyx_t_11);
__Pyx_XGOTREF(__pyx_t_21);
__Pyx_XGOTREF(__pyx_t_20);
__Pyx_XGOTREF(__pyx_t_19);
__pyx_t_25 = __pyx_r;
__pyx_r = 0;
if (__pyx_t_10) {
__pyx_t_26 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 5441, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_26);
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_26);
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__Pyx_XGOTREF(__pyx_r);
if (likely(__pyx_r)) {
__Pyx_XGIVEREF(__pyx_t_4);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_t_6);
__pyx_cur_scope->__pyx_t_1 = __pyx_t_6;
__Pyx_XGIVEREF(__pyx_t_7);
__pyx_cur_scope->__pyx_t_2 = __pyx_t_7;
__Pyx_XGIVEREF(__pyx_t_8);
__pyx_cur_scope->__pyx_t_3 = __pyx_t_8;
__Pyx_XGIVEREF(__pyx_t_10);
__pyx_cur_scope->__pyx_t_4 = __pyx_t_10;
__Pyx_XGIVEREF(__pyx_t_11);
__pyx_cur_scope->__pyx_t_5 = __pyx_t_11;
__Pyx_XGIVEREF(__pyx_t_12);
__pyx_cur_scope->__pyx_t_6 = __pyx_t_12;
__Pyx_XGIVEREF(__pyx_t_13);
__pyx_cur_scope->__pyx_t_7 = __pyx_t_13;
__Pyx_XGIVEREF(__pyx_t_19);
__pyx_cur_scope->__pyx_t_8 = __pyx_t_19;
__Pyx_XGIVEREF(__pyx_t_20);
__pyx_cur_scope->__pyx_t_9 = __pyx_t_20;
__Pyx_XGIVEREF(__pyx_t_21);
__pyx_cur_scope->__pyx_t_10 = __pyx_t_21;
__Pyx_XGIVEREF(__pyx_t_25);
__pyx_cur_scope->__pyx_t_12 = __pyx_t_25;
__Pyx_XGIVEREF(__pyx_t_26);
__pyx_cur_scope->__pyx_t_11 = __pyx_t_26;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, awaiting value */
__pyx_generator->resume_label = 8;
return __pyx_r;
__pyx_L74_resume_from_await:;
__pyx_t_4 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_4);
__pyx_t_6 = __pyx_cur_scope->__pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = 0;
__Pyx_XGOTREF(__pyx_t_6);
__pyx_t_7 = __pyx_cur_scope->__pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = 0;
__Pyx_XGOTREF(__pyx_t_7);
__pyx_t_8 = __pyx_cur_scope->__pyx_t_3;
__pyx_cur_scope->__pyx_t_3 = 0;
__Pyx_XGOTREF(__pyx_t_8);
__pyx_t_10 = __pyx_cur_scope->__pyx_t_4;
__pyx_cur_scope->__pyx_t_4 = 0;
__Pyx_XGOTREF(__pyx_t_10);
__pyx_t_11 = __pyx_cur_scope->__pyx_t_5;
__pyx_cur_scope->__pyx_t_5 = 0;
__Pyx_XGOTREF(__pyx_t_11);
__pyx_t_12 = __pyx_cur_scope->__pyx_t_6;
__pyx_cur_scope->__pyx_t_6 = 0;
__Pyx_XGOTREF(__pyx_t_12);
__pyx_t_13 = __pyx_cur_scope->__pyx_t_7;
__pyx_cur_scope->__pyx_t_7 = 0;
__Pyx_XGOTREF(__pyx_t_13);
__pyx_t_19 = __pyx_cur_scope->__pyx_t_8;
__pyx_cur_scope->__pyx_t_8 = 0;
__Pyx_XGOTREF(__pyx_t_19);
__pyx_t_20 = __pyx_cur_scope->__pyx_t_9;
__pyx_cur_scope->__pyx_t_9 = 0;
__Pyx_XGOTREF(__pyx_t_20);
__pyx_t_21 = __pyx_cur_scope->__pyx_t_10;
__pyx_cur_scope->__pyx_t_10 = 0;
__Pyx_XGOTREF(__pyx_t_21);
__pyx_t_25 = __pyx_cur_scope->__pyx_t_12;
__pyx_cur_scope->__pyx_t_12 = 0;
__Pyx_XGOTREF(__pyx_t_25);
__pyx_t_26 = __pyx_cur_scope->__pyx_t_11;
__pyx_cur_scope->__pyx_t_11 = 0;
__Pyx_XGOTREF(__pyx_t_26);
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5441, __pyx_L8_error)
__pyx_t_24 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_24);
} else {
__pyx_t_24 = NULL;
if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_24) < 0) __PYX_ERR(0, 5441, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_24);
}
__pyx_t_26 = __pyx_t_24;
__pyx_t_24 = 0;
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
}
__pyx_r = __pyx_t_25;
__pyx_t_25 = 0;
if (PY_MAJOR_VERSION >= 3) {
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_ExceptionReset(__pyx_t_21, __pyx_t_20, __pyx_t_19);
}
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_ErrRestore(__pyx_t_13, __pyx_t_12, __pyx_t_11);
__pyx_t_13 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0;
goto __pyx_L12_try_return;
}
__pyx_L18:;
}
goto __pyx_L75;
__pyx_L14_error:;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
goto __pyx_L8_error;
__pyx_L75:;
}
+5442: if names is not None:
__pyx_t_9 = (__pyx_cur_scope->__pyx_v_names != Py_None);
__pyx_t_14 = (__pyx_t_9 != 0);
if (__pyx_t_14) {
/* … */
}
+5443: if names:
__pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_names); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 5443, __pyx_L19_error) if (__pyx_t_14) { /* … */ }
+5444: logger.info("Retire worker names %s", names)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logger); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5444, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5444, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_u_Retire_worker_names_s, __pyx_cur_scope->__pyx_v_names}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5444, __pyx_L19_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_u_Retire_worker_names_s, __pyx_cur_scope->__pyx_v_names}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5444, __pyx_L19_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5444, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_kp_u_Retire_worker_names_s); __Pyx_GIVEREF(__pyx_kp_u_Retire_worker_names_s); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_15, __pyx_kp_u_Retire_worker_names_s); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_names); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_names); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_15, __pyx_cur_scope->__pyx_v_names); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5444, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5445: names = set(map(str, names))
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5445, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)(&PyUnicode_Type))); __Pyx_GIVEREF(((PyObject *)(&PyUnicode_Type))); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)(&PyUnicode_Type))); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_names); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_names); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_cur_scope->__pyx_v_names); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_map, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5445, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PySet_New(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5445, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_names); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_names, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0;
+5446: workers = [
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5446, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_1);
+5447: ws._address
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_cur_scope->__pyx_9genexpr99__pyx_v_ws->_address))) __PYX_ERR(0, 5446, __pyx_L19_error)
+5448: for ws in parent._workers_dv.values()
__pyx_t_16 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
__PYX_ERR(0, 5448, __pyx_L19_error)
}
__pyx_t_5 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_parent->_workers_dv, 1, __pyx_n_s_values, (&__pyx_t_17), (&__pyx_t_15)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5448, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_3);
__pyx_t_3 = __pyx_t_5;
__pyx_t_5 = 0;
while (1) {
__pyx_t_18 = __Pyx_dict_iter_next(__pyx_t_3, __pyx_t_17, &__pyx_t_16, NULL, &__pyx_t_5, NULL, __pyx_t_15);
if (unlikely(__pyx_t_18 == 0)) break;
if (unlikely(__pyx_t_18 == -1)) __PYX_ERR(0, 5448, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5448, __pyx_L19_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_9genexpr99__pyx_v_ws));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_9genexpr99__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_5));
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
+5449: if str(ws._name) in names
__pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_cur_scope->__pyx_9genexpr99__pyx_v_ws->_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5449, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_14 = (__Pyx_PySequence_ContainsTF(__pyx_t_5, __pyx_cur_scope->__pyx_v_names, Py_EQ)); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 5449, __pyx_L19_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_9 = (__pyx_t_14 != 0); if (__pyx_t_9) { /* … */ } } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } /* exit inner scope */ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_workers); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_workers, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0;
5450: ]
+5451: if workers is None:
__pyx_t_9 = (__pyx_cur_scope->__pyx_v_workers == Py_None);
__pyx_t_14 = (__pyx_t_9 != 0);
if (__pyx_t_14) {
/* … */
}
+5452: while True:
while (1) {
+5453: try:
{
/*try:*/ {
/* … */
}
__pyx_L33_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_ExceptionReset(__pyx_t_19, __pyx_t_20, __pyx_t_21);
goto __pyx_L19_error;
__pyx_L37_try_return:;
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_ExceptionReset(__pyx_t_19, __pyx_t_20, __pyx_t_21);
goto __pyx_L23_try_return;
__pyx_L34_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_ExceptionReset(__pyx_t_19, __pyx_t_20, __pyx_t_21);
}
}
+5454: workers = self.workers_to_close(**kwargs)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_workers_to_close); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5454, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_cur_scope->__pyx_v_kwargs); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5454, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_workers); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_workers, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0;
+5455: if workers:
__pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_workers); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 5455, __pyx_L33_error) if (__pyx_t_14) { /* … */ }
+5456: workers = await self.retire_workers(
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_retire_workers); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5456, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_3); /* … */ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5456, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_0 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_1 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_2 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_3 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_4 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_t_5 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_t_12); __pyx_cur_scope->__pyx_t_6 = __pyx_t_12; __Pyx_XGIVEREF(__pyx_t_13); __pyx_cur_scope->__pyx_t_7 = __pyx_t_13; __Pyx_XGIVEREF(__pyx_t_19); __pyx_cur_scope->__pyx_t_8 = __pyx_t_19; __Pyx_XGIVEREF(__pyx_t_20); __pyx_cur_scope->__pyx_t_9 = __pyx_t_20; __Pyx_XGIVEREF(__pyx_t_21); __pyx_cur_scope->__pyx_t_10 = __pyx_t_21; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L42_resume_from_await:; __pyx_t_4 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_6 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_7 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_10 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_11 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_11); __pyx_t_12 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_12); __pyx_t_13 = __pyx_cur_scope->__pyx_t_7; __pyx_cur_scope->__pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_t_13); __pyx_t_19 = __pyx_cur_scope->__pyx_t_8; __pyx_cur_scope->__pyx_t_8 = 0; __Pyx_XGOTREF(__pyx_t_19); __pyx_t_20 = __pyx_cur_scope->__pyx_t_9; __pyx_cur_scope->__pyx_t_9 = 0; __Pyx_XGOTREF(__pyx_t_20); __pyx_t_21 = __pyx_cur_scope->__pyx_t_10; __pyx_cur_scope->__pyx_t_10 = 0; __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5456, __pyx_L33_error) __pyx_t_5 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_5); } else { __pyx_t_5 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_5) < 0) __PYX_ERR(0, 5456, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_workers); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_workers, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0;
+5457: workers=workers,
__pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5457, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_workers, __pyx_cur_scope->__pyx_v_workers) < 0) __PYX_ERR(0, 5457, __pyx_L33_error)
+5458: remove=remove,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_remove, __pyx_cur_scope->__pyx_v_remove) < 0) __PYX_ERR(0, 5457, __pyx_L33_error)
+5459: close_workers=close_workers,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_close_workers, __pyx_cur_scope->__pyx_v_close_workers) < 0) __PYX_ERR(0, 5457, __pyx_L33_error)
+5460: lock=False,
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_lock_2, Py_False) < 0) __PYX_ERR(0, 5457, __pyx_L33_error)
5461: )
+5462: return workers
__Pyx_XDECREF(__pyx_r); if (!(likely(PyDict_CheckExact(__pyx_cur_scope->__pyx_v_workers))||((__pyx_cur_scope->__pyx_v_workers) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_cur_scope->__pyx_v_workers)->tp_name), 0))) __PYX_ERR(0, 5462, __pyx_L33_error) __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_cur_scope->__pyx_v_workers); goto __pyx_L37_try_return;
5463: else:
+5464: return {}
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5464, __pyx_L33_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_5);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
goto __pyx_L37_try_return;
}
+5465: except KeyError: # keys left during replicate
__pyx_t_15 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); if (__pyx_t_15) { __Pyx_ErrRestore(0,0,0); goto __pyx_L34_exception_handled; } goto __pyx_L35_except_error; __pyx_L35_except_error:;
5466: pass
+5467: workers = {
{ /* enter inner scope */
__pyx_t_5 = PySet_New(NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5467, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_5);
+5468: parent._workers_dv[w] for w in workers if w in parent._workers_dv
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_workers)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_workers)) { __pyx_t_1 = __pyx_cur_scope->__pyx_v_workers; __Pyx_INCREF(__pyx_t_1); __pyx_t_17 = 0; __pyx_t_22 = NULL; } else { __pyx_t_17 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_workers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5468, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_22 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5468, __pyx_L19_error) } for (;;) { if (likely(!__pyx_t_22)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_17); __Pyx_INCREF(__pyx_t_3); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5468, __pyx_L19_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5468, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_17); __Pyx_INCREF(__pyx_t_3); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5468, __pyx_L19_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5468, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_22(__pyx_t_1); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5468, __pyx_L19_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_10genexpr100__pyx_v_w); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_10genexpr100__pyx_v_w, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers_dv == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 5468, __pyx_L19_error) } __pyx_t_14 = (__Pyx_PyDict_ContainsTF(__pyx_cur_scope->__pyx_10genexpr100__pyx_v_w, __pyx_cur_scope->__pyx_v_parent->_workers_dv, Py_EQ)); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 5468, __pyx_L19_error) __pyx_t_9 = (__pyx_t_14 != 0); if (__pyx_t_9) { if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers_dv == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5468, __pyx_L19_error) } __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_parent->_workers_dv, __pyx_cur_scope->__pyx_10genexpr100__pyx_v_w); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5468, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(PySet_Add(__pyx_t_5, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 5468, __pyx_L19_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* exit inner scope */ __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_workers); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_workers, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0;
5469: }
+5470: if not workers:
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_workers); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 5470, __pyx_L19_error) __pyx_t_14 = ((!__pyx_t_9) != 0); if (__pyx_t_14) { /* … */ }
+5471: return {}
__Pyx_XDECREF(__pyx_r); __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5471, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L23_try_return;
+5472: logger.info("Retire workers %s", workers)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_logger); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5472, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5472, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_kp_u_Retire_workers_s, __pyx_cur_scope->__pyx_v_workers}; __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5472, __pyx_L19_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_kp_u_Retire_workers_s, __pyx_cur_scope->__pyx_v_workers}; __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5472, __pyx_L19_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif { __pyx_t_2 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5472, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_kp_u_Retire_workers_s); __Pyx_GIVEREF(__pyx_kp_u_Retire_workers_s); PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_15, __pyx_kp_u_Retire_workers_s); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_workers); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_workers); PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_15, __pyx_cur_scope->__pyx_v_workers); __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5472, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
5473:
5474: # Keys orphaned by retiring those workers
+5475: keys = set.union(*[w.has_what for w in workers])
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)(&PySet_Type)), __pyx_n_s_union); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5475, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); { /* enter inner scope */ __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5475, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_workers)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_workers)) { __pyx_t_2 = __pyx_cur_scope->__pyx_v_workers; __Pyx_INCREF(__pyx_t_2); __pyx_t_17 = 0; __pyx_t_22 = NULL; } else { __pyx_t_17 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_workers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5475, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_22 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5475, __pyx_L19_error) } for (;;) { if (likely(!__pyx_t_22)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_17); __Pyx_INCREF(__pyx_t_1); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5475, __pyx_L19_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5475, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_17); __Pyx_INCREF(__pyx_t_1); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5475, __pyx_L19_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5475, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_22(__pyx_t_2); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5475, __pyx_L19_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_10genexpr101__pyx_v_w); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_10genexpr101__pyx_v_w, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_10genexpr101__pyx_v_w, __pyx_n_s_has_what); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5475, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_1))) __PYX_ERR(0, 5475, __pyx_L19_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } /* exit inner scope */ __pyx_t_2 = PySequence_Tuple(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5475, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5475, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_v_keys = __pyx_t_3; __pyx_t_3 = 0;
+5476: keys = {ts._key for ts in keys if ts._who_has.issubset(workers)}
{ /* enter inner scope */
__pyx_t_3 = PySet_New(NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5476, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_keys)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_keys)) {
__pyx_t_2 = __pyx_cur_scope->__pyx_v_keys; __Pyx_INCREF(__pyx_t_2); __pyx_t_17 = 0;
__pyx_t_22 = NULL;
} else {
__pyx_t_17 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5476, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_22 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5476, __pyx_L19_error)
}
for (;;) {
if (likely(!__pyx_t_22)) {
if (likely(PyList_CheckExact(__pyx_t_2))) {
if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_17); __Pyx_INCREF(__pyx_t_5); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5476, __pyx_L19_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5476, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_17); __Pyx_INCREF(__pyx_t_5); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5476, __pyx_L19_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5476, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
}
} else {
__pyx_t_5 = __pyx_t_22(__pyx_t_2);
if (unlikely(!__pyx_t_5)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5476, __pyx_L19_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_5);
}
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5476, __pyx_L19_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_10genexpr102__pyx_v_ts));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_10genexpr102__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_5));
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_10genexpr102__pyx_v_ts->_who_has, __pyx_n_s_issubset); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5476, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_23 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_23 = PyMethod_GET_SELF(__pyx_t_1);
if (likely(__pyx_t_23)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_23);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_1, function);
}
}
__pyx_t_5 = (__pyx_t_23) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_23, __pyx_cur_scope->__pyx_v_workers) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_cur_scope->__pyx_v_workers);
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5476, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 5476, __pyx_L19_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (__pyx_t_14) {
if (unlikely(PySet_Add(__pyx_t_3, (PyObject*)__pyx_cur_scope->__pyx_10genexpr102__pyx_v_ts->_key))) __PYX_ERR(0, 5476, __pyx_L19_error)
}
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
} /* exit inner scope */
__Pyx_GOTREF(__pyx_cur_scope->__pyx_v_keys);
__Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_keys, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
5477:
+5478: other_workers = set(parent._workers_dv.values()) - workers
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
__PYX_ERR(0, 5478, __pyx_L19_error)
}
__pyx_t_3 = __Pyx_PyDict_Values(__pyx_cur_scope->__pyx_v_parent->_workers_dv); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5478, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = PySet_New(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5478, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyNumber_Subtract(__pyx_t_2, __pyx_cur_scope->__pyx_v_workers); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5478, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GIVEREF(__pyx_t_3);
__pyx_cur_scope->__pyx_v_other_workers = __pyx_t_3;
__pyx_t_3 = 0;
+5479: if keys:
__pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_keys); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 5479, __pyx_L19_error) if (__pyx_t_14) { /* … */ }
+5480: if other_workers:
__pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_other_workers); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 5480, __pyx_L19_error) if (__pyx_t_14) { /* … */ goto __pyx_L53; }
+5481: logger.info("Moving %d keys to other workers", len(keys))
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logger); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5481, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_info); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5481, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_17 = PyObject_Length(__pyx_cur_scope->__pyx_v_keys); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5481, __pyx_L19_error) __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_17); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5481, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_kp_u_Moving_d_keys_to_other_workers, __pyx_t_2}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5481, __pyx_L19_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_kp_u_Moving_d_keys_to_other_workers, __pyx_t_2}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5481, __pyx_L19_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_23 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5481, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_23); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_kp_u_Moving_d_keys_to_other_workers); __Pyx_GIVEREF(__pyx_kp_u_Moving_d_keys_to_other_workers); PyTuple_SET_ITEM(__pyx_t_23, 0+__pyx_t_15, __pyx_kp_u_Moving_d_keys_to_other_workers); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_23, 1+__pyx_t_15, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_23, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5481, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5482: await self.replicate(
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_replicate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5482, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); /* … */ __pyx_t_23 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_5); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5482, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_23); __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_0 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_1 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_2 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_3 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_4 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_t_5 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_t_12); __pyx_cur_scope->__pyx_t_6 = __pyx_t_12; __Pyx_XGIVEREF(__pyx_t_13); __pyx_cur_scope->__pyx_t_7 = __pyx_t_13; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 3; return __pyx_r; __pyx_L56_resume_from_await:; __pyx_t_4 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_6 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_7 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_10 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_11 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_11); __pyx_t_12 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_12); __pyx_t_13 = __pyx_cur_scope->__pyx_t_7; __pyx_cur_scope->__pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5482, __pyx_L19_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 5482, __pyx_L19_error) } }
+5483: keys=keys,
__pyx_t_5 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5483, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_keys, __pyx_cur_scope->__pyx_v_keys) < 0) __PYX_ERR(0, 5483, __pyx_L19_error) { /* enter inner scope */
+5484: workers=[ws._address for ws in other_workers],
__pyx_t_23 = PyList_New(0); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5484, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_23); if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_other_workers)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_other_workers)) { __pyx_t_2 = __pyx_cur_scope->__pyx_v_other_workers; __Pyx_INCREF(__pyx_t_2); __pyx_t_17 = 0; __pyx_t_22 = NULL; } else { __pyx_t_17 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_other_workers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5484, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_22 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5484, __pyx_L19_error) } for (;;) { if (likely(!__pyx_t_22)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_17); __Pyx_INCREF(__pyx_t_1); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5484, __pyx_L19_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5484, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_17); __Pyx_INCREF(__pyx_t_1); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5484, __pyx_L19_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5484, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_22(__pyx_t_2); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5484, __pyx_L19_error) } break; } __Pyx_GOTREF(__pyx_t_1); } if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5484, __pyx_L19_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_10genexpr103__pyx_v_ws)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_10genexpr103__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1)); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_23, (PyObject*)__pyx_cur_scope->__pyx_10genexpr103__pyx_v_ws->_address))) __PYX_ERR(0, 5484, __pyx_L19_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } /* exit inner scope */ if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_workers, __pyx_t_23) < 0) __PYX_ERR(0, 5483, __pyx_L19_error) __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_n, __pyx_int_1) < 0) __PYX_ERR(0, 5483, __pyx_L19_error)
5485: n=1,
+5486: delete=False,
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_delete, Py_False) < 0) __PYX_ERR(0, 5483, __pyx_L19_error)
+5487: lock=False,
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_lock_2, Py_False) < 0) __PYX_ERR(0, 5483, __pyx_L19_error)
5488: )
5489: else:
+5490: return {}
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__pyx_t_23 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5490, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_23);
__pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_23);
__Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
goto __pyx_L23_try_return;
}
__pyx_L53:;
5491:
+5492: worker_keys = {ws._address: ws.identity() for ws in workers}
{ /* enter inner scope */
__pyx_t_23 = PyDict_New(); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5492, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_23);
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_workers)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_workers)) {
__pyx_t_5 = __pyx_cur_scope->__pyx_v_workers; __Pyx_INCREF(__pyx_t_5); __pyx_t_17 = 0;
__pyx_t_22 = NULL;
} else {
__pyx_t_17 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_workers); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5492, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_22 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5492, __pyx_L19_error)
}
for (;;) {
if (likely(!__pyx_t_22)) {
if (likely(PyList_CheckExact(__pyx_t_5))) {
if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_17); __Pyx_INCREF(__pyx_t_3); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5492, __pyx_L19_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5492, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
} else {
if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_17); __Pyx_INCREF(__pyx_t_3); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 5492, __pyx_L19_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5492, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
}
} else {
__pyx_t_3 = __pyx_t_22(__pyx_t_5);
if (unlikely(!__pyx_t_3)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5492, __pyx_L19_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_3);
}
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5492, __pyx_L19_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_10genexpr104__pyx_v_ws));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_10genexpr104__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_3));
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
__pyx_t_3 = __pyx_f_11distributed_9scheduler_11WorkerState_identity(__pyx_cur_scope->__pyx_10genexpr104__pyx_v_ws, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5492, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(PyDict_SetItem(__pyx_t_23, (PyObject*)__pyx_cur_scope->__pyx_10genexpr104__pyx_v_ws->_address, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 5492, __pyx_L19_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_23);
__pyx_cur_scope->__pyx_v_worker_keys = ((PyObject*)__pyx_t_23);
__pyx_t_23 = 0;
+5493: if close_workers and worker_keys:
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_close_workers); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 5493, __pyx_L19_error) if (__pyx_t_9) { } else { __pyx_t_14 = __pyx_t_9; goto __pyx_L60_bool_binop_done; } __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_worker_keys); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 5493, __pyx_L19_error) __pyx_t_14 = __pyx_t_9; __pyx_L60_bool_binop_done:; if (__pyx_t_14) { /* … */ }
+5494: await asyncio.gather(
__Pyx_GetModuleGlobalName(__pyx_t_23, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5494, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_23); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_23, __pyx_n_s_gather); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5494, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; { /* enter inner scope */ /* … */ __pyx_t_3 = PySequence_Tuple(__pyx_t_23); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5494, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; __pyx_t_23 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, NULL); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5494, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_23); __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_0 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_1 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_2 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_3 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_4 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_t_5 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_t_12); __pyx_cur_scope->__pyx_t_6 = __pyx_t_12; __Pyx_XGIVEREF(__pyx_t_13); __pyx_cur_scope->__pyx_t_7 = __pyx_t_13; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 4; return __pyx_r; __pyx_L64_resume_from_await:; __pyx_t_4 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_6 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_7 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_10 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_11 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_11); __pyx_t_12 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_12); __pyx_t_13 = __pyx_cur_scope->__pyx_t_7; __pyx_cur_scope->__pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5494, __pyx_L19_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 5494, __pyx_L19_error) } }
+5495: *[self.close_worker(worker=w, safe=True) for w in worker_keys]
__pyx_t_23 = PyList_New(0); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5495, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_23); __pyx_t_17 = 0; __pyx_t_2 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_worker_keys, 1, ((PyObject *)NULL), (&__pyx_t_16), (&__pyx_t_15)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5495, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = __pyx_t_2; __pyx_t_2 = 0; while (1) { __pyx_t_18 = __Pyx_dict_iter_next(__pyx_t_3, __pyx_t_16, &__pyx_t_17, &__pyx_t_2, NULL, NULL, __pyx_t_15); if (unlikely(__pyx_t_18 == 0)) break; if (unlikely(__pyx_t_18 == -1)) __PYX_ERR(0, 5495, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_cur_scope->__pyx_10genexpr105__pyx_v_w); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_10genexpr105__pyx_v_w, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_close_worker); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5495, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5495, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_worker, __pyx_cur_scope->__pyx_10genexpr105__pyx_v_w) < 0) __PYX_ERR(0, 5495, __pyx_L19_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_safe, Py_True) < 0) __PYX_ERR(0, 5495, __pyx_L19_error) __pyx_t_24 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5495, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_24); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_23, (PyObject*)__pyx_t_24))) __PYX_ERR(0, 5495, __pyx_L19_error) __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } /* exit inner scope */
5496: )
+5497: if remove:
__pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_remove); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 5497, __pyx_L19_error) if (__pyx_t_14) { /* … */ }
+5498: await asyncio.gather(
__Pyx_GetModuleGlobalName(__pyx_t_23, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5498, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_23); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_23, __pyx_n_s_gather); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5498, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; { /* enter inner scope */ /* … */ __pyx_t_5 = PySequence_Tuple(__pyx_t_23); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5498, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; __pyx_t_23 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5498, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_23); __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_0 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_1 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_2 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_3 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_4 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_t_5 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_t_12); __pyx_cur_scope->__pyx_t_6 = __pyx_t_12; __Pyx_XGIVEREF(__pyx_t_13); __pyx_cur_scope->__pyx_t_7 = __pyx_t_13; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 5; return __pyx_r; __pyx_L68_resume_from_await:; __pyx_t_4 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_6 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_7 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_10 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_11 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_11); __pyx_t_12 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_12); __pyx_t_13 = __pyx_cur_scope->__pyx_t_7; __pyx_cur_scope->__pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5498, __pyx_L19_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 5498, __pyx_L19_error) } }
+5499: *[self.remove_worker(address=w, safe=True) for w in worker_keys]
__pyx_t_23 = PyList_New(0); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5499, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_23); __pyx_t_16 = 0; __pyx_t_24 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_worker_keys, 1, ((PyObject *)NULL), (&__pyx_t_17), (&__pyx_t_15)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5499, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_24); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = __pyx_t_24; __pyx_t_24 = 0; while (1) { __pyx_t_18 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_17, &__pyx_t_16, &__pyx_t_24, NULL, NULL, __pyx_t_15); if (unlikely(__pyx_t_18 == 0)) break; if (unlikely(__pyx_t_18 == -1)) __PYX_ERR(0, 5499, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_cur_scope->__pyx_10genexpr106__pyx_v_w); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_10genexpr106__pyx_v_w, __pyx_t_24); __Pyx_GIVEREF(__pyx_t_24); __pyx_t_24 = 0; __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_remove_worker); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5499, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_24); __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5499, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_address, __pyx_cur_scope->__pyx_10genexpr106__pyx_v_w) < 0) __PYX_ERR(0, 5499, __pyx_L19_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_safe, Py_True) < 0) __PYX_ERR(0, 5499, __pyx_L19_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_24, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5499, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_23, (PyObject*)__pyx_t_2))) __PYX_ERR(0, 5499, __pyx_L19_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } /* exit inner scope */
5500: )
5501:
+5502: self.log_event(
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_log_event_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5502, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5);
5503: "all",
5504: {
+5505: "action": "retire-workers",
__pyx_t_3 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5505, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_action, __pyx_kp_u_retire_workers_2) < 0) __PYX_ERR(0, 5505, __pyx_L19_error)
+5506: "workers": worker_keys,
if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_workers, __pyx_cur_scope->__pyx_v_worker_keys) < 0) __PYX_ERR(0, 5505, __pyx_L19_error)
+5507: "moved-keys": len(keys),
__pyx_t_17 = PyObject_Length(__pyx_cur_scope->__pyx_v_keys); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5507, __pyx_L19_error) __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_17); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5507, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_3, __pyx_kp_u_moved_keys_2, __pyx_t_2) < 0) __PYX_ERR(0, 5505, __pyx_L19_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_n_u_all, __pyx_t_3}; __pyx_t_23 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5502, __pyx_L19_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_n_u_all, __pyx_t_3}; __pyx_t_23 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5502, __pyx_L19_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_1 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5502, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_n_u_all); __Pyx_GIVEREF(__pyx_n_u_all); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_15, __pyx_n_u_all); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_15, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_23 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5502, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
5508: },
5509: )
+5510: self.log_event(list(worker_keys), {"action": "retired"})
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_log_event_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5510, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PySequence_List(__pyx_cur_scope->__pyx_v_worker_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5510, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5510, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_action, __pyx_n_u_retired) < 0) __PYX_ERR(0, 5510, __pyx_L19_error) __pyx_t_2 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_1, __pyx_t_3}; __pyx_t_23 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5510, __pyx_L19_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_1, __pyx_t_3}; __pyx_t_23 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5510, __pyx_L19_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_24 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5510, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_24); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_24, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_24, 0+__pyx_t_15, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_24, 1+__pyx_t_15, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_23 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_24, NULL); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5510, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
5511:
+5512: return worker_keys
__Pyx_XDECREF(__pyx_r); __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_cur_scope->__pyx_v_worker_keys); goto __pyx_L23_try_return;
5513:
+5514: def add_keys(self, comm=None, worker=None, keys=()):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_133add_keys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_132add_keys[] = "\n Learn that a worker has certain keys\n\n This should not be used in practice and is mostly here for legacy\n reasons. However, it is sent by workers from time to time.\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_133add_keys = {"add_keys", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_133add_keys, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_132add_keys};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_133add_keys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_worker = 0;
PyObject *__pyx_v_keys = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("add_keys (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_worker,&__pyx_n_s_keys,0};
PyObject* values[4] = {0,0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject*)__pyx_empty_tuple));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keys);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "add_keys") < 0)) __PYX_ERR(0, 5514, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_worker = values[2];
__pyx_v_keys = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("add_keys", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5514, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.add_keys", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_132add_keys(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_worker, __pyx_v_keys);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_132add_keys(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_worker, PyObject *__pyx_v_keys) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_v_key = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("add_keys", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.add_keys", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF(__pyx_v_key);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__297 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_worker, __pyx_n_s_keys, __pyx_n_s_parent, __pyx_n_s_ws, __pyx_n_s_key, __pyx_n_s_ts); if (unlikely(!__pyx_tuple__297)) __PYX_ERR(0, 5514, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__297);
__Pyx_GIVEREF(__pyx_tuple__297);
__pyx_codeobj__298 = (PyObject*)__Pyx_PyCode_New(4, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__297, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_add_keys_2, 5514, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__298)) __PYX_ERR(0, 5514, __pyx_L1_error)
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_133add_keys, 0, __pyx_n_s_Scheduler_add_keys, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__298)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5514, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__299);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_add_keys_2, __pyx_t_2) < 0) __PYX_ERR(0, 5514, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__299 = PyTuple_Pack(3, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject*)__pyx_empty_tuple)); if (unlikely(!__pyx_tuple__299)) __PYX_ERR(0, 5514, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__299);
__Pyx_GIVEREF(__pyx_tuple__299);
5515: """
5516: Learn that a worker has certain keys
5517:
5518: This should not be used in practice and is mostly here for legacy
5519: reasons. However, it is sent by workers from time to time.
5520: """
+5521: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+5522: if worker not in parent._workers_dv:
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5522, __pyx_L1_error)
}
__pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_worker, __pyx_v_parent->_workers_dv, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5522, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
}
+5523: return "not found"
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_kp_u_not_found); __pyx_r = __pyx_kp_u_not_found; goto __pyx_L0;
+5524: ws: WorkerState = parent._workers_dv[worker]
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5524, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_parent->_workers_dv, __pyx_v_worker); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5524, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5524, __pyx_L1_error)
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1);
__pyx_t_1 = 0;
+5525: for key in keys:
if (likely(PyList_CheckExact(__pyx_v_keys)) || PyTuple_CheckExact(__pyx_v_keys)) { __pyx_t_1 = __pyx_v_keys; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5525, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_5)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5525, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5525, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif } } else { __pyx_t_6 = __pyx_t_5(__pyx_t_1); if (unlikely(!__pyx_t_6)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5525, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_6); } __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_6); __pyx_t_6 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5526: ts: TaskState = parent._tasks.get(key)
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 5526, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItemDefault(__pyx_v_parent->_tasks, __pyx_v_key, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5526, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5526, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6));
__pyx_t_6 = 0;
+5527: if ts is not None and ts._state == "memory":
__pyx_t_2 = (((PyObject *)__pyx_v_ts) != Py_None);
__pyx_t_7 = (__pyx_t_2 != 0);
if (__pyx_t_7) {
} else {
__pyx_t_3 = __pyx_t_7;
goto __pyx_L7_bool_binop_done;
}
__pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_memory_2, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 5527, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_7 != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L7_bool_binop_done:;
if (__pyx_t_3) {
/* … */
goto __pyx_L6;
}
+5528: if ts not in ws._has_what:
if (unlikely(__pyx_v_ws->_has_what == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5528, __pyx_L1_error)
}
__pyx_t_3 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_ws->_has_what, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5528, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
/* … */
}
+5529: ws._nbytes += ts.get_nbytes()
__pyx_t_8 = __pyx_f_11distributed_9scheduler_9TaskState_get_nbytes(__pyx_v_ts, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 5529, __pyx_L1_error)
__pyx_v_ws->_nbytes = (__pyx_v_ws->_nbytes + __pyx_t_8);
+5530: ws._has_what.add(ts)
if (unlikely(__pyx_v_ws->_has_what == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 5530, __pyx_L1_error)
}
__pyx_t_9 = PySet_Add(__pyx_v_ws->_has_what, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 5530, __pyx_L1_error)
+5531: ts._who_has.add(ws)
if (unlikely(__pyx_v_ts->_who_has == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 5531, __pyx_L1_error)
}
__pyx_t_9 = PySet_Add(__pyx_v_ts->_who_has, ((PyObject *)__pyx_v_ws)); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 5531, __pyx_L1_error)
5532: else:
+5533: self.worker_send(
/*else*/ {
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_worker_send); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5533, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
+5534: worker, {"op": "delete-data", "keys": [key], "report": False}
__pyx_t_11 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (PyDict_SetItem(__pyx_t_11, __pyx_n_u_op, __pyx_kp_u_delete_data) < 0) __PYX_ERR(0, 5534, __pyx_L1_error) __pyx_t_12 = PyList_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyList_SET_ITEM(__pyx_t_12, 0, __pyx_v_key); if (PyDict_SetItem(__pyx_t_11, __pyx_n_u_keys, __pyx_t_12) < 0) __PYX_ERR(0, 5534, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (PyDict_SetItem(__pyx_t_11, __pyx_n_u_report, Py_False) < 0) __PYX_ERR(0, 5534, __pyx_L1_error) __pyx_t_12 = NULL; __pyx_t_13 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_13 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_v_worker, __pyx_t_11}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5533, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_v_worker, __pyx_t_11}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5533, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif { __pyx_t_14 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_INCREF(__pyx_v_worker); __Pyx_GIVEREF(__pyx_v_worker); PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_13, __pyx_v_worker); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_13, __pyx_t_11); __pyx_t_11 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_14, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_L6:;
5535: )
5536:
+5537: return "OK"
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_n_u_OK); __pyx_r = __pyx_n_u_OK; goto __pyx_L0;
5538:
+5539: def update_data(
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_135update_data(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_134update_data[] = "\n Learn that new data has entered the network from an external source\n\n See Also\n --------\n Scheduler.mark_key_in_memory\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_135update_data = {"update_data", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_135update_data, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_134update_data};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_135update_data(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_who_has = 0;
PyObject *__pyx_v_nbytes = 0;
PyObject *__pyx_v_client = 0;
CYTHON_UNUSED PyObject *__pyx_v_serializers = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("update_data (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_who_has,&__pyx_n_s_nbytes,&__pyx_n_s_client,&__pyx_n_s_serializers,0};
PyObject* values[6] = {0,0,0,0,0,0};
/* … */
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_134update_data(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_who_has, PyObject *__pyx_v_nbytes, PyObject *__pyx_v_client, CYTHON_UNUSED PyObject *__pyx_v_serializers) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_v_key = NULL;
PyObject *__pyx_v_workers = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_v_w = NULL;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_10genexpr107__pyx_v_k = NULL;
PyObject *__pyx_10genexpr107__pyx_v_v = NULL;
PyObject *__pyx_10genexpr108__pyx_v_vv = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("update_data", 0);
__Pyx_INCREF(__pyx_v_who_has);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.update_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_v_key);
__Pyx_XDECREF(__pyx_v_workers);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF(__pyx_v_w);
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF(__pyx_10genexpr107__pyx_v_k);
__Pyx_XDECREF(__pyx_10genexpr107__pyx_v_v);
__Pyx_XDECREF(__pyx_10genexpr108__pyx_v_vv);
__Pyx_XDECREF(__pyx_v_who_has);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__300 = PyTuple_Pack(15, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_who_has, __pyx_n_s_nbytes, __pyx_n_s_client, __pyx_n_s_serializers, __pyx_n_s_parent, __pyx_n_s_key, __pyx_n_s_workers, __pyx_n_s_ts, __pyx_n_s_w, __pyx_n_s_ws, __pyx_n_s_k, __pyx_n_s_v, __pyx_n_s_vv); if (unlikely(!__pyx_tuple__300)) __PYX_ERR(0, 5539, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__300);
__Pyx_GIVEREF(__pyx_tuple__300);
__pyx_codeobj__301 = (PyObject*)__Pyx_PyCode_New(6, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__300, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_update_data_2, 5539, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__301)) __PYX_ERR(0, 5539, __pyx_L1_error)
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_135update_data, 0, __pyx_n_s_Scheduler_update_data, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__301)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5539, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__302);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_update_data_2, __pyx_t_2) < 0) __PYX_ERR(0, 5539, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__302 = PyTuple_Pack(5, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__302)) __PYX_ERR(0, 5539, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__302);
__Pyx_GIVEREF(__pyx_tuple__302);
+5540: self, comm=None, who_has=None, nbytes=None, client=None, serializers=None
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject *)Py_None));
values[4] = ((PyObject *)((PyObject *)Py_None));
values[5] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_who_has);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nbytes);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_client);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_serializers);
if (value) { values[5] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "update_data") < 0)) __PYX_ERR(0, 5539, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_who_has = values[2];
__pyx_v_nbytes = values[3];
__pyx_v_client = values[4];
__pyx_v_serializers = values[5];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("update_data", 0, 1, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5539, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.update_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_134update_data(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_who_has, __pyx_v_nbytes, __pyx_v_client, __pyx_v_serializers);
5541: ):
5542: """
5543: Learn that new data has entered the network from an external source
5544:
5545: See Also
5546: --------
5547: Scheduler.mark_key_in_memory
5548: """
+5549: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+5550: with log_errors():
/*with:*/ {
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_log_errors); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5550, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
}
}
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5550, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5550, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5550, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5550, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/*try:*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
goto __pyx_L12_try_end;
__pyx_L7_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.update_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_3, &__pyx_t_1) < 0) __PYX_ERR(0, 5550, __pyx_L9_except_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_15 = PyTuple_Pack(3, __pyx_t_5, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5550, __pyx_L9_except_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_15, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5550, __pyx_L9_except_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_t_22);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
if (__pyx_t_19 < 0) __PYX_ERR(0, 5550, __pyx_L9_except_error)
__pyx_t_18 = ((!(__pyx_t_19 != 0)) != 0);
if (__pyx_t_18) {
__Pyx_GIVEREF(__pyx_t_5);
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_ErrRestoreWithState(__pyx_t_5, __pyx_t_3, __pyx_t_1);
__pyx_t_5 = 0; __pyx_t_3 = 0; __pyx_t_1 = 0;
__PYX_ERR(0, 5550, __pyx_L9_except_error)
}
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L8_exception_handled;
}
__pyx_L9_except_error:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L1_error;
__pyx_L8_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
__pyx_L12_try_end:;
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_4) {
__pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5550, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
goto __pyx_L6;
}
__pyx_L6:;
}
goto __pyx_L36;
__pyx_L3_error:;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L1_error;
__pyx_L36:;
}
+5551: who_has = {
{ /* enter inner scope */
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5551, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_1);
+5552: k: [self.coerce_address(vv) for vv in v] for k, v in who_has.items()
__pyx_t_9 = 0;
if (unlikely(__pyx_v_who_has == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 5552, __pyx_L15_error)
}
__pyx_t_3 = __Pyx_dict_iterator(__pyx_v_who_has, 0, __pyx_n_s_items, (&__pyx_t_10), (&__pyx_t_11)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5552, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_2);
__pyx_t_2 = __pyx_t_3;
__pyx_t_3 = 0;
while (1) {
__pyx_t_12 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_10, &__pyx_t_9, &__pyx_t_3, &__pyx_t_5, NULL, __pyx_t_11);
if (unlikely(__pyx_t_12 == 0)) break;
if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 5552, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF_SET(__pyx_10genexpr107__pyx_v_k, __pyx_t_3);
__pyx_t_3 = 0;
__Pyx_XDECREF_SET(__pyx_10genexpr107__pyx_v_v, __pyx_t_5);
__pyx_t_5 = 0;
{ /* enter inner scope */
__pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5552, __pyx_L20_error)
__Pyx_GOTREF(__pyx_t_5);
if (likely(PyList_CheckExact(__pyx_10genexpr107__pyx_v_v)) || PyTuple_CheckExact(__pyx_10genexpr107__pyx_v_v)) {
__pyx_t_3 = __pyx_10genexpr107__pyx_v_v; __Pyx_INCREF(__pyx_t_3); __pyx_t_13 = 0;
__pyx_t_14 = NULL;
} else {
__pyx_t_13 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_10genexpr107__pyx_v_v); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5552, __pyx_L20_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_14 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5552, __pyx_L20_error)
}
for (;;) {
if (likely(!__pyx_t_14)) {
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_15 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_13); __Pyx_INCREF(__pyx_t_15); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 5552, __pyx_L20_error)
#else
__pyx_t_15 = PySequence_ITEM(__pyx_t_3, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5552, __pyx_L20_error)
__Pyx_GOTREF(__pyx_t_15);
#endif
} else {
if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_15 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_13); __Pyx_INCREF(__pyx_t_15); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 5552, __pyx_L20_error)
#else
__pyx_t_15 = PySequence_ITEM(__pyx_t_3, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5552, __pyx_L20_error)
__Pyx_GOTREF(__pyx_t_15);
#endif
}
} else {
__pyx_t_15 = __pyx_t_14(__pyx_t_3);
if (unlikely(!__pyx_t_15)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5552, __pyx_L20_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_15);
}
__Pyx_XDECREF_SET(__pyx_10genexpr108__pyx_v_vv, __pyx_t_15);
__pyx_t_15 = 0;
__pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_coerce_address); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5552, __pyx_L20_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_17 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) {
__pyx_t_17 = PyMethod_GET_SELF(__pyx_t_16);
if (likely(__pyx_t_17)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
__Pyx_INCREF(__pyx_t_17);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_16, function);
}
}
__pyx_t_15 = (__pyx_t_17) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_17, __pyx_10genexpr108__pyx_v_vv) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_10genexpr108__pyx_v_vv);
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5552, __pyx_L20_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_t_15))) __PYX_ERR(0, 5552, __pyx_L20_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_10genexpr108__pyx_v_vv); __pyx_10genexpr108__pyx_v_vv = 0;
goto __pyx_L23_exit_scope;
__pyx_L20_error:;
__Pyx_XDECREF(__pyx_10genexpr108__pyx_v_vv); __pyx_10genexpr108__pyx_v_vv = 0;
goto __pyx_L15_error;
__pyx_L23_exit_scope:;
} /* exit inner scope */
if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_10genexpr107__pyx_v_k, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 5552, __pyx_L15_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_10genexpr107__pyx_v_k); __pyx_10genexpr107__pyx_v_k = 0;
__Pyx_XDECREF(__pyx_10genexpr107__pyx_v_v); __pyx_10genexpr107__pyx_v_v = 0;
goto __pyx_L24_exit_scope;
__pyx_L15_error:;
__Pyx_XDECREF(__pyx_10genexpr107__pyx_v_k); __pyx_10genexpr107__pyx_v_k = 0;
__Pyx_XDECREF(__pyx_10genexpr107__pyx_v_v); __pyx_10genexpr107__pyx_v_v = 0;
goto __pyx_L7_error;
__pyx_L24_exit_scope:;
} /* exit inner scope */
__Pyx_DECREF_SET(__pyx_v_who_has, __pyx_t_1);
__pyx_t_1 = 0;
5553: }
+5554: logger.debug("Update data %s", who_has)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logger); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5554, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_debug); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5554, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_11 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_11 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_u_Update_data_s, __pyx_v_who_has}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5554, __pyx_L7_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_u_Update_data_s, __pyx_v_who_has}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5554, __pyx_L7_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_3 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5554, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_kp_u_Update_data_s); __Pyx_GIVEREF(__pyx_kp_u_Update_data_s); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_11, __pyx_kp_u_Update_data_s); __Pyx_INCREF(__pyx_v_who_has); __Pyx_GIVEREF(__pyx_v_who_has); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_11, __pyx_v_who_has); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5554, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5555:
+5556: for key, workers in who_has.items():
__pyx_t_10 = 0;
__pyx_t_5 = __Pyx_dict_iterator(__pyx_v_who_has, 0, __pyx_n_s_items, (&__pyx_t_9), (&__pyx_t_11)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5556, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_5;
__pyx_t_5 = 0;
while (1) {
__pyx_t_12 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_10, &__pyx_t_5, &__pyx_t_3, NULL, __pyx_t_11);
if (unlikely(__pyx_t_12 == 0)) break;
if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 5556, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_5);
__pyx_t_5 = 0;
__Pyx_XDECREF_SET(__pyx_v_workers, __pyx_t_3);
__pyx_t_3 = 0;
+5557: ts: TaskState = parent._tasks.get(key)
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 5557, __pyx_L7_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_parent->_tasks, __pyx_v_key, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5557, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5557, __pyx_L7_error)
__Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_3));
__pyx_t_3 = 0;
+5558: if ts is None:
__pyx_t_18 = (((PyObject *)__pyx_v_ts) == Py_None);
__pyx_t_19 = (__pyx_t_18 != 0);
if (__pyx_t_19) {
/* … */
}
+5559: ts: TaskState = self.new_task(key, None, "memory")
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_new_task); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5559, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = NULL; __pyx_t_12 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_12 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_v_key, Py_None, __pyx_n_u_memory_2}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5559, __pyx_L7_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_v_key, Py_None, __pyx_n_u_memory_2}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5559, __pyx_L7_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif { __pyx_t_15 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5559, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_12, __pyx_v_key); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_12, Py_None); __Pyx_INCREF(__pyx_n_u_memory_2); __Pyx_GIVEREF(__pyx_n_u_memory_2); PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_12, __pyx_n_u_memory_2); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_15, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5559, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5559, __pyx_L7_error) __Pyx_DECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_3)); __pyx_t_3 = 0;
+5560: ts.state = "memory"
if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_ts), __pyx_n_s_state, __pyx_n_u_memory_2) < 0) __PYX_ERR(0, 5560, __pyx_L7_error)
+5561: if key in nbytes:
__pyx_t_19 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_v_nbytes, Py_EQ)); if (unlikely(__pyx_t_19 < 0)) __PYX_ERR(0, 5561, __pyx_L7_error) __pyx_t_18 = (__pyx_t_19 != 0); if (__pyx_t_18) { /* … */ }
+5562: ts.set_nbytes(nbytes[key])
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_nbytes, __pyx_v_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5562, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_13 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_13 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 5562, __pyx_L7_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_f_11distributed_9scheduler_9TaskState_set_nbytes(__pyx_v_ts, __pyx_t_13, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5562, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5563: for w in workers:
if (likely(PyList_CheckExact(__pyx_v_workers)) || PyTuple_CheckExact(__pyx_v_workers)) { __pyx_t_3 = __pyx_v_workers; __Pyx_INCREF(__pyx_t_3); __pyx_t_13 = 0; __pyx_t_14 = NULL; } else { __pyx_t_13 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_workers); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5563, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_14 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5563, __pyx_L7_error) } for (;;) { if (likely(!__pyx_t_14)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 5563, __pyx_L7_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5563, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 5563, __pyx_L7_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5563, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_5); #endif } } else { __pyx_t_5 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5563, __pyx_L7_error) } break; } __Pyx_GOTREF(__pyx_t_5); } __Pyx_XDECREF_SET(__pyx_v_w, __pyx_t_5); __pyx_t_5 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5564: ws: WorkerState = parent._workers_dv[w]
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5564, __pyx_L7_error)
}
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_parent->_workers_dv, __pyx_v_w); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5564, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5564, __pyx_L7_error)
__Pyx_XDECREF_SET(__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_5));
__pyx_t_5 = 0;
+5565: if ts not in ws._has_what:
if (unlikely(__pyx_v_ws->_has_what == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5565, __pyx_L7_error)
}
__pyx_t_18 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_ws->_has_what, Py_NE)); if (unlikely(__pyx_t_18 < 0)) __PYX_ERR(0, 5565, __pyx_L7_error)
__pyx_t_19 = (__pyx_t_18 != 0);
if (__pyx_t_19) {
/* … */
}
+5566: ws._nbytes += ts.get_nbytes()
__pyx_t_20 = __pyx_f_11distributed_9scheduler_9TaskState_get_nbytes(__pyx_v_ts, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 5566, __pyx_L7_error)
__pyx_v_ws->_nbytes = (__pyx_v_ws->_nbytes + __pyx_t_20);
+5567: ws._has_what.add(ts)
if (unlikely(__pyx_v_ws->_has_what == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 5567, __pyx_L7_error)
}
__pyx_t_21 = PySet_Add(__pyx_v_ws->_has_what, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_21 == ((int)-1))) __PYX_ERR(0, 5567, __pyx_L7_error)
+5568: ts._who_has.add(ws)
if (unlikely(__pyx_v_ts->_who_has == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 5568, __pyx_L7_error)
}
__pyx_t_21 = PySet_Add(__pyx_v_ts->_who_has, ((PyObject *)__pyx_v_ws)); if (unlikely(__pyx_t_21 == ((int)-1))) __PYX_ERR(0, 5568, __pyx_L7_error)
+5569: self.report(
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_report); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5569, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_5);
+5570: {"op": "key-in-memory", "key": key, "workers": list(workers)}
__pyx_t_15 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5570, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_15); if (PyDict_SetItem(__pyx_t_15, __pyx_n_u_op, __pyx_kp_u_key_in_memory) < 0) __PYX_ERR(0, 5570, __pyx_L7_error) if (PyDict_SetItem(__pyx_t_15, __pyx_n_u_key, __pyx_v_key) < 0) __PYX_ERR(0, 5570, __pyx_L7_error) __pyx_t_2 = PySequence_List(__pyx_v_workers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5570, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_15, __pyx_n_u_workers, __pyx_t_2) < 0) __PYX_ERR(0, 5570, __pyx_L7_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_2, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_15); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5569, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5571: )
5572:
+5573: if client:
__pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_v_client); if (unlikely(__pyx_t_19 < 0)) __PYX_ERR(0, 5573, __pyx_L7_error) if (__pyx_t_19) { /* … */ }
+5574: self.client_desires_keys(keys=list(who_has), client=client)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_client_desires_keys_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5574, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5574, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PySequence_List(__pyx_v_who_has); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5574, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_keys, __pyx_t_5) < 0) __PYX_ERR(0, 5574, __pyx_L7_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_client, __pyx_v_client) < 0) __PYX_ERR(0, 5574, __pyx_L7_error) __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5574, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
5575:
+5576: def report_on_key(self, key: str = None, ts: TaskState = None, client: str = None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_137report_on_key(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_137report_on_key = {"report_on_key", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_137report_on_key, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_137report_on_key(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_v_client = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("report_on_key (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,&__pyx_n_s_ts,&__pyx_n_s_client,0};
PyObject* values[4] = {0,0,0,0};
values[1] = ((PyObject*)((PyObject *)Py_None));
values[2] = (PyObject *)((struct __pyx_obj_11distributed_9scheduler_TaskState *)((PyObject *)Py_None));
values[3] = ((PyObject*)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ts);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_client);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "report_on_key") < 0)) __PYX_ERR(0, 5576, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_key = ((PyObject*)values[1]);
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)values[2]);
__pyx_v_client = ((PyObject*)values[3]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("report_on_key", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5576, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.report_on_key", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_key), (&PyUnicode_Type), 1, "key", 1))) __PYX_ERR(0, 5576, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ts), __pyx_ptype_11distributed_9scheduler_TaskState, 1, "ts", 0))) __PYX_ERR(0, 5576, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_client), (&PyUnicode_Type), 1, "client", 1))) __PYX_ERR(0, 5576, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_136report_on_key(__pyx_self, __pyx_v_self, __pyx_v_key, __pyx_v_ts, __pyx_v_client);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_136report_on_key(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts, PyObject *__pyx_v_client) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_v_tasks = 0;
PyObject *__pyx_v_report_msg = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("report_on_key", 0);
__Pyx_INCREF(__pyx_v_key);
__Pyx_INCREF((PyObject *)__pyx_v_ts);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.report_on_key", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_v_tasks);
__Pyx_XDECREF(__pyx_v_report_msg);
__Pyx_XDECREF(__pyx_v_key);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_140generator17(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__303 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_ts, __pyx_n_s_client, __pyx_n_s_parent, __pyx_n_s_tasks, __pyx_n_s_report_msg); if (unlikely(!__pyx_tuple__303)) __PYX_ERR(0, 5576, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__303);
__Pyx_GIVEREF(__pyx_tuple__303);
__pyx_codeobj__304 = (PyObject*)__Pyx_PyCode_New(4, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__303, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_report_on_key, 5576, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__304)) __PYX_ERR(0, 5576, __pyx_L1_error)
/* … */
__pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5576, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_key, __pyx_n_u_unicode) < 0) __PYX_ERR(0, 5576, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ts, __pyx_n_u_TaskState) < 0) __PYX_ERR(0, 5576, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_client, __pyx_n_u_unicode) < 0) __PYX_ERR(0, 5576, __pyx_L1_error)
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_137report_on_key, 0, __pyx_n_s_Scheduler_report_on_key, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__304)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5576, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__305);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_12, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_report_on_key, __pyx_t_12) < 0) __PYX_ERR(0, 5576, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__305 = PyTuple_Pack(3, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__305)) __PYX_ERR(0, 5576, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__305);
__Pyx_GIVEREF(__pyx_tuple__305);
+5577: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+5578: if ts is None:
__pyx_t_2 = (((PyObject *)__pyx_v_ts) == Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
goto __pyx_L3;
}
+5579: tasks: dict = parent._tasks
__pyx_t_1 = __pyx_v_parent->_tasks;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_tasks = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+5580: ts = tasks.get(key)
if (unlikely(__pyx_v_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 5580, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_tasks, __pyx_v_key, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5580, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5580, __pyx_L1_error)
__Pyx_DECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1));
__pyx_t_1 = 0;
+5581: elif key is None:
__pyx_t_3 = (__pyx_v_key == ((PyObject*)Py_None));
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L3;
}
+5582: key = ts._key
__pyx_t_1 = __pyx_v_ts->_key;
__Pyx_INCREF(__pyx_t_1);
__Pyx_DECREF_SET(__pyx_v_key, ((PyObject*)__pyx_t_1));
__pyx_t_1 = 0;
5583: else:
+5584: assert False, (key, ts)
/*else*/ {
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(!0)) {
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5584, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_v_key);
__Pyx_GIVEREF(__pyx_v_key);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_key);
__Pyx_INCREF(((PyObject *)__pyx_v_ts));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ts));
PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_ts));
__pyx_t_4 = PyTuple_Pack(1, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5584, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyErr_SetObject(PyExc_AssertionError, __pyx_t_4);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__PYX_ERR(0, 5584, __pyx_L1_error)
}
}
#endif
+5585: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; } __pyx_L3:;
5586:
+5587: report_msg: dict = _task_to_report_msg(parent, ts)
__pyx_t_4 = __pyx_f_11distributed_9scheduler__task_to_report_msg(__pyx_v_parent, __pyx_v_ts); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_report_msg = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+5588: if report_msg is not None:
__pyx_t_2 = (__pyx_v_report_msg != ((PyObject*)Py_None));
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
}
+5589: self.report(report_msg, ts=ts, client=client)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_report); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_report_msg); __Pyx_GIVEREF(__pyx_v_report_msg); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_report_msg); __pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_ts, ((PyObject *)__pyx_v_ts)) < 0) __PYX_ERR(0, 5589, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_client, __pyx_v_client) < 0) __PYX_ERR(0, 5589, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5590:
+5591: async def feed(
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_139feed(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_138feed[] = "\n Provides a data Comm to external requester\n\n Caution: this runs arbitrary Python code on the scheduler. This should\n eventually be phased out. It is mostly used by diagnostics.\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_139feed = {"feed", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_139feed, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_138feed};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_139feed(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_function = 0;
PyObject *__pyx_v_setup = 0;
PyObject *__pyx_v_teardown = 0;
PyObject *__pyx_v_interval = 0;
CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("feed (wrapper)", 0);
__pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
__Pyx_GOTREF(__pyx_v_kwargs);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_function,&__pyx_n_s_setup,&__pyx_n_s_teardown,&__pyx_n_s_interval,0};
PyObject* values[6] = {0,0,0,0,0,0};
/* … */
/* function exit code */
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_138feed(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_comm, PyObject *__pyx_v_function, PyObject *__pyx_v_setup, PyObject *__pyx_v_teardown, PyObject *__pyx_v_interval, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_44_feed *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("feed", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_44_feed *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_44_feed(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_44_feed, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_44_feed *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 5591, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_comm = __pyx_v_comm;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm);
__pyx_cur_scope->__pyx_v_function = __pyx_v_function;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_function);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_function);
__pyx_cur_scope->__pyx_v_setup = __pyx_v_setup;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_setup);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_setup);
__pyx_cur_scope->__pyx_v_teardown = __pyx_v_teardown;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_teardown);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_teardown);
__pyx_cur_scope->__pyx_v_interval = __pyx_v_interval;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_interval);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_interval);
__pyx_cur_scope->__pyx_v_kwargs = __pyx_v_kwargs;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_kwargs);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_kwargs);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_140generator17, __pyx_codeobj__81, (PyObject *) __pyx_cur_scope, __pyx_n_s_feed, __pyx_n_s_Scheduler_feed, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 5591, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.feed", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_140generator17(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("feed", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5591, __pyx_L1_error)
/* … */
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_AddTraceback("feed", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__306 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_function, __pyx_n_s_setup, __pyx_n_s_teardown, __pyx_n_s_interval, __pyx_n_s_kwargs, __pyx_n_s_state, __pyx_n_s_response); if (unlikely(!__pyx_tuple__306)) __PYX_ERR(0, 5591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__306);
__Pyx_GIVEREF(__pyx_tuple__306);
__pyx_codeobj__81 = (PyObject*)__Pyx_PyCode_New(6, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__306, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_feed, 5591, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__81)) __PYX_ERR(0, 5591, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_139feed, 0, __pyx_n_s_Scheduler_feed, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__81)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__307);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_feed, __pyx_t_12) < 0) __PYX_ERR(0, 5591, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__307 = PyTuple_Pack(4, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject*)__pyx_kp_u_1s)); if (unlikely(!__pyx_tuple__307)) __PYX_ERR(0, 5591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__307);
__Pyx_GIVEREF(__pyx_tuple__307);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_44_feed {
PyObject_HEAD
PyObject *__pyx_v_comm;
PyObject *__pyx_v_function;
PyObject *__pyx_v_interval;
PyObject *__pyx_v_kwargs;
PyObject *__pyx_v_response;
PyObject *__pyx_v_self;
PyObject *__pyx_v_setup;
PyObject *__pyx_v_state;
PyObject *__pyx_v_teardown;
PyObject *__pyx_t_0;
PyObject *__pyx_t_1;
PyObject *__pyx_t_2;
PyObject *__pyx_t_3;
PyObject *__pyx_t_4;
PyObject *__pyx_t_5;
PyObject *__pyx_t_6;
};
+5592: self, comm, function=None, setup=None, teardown=None, interval="1s", **kwargs
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject *)Py_None));
values[4] = ((PyObject *)((PyObject *)Py_None));
values[5] = ((PyObject *)((PyObject*)__pyx_kp_u_1s));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("feed", 0, 2, 6, 1); __PYX_ERR(0, 5591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_function);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_setup);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_teardown);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interval);
if (value) { values[5] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "feed") < 0)) __PYX_ERR(0, 5591, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_function = values[2];
__pyx_v_setup = values[3];
__pyx_v_teardown = values[4];
__pyx_v_interval = values[5];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("feed", 0, 2, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5591, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_CLEAR(__pyx_v_kwargs);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.feed", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_138feed(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_function, __pyx_v_setup, __pyx_v_teardown, __pyx_v_interval, __pyx_v_kwargs);
5593: ):
5594: """
5595: Provides a data Comm to external requester
5596:
5597: Caution: this runs arbitrary Python code on the scheduler. This should
5598: eventually be phased out. It is mostly used by diagnostics.
5599: """
+5600: if not dask.config.get("distributed.scheduler.pickle"):
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_dask); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5600, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_config); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5600, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5600, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_u_distributed_scheduler_pickle) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_u_distributed_scheduler_pickle); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5600, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 5600, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_5 = ((!__pyx_t_4) != 0); if (__pyx_t_5) { /* … */ }
+5601: logger.warn(
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logger); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_warn); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_kp_u_Tried_to_call_feed_route_with_cu) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_u_Tried_to_call_feed_route_with_cu); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5602: "Tried to call 'feed' route with custom functions, but "
5603: "pickle is disallowed. Set the 'distributed.scheduler.pickle'"
5604: "config value to True to use the 'feed' route (this is mostly "
5605: "commonly used with progress bars)"
5606: )
+5607: return
__Pyx_XDECREF(__pyx_r);
__pyx_r = NULL;
goto __pyx_L0;
5608:
+5609: interval = parse_timedelta(interval)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_parse_timedelta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_cur_scope->__pyx_v_interval) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_cur_scope->__pyx_v_interval); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_interval); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_interval, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0;
+5610: with log_errors():
/*with:*/ {
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_log_errors); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5610, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_2)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5610, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5610, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5610, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_7 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_7)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_7);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
}
}
__pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5610, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/*try:*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
goto __pyx_L14_try_end;
__pyx_L9_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.feed", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_7, &__pyx_t_3) < 0) __PYX_ERR(0, 5610, __pyx_L11_except_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_t_7);
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_7, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5610, __pyx_L11_except_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5610, __pyx_L11_except_error)
__Pyx_GOTREF(__pyx_t_19);
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_19);
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
if (__pyx_t_4 < 0) __PYX_ERR(0, 5610, __pyx_L11_except_error)
__pyx_t_5 = ((!(__pyx_t_4 != 0)) != 0);
if (__pyx_t_5) {
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_7, __pyx_t_3);
__pyx_t_2 = 0; __pyx_t_7 = 0; __pyx_t_3 = 0;
__PYX_ERR(0, 5610, __pyx_L11_except_error)
}
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
goto __pyx_L10_exception_handled;
}
__pyx_L11_except_error:;
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
goto __pyx_L1_error;
__pyx_L10_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
__pyx_L14_try_end:;
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_6) {
__pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5610, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
}
goto __pyx_L8;
}
__pyx_L8:;
}
goto __pyx_L41;
__pyx_L5_error:;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
goto __pyx_L1_error;
__pyx_L41:;
}
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
+5611: if function:
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_function); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5611, __pyx_L9_error) if (__pyx_t_5) { /* … */ }
+5612: function = pickle.loads(function)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pickle); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5612, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_loads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5612, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_cur_scope->__pyx_v_function) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_cur_scope->__pyx_v_function); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5612, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_function); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_function, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0;
+5613: if setup:
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_setup); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5613, __pyx_L9_error) if (__pyx_t_5) { /* … */ }
+5614: setup = pickle.loads(setup)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pickle); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5614, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_loads); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5614, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_cur_scope->__pyx_v_setup) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_cur_scope->__pyx_v_setup); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5614, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_setup); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_setup, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0;
+5615: if teardown:
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_teardown); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5615, __pyx_L9_error) if (__pyx_t_5) { /* … */ }
+5616: teardown = pickle.loads(teardown)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pickle); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5616, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_loads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5616, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_cur_scope->__pyx_v_teardown) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_cur_scope->__pyx_v_teardown); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5616, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_teardown); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_teardown, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0;
+5617: state = setup(self) if setup else None
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_setup); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5617, __pyx_L9_error) if (__pyx_t_5) { __Pyx_INCREF(__pyx_cur_scope->__pyx_v_setup); __pyx_t_3 = __pyx_cur_scope->__pyx_v_setup; __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_7, __pyx_cur_scope->__pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_cur_scope->__pyx_v_self); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5617, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __pyx_t_2; __pyx_t_2 = 0; } else { __Pyx_INCREF(Py_None); __pyx_t_1 = Py_None; } __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_state = __pyx_t_1; __pyx_t_1 = 0;
+5618: if inspect.isawaitable(state):
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_inspect); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5618, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_isawaitable); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5618, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_cur_scope->__pyx_v_state) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_cur_scope->__pyx_v_state); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5618, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5618, __pyx_L9_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { /* … */ }
+5619: state = await state
__pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_cur_scope->__pyx_v_state); __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_0 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_1 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_2 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_3 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L19_resume_from_await:; __pyx_t_6 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_8 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_9); __pyx_t_10 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5619, __pyx_L9_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else { __pyx_t_1 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(0, 5619, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_state); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_state, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0;
+5620: try:
/*try:*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
goto __pyx_L28_try_end;
__pyx_L23_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
goto __pyx_L21_error;
__pyx_L24_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
__pyx_L28_try_end:;
}
}
+5621: while self.status == Status.running:
while (1) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5621, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Status); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5621, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_running); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5621, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5621, __pyx_L23_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5621, __pyx_L23_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (!__pyx_t_5) break;
+5622: if state is None:
__pyx_t_5 = (__pyx_cur_scope->__pyx_v_state == Py_None);
__pyx_t_4 = (__pyx_t_5 != 0);
if (__pyx_t_4) {
/* … */
goto __pyx_L31;
}
+5623: response = function(self)
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_function); __pyx_t_2 = __pyx_cur_scope->__pyx_v_function; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_cur_scope->__pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_cur_scope->__pyx_v_self); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5623, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_response); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_response, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0;
5624: else:
+5625: response = function(self, state)
/*else*/ {
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_function);
__pyx_t_2 = __pyx_cur_scope->__pyx_v_function; __pyx_t_1 = NULL;
__pyx_t_14 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_1)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
__pyx_t_14 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_2)) {
PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_cur_scope->__pyx_v_self, __pyx_cur_scope->__pyx_v_state};
__pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5625, __pyx_L23_error)
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_GOTREF(__pyx_t_3);
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_cur_scope->__pyx_v_self, __pyx_cur_scope->__pyx_v_state};
__pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5625, __pyx_L23_error)
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_GOTREF(__pyx_t_3);
} else
#endif
{
__pyx_t_7 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5625, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_7);
if (__pyx_t_1) {
__Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __pyx_t_1 = NULL;
}
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_14, __pyx_cur_scope->__pyx_v_self);
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_state);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_state);
PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_14, __pyx_cur_scope->__pyx_v_state);
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5625, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_response);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_response, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
}
__pyx_L31:;
+5626: await comm.write(response)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_comm, __pyx_n_s_write); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5626, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_7, __pyx_cur_scope->__pyx_v_response) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_cur_scope->__pyx_v_response); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5626, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_0 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_1 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_2 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_3 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_t_4 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_t_12); __pyx_cur_scope->__pyx_t_5 = __pyx_t_12; __Pyx_XGIVEREF(__pyx_t_13); __pyx_cur_scope->__pyx_t_6 = __pyx_t_13; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L32_resume_from_await:; __pyx_t_6 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_8 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_9); __pyx_t_10 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_11 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_11); __pyx_t_12 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_12); __pyx_t_13 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5626, __pyx_L23_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 5626, __pyx_L23_error) } }
+5627: await asyncio.sleep(interval)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5627, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_sleep); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5627, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_2, __pyx_cur_scope->__pyx_v_interval) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_cur_scope->__pyx_v_interval); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5627, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_0 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_1 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_2 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_3 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_t_4 = __pyx_t_11; __Pyx_XGIVEREF(__pyx_t_12); __pyx_cur_scope->__pyx_t_5 = __pyx_t_12; __Pyx_XGIVEREF(__pyx_t_13); __pyx_cur_scope->__pyx_t_6 = __pyx_t_13; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 3; return __pyx_r; __pyx_L33_resume_from_await:; __pyx_t_6 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_8 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_9); __pyx_t_10 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_11 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_11); __pyx_t_12 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_12); __pyx_t_13 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5627, __pyx_L23_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 5627, __pyx_L23_error) } } }
+5628: except (EnvironmentError, CommClosedError):
__Pyx_ErrFetch(&__pyx_t_3, &__pyx_t_7, &__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CommClosedError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5628, __pyx_L25_except_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_14 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_3, __pyx_builtin_EnvironmentError) || __Pyx_PyErr_GivenExceptionMatches(__pyx_t_3, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_ErrRestore(__pyx_t_3, __pyx_t_7, __pyx_t_2); __pyx_t_3 = 0; __pyx_t_7 = 0; __pyx_t_2 = 0; if (__pyx_t_14) { __Pyx_ErrRestore(0,0,0); goto __pyx_L24_exception_handled; } goto __pyx_L25_except_error; __pyx_L25_except_error:;
5629: pass
5630: finally:
+5631: if teardown:
/*finally:*/ {
/*normal exit:*/{
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_teardown); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 5631, __pyx_L9_error)
if (__pyx_t_4) {
/* … */
}
goto __pyx_L22;
}
__pyx_L21_error:;
/*exception exit:*/{
__Pyx_PyThreadState_assign
__pyx_t_13 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19);
if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_12, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_12, &__pyx_t_11);
__Pyx_XGOTREF(__pyx_t_13);
__Pyx_XGOTREF(__pyx_t_12);
__Pyx_XGOTREF(__pyx_t_11);
__Pyx_XGOTREF(__pyx_t_17);
__Pyx_XGOTREF(__pyx_t_18);
__Pyx_XGOTREF(__pyx_t_19);
__pyx_t_14 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_16 = __pyx_filename;
{
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_teardown); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 5631, __pyx_L36_error)
if (__pyx_t_4) {
/* … */
}
}
if (PY_MAJOR_VERSION >= 3) {
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
}
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_ErrRestore(__pyx_t_13, __pyx_t_12, __pyx_t_11);
__pyx_t_13 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
__pyx_lineno = __pyx_t_14; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_16;
goto __pyx_L9_error;
__pyx_L36_error:;
if (PY_MAJOR_VERSION >= 3) {
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
}
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
goto __pyx_L9_error;
}
__pyx_L22:;
}
+5632: teardown(self, state)
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_teardown); __pyx_t_7 = __pyx_cur_scope->__pyx_v_teardown; __pyx_t_3 = NULL; __pyx_t_14 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_14 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_self, __pyx_cur_scope->__pyx_v_state}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5632, __pyx_L9_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_self, __pyx_cur_scope->__pyx_v_state}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5632, __pyx_L9_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_1 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5632, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_14, __pyx_cur_scope->__pyx_v_self); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_state); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_state); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_14, __pyx_cur_scope->__pyx_v_state); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5632, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __Pyx_INCREF(__pyx_cur_scope->__pyx_v_teardown); __pyx_t_7 = __pyx_cur_scope->__pyx_v_teardown; __pyx_t_1 = NULL; __pyx_t_20 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_20 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_cur_scope->__pyx_v_self, __pyx_cur_scope->__pyx_v_state}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_20, 2+__pyx_t_20); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5632, __pyx_L36_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_cur_scope->__pyx_v_self, __pyx_cur_scope->__pyx_v_state}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_20, 2+__pyx_t_20); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5632, __pyx_L36_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_3 = PyTuple_New(2+__pyx_t_20); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5632, __pyx_L36_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_20, __pyx_cur_scope->__pyx_v_self); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_state); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_state); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_20, __pyx_cur_scope->__pyx_v_state); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5632, __pyx_L36_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5633:
+5634: def log_worker_event(self, worker=None, topic=None, msg=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_142log_worker_event(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_142log_worker_event = {"log_worker_event", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_142log_worker_event, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_142log_worker_event(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_worker = 0;
PyObject *__pyx_v_topic = 0;
PyObject *__pyx_v_msg = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("log_worker_event (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_worker,&__pyx_n_s_topic,&__pyx_n_s_msg,0};
PyObject* values[4] = {0,0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_topic);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_msg);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "log_worker_event") < 0)) __PYX_ERR(0, 5634, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_worker = values[1];
__pyx_v_topic = values[2];
__pyx_v_msg = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("log_worker_event", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5634, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.log_worker_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_141log_worker_event(__pyx_self, __pyx_v_self, __pyx_v_worker, __pyx_v_topic, __pyx_v_msg);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_141log_worker_event(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_worker, PyObject *__pyx_v_topic, PyObject *__pyx_v_msg) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("log_worker_event", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.log_worker_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__308 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_worker, __pyx_n_s_topic, __pyx_n_s_msg); if (unlikely(!__pyx_tuple__308)) __PYX_ERR(0, 5634, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__308);
__Pyx_GIVEREF(__pyx_tuple__308);
__pyx_codeobj__309 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__308, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_log_worker_event, 5634, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__309)) __PYX_ERR(0, 5634, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_142log_worker_event, 0, __pyx_n_s_Scheduler_log_worker_event, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__309)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5634, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__310);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_log_worker_event, __pyx_t_12) < 0) __PYX_ERR(0, 5634, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__310 = PyTuple_Pack(3, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__310)) __PYX_ERR(0, 5634, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__310);
__Pyx_GIVEREF(__pyx_tuple__310);
+5635: self.log_event(topic, msg)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_log_event_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_topic, __pyx_v_msg}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5635, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_topic, __pyx_v_msg}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5635, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_topic); __Pyx_GIVEREF(__pyx_v_topic); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_topic); __Pyx_INCREF(__pyx_v_msg); __Pyx_GIVEREF(__pyx_v_msg); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_msg); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5636:
+5637: def subscribe_worker_status(self, comm=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_144subscribe_worker_status(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_144subscribe_worker_status = {"subscribe_worker_status", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_144subscribe_worker_status, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_144subscribe_worker_status(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_comm = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("subscribe_worker_status (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,0};
PyObject* values[2] = {0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "subscribe_worker_status") < 0)) __PYX_ERR(0, 5637, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("subscribe_worker_status", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5637, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.subscribe_worker_status", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_143subscribe_worker_status(__pyx_self, __pyx_v_self, __pyx_v_comm);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_143subscribe_worker_status(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_comm) {
PyObject *__pyx_v_ident = NULL;
PyObject *__pyx_v_v = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("subscribe_worker_status", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.subscribe_worker_status", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_ident);
__Pyx_XDECREF(__pyx_v_v);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__311 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_ident, __pyx_n_s_v); if (unlikely(!__pyx_tuple__311)) __PYX_ERR(0, 5637, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__311);
__Pyx_GIVEREF(__pyx_tuple__311);
__pyx_codeobj__312 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__311, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_subscribe_worker_status, 5637, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__312)) __PYX_ERR(0, 5637, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_144subscribe_worker_status, 0, __pyx_n_s_Scheduler_subscribe_worker_statu, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__312)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5637, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__313);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_subscribe_worker_status, __pyx_t_12) < 0) __PYX_ERR(0, 5637, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__313 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__313)) __PYX_ERR(0, 5637, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__313);
__Pyx_GIVEREF(__pyx_tuple__313);
+5638: WorkerStatusPlugin(self, comm)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_WorkerStatusPlugin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_self, __pyx_v_comm}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5638, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_self, __pyx_v_comm}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5638, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_self); __Pyx_INCREF(__pyx_v_comm); __Pyx_GIVEREF(__pyx_v_comm); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_comm); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5639: ident = self.identity()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_identity); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_ident = __pyx_t_1; __pyx_t_1 = 0;
+5640: for v in ident["workers"].values():
__pyx_t_6 = 0; __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_ident, __pyx_n_u_workers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_t_2 == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values"); __PYX_ERR(0, 5640, __pyx_L1_error) } __pyx_t_5 = __Pyx_dict_iterator(__pyx_t_2, 0, __pyx_n_s_values, (&__pyx_t_7), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_5; __pyx_t_5 = 0; while (1) { __pyx_t_8 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_7, &__pyx_t_6, NULL, &__pyx_t_5, NULL, __pyx_t_4); if (unlikely(__pyx_t_8 == 0)) break; if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 5640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_5); __pyx_t_5 = 0;
+5641: del v["metrics"]
if (unlikely(PyObject_DelItem(__pyx_v_v, __pyx_n_u_metrics) < 0)) __PYX_ERR(0, 5641, __pyx_L1_error)
+5642: del v["last_seen"]
if (unlikely(PyObject_DelItem(__pyx_v_v, __pyx_n_u_last_seen) < 0)) __PYX_ERR(0, 5642, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5643: return ident
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_ident); __pyx_r = __pyx_v_ident; goto __pyx_L0;
5644:
+5645: def get_processing(self, comm=None, workers=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_146get_processing(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_146get_processing = {"get_processing", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_146get_processing, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_146get_processing(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_workers = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_processing (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_workers,0};
PyObject* values[3] = {0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_workers);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_processing") < 0)) __PYX_ERR(0, 5645, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_workers = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("get_processing", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5645, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_processing", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_145get_processing(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_workers);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_145get_processing(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_workers) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_10genexpr109__pyx_v_w = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_10genexpr110__pyx_v_ts = NULL;
PyObject *__pyx_10genexpr111__pyx_v_w = NULL;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_10genexpr111__pyx_v_ws = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_10genexpr112__pyx_v_ts = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_processing", 0);
__Pyx_INCREF(__pyx_v_workers);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_processing", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_10genexpr109__pyx_v_w);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr110__pyx_v_ts);
__Pyx_XDECREF(__pyx_10genexpr111__pyx_v_w);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr111__pyx_v_ws);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr112__pyx_v_ts);
__Pyx_XDECREF(__pyx_v_workers);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__314 = PyTuple_Pack(11, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_workers, __pyx_n_s_parent, __pyx_n_s_ws, __pyx_n_s_ts, __pyx_n_s_w, __pyx_n_s_ts, __pyx_n_s_w, __pyx_n_s_ws, __pyx_n_s_ts); if (unlikely(!__pyx_tuple__314)) __PYX_ERR(0, 5645, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__314);
__Pyx_GIVEREF(__pyx_tuple__314);
__pyx_codeobj__315 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__314, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_get_processing, 5645, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__315)) __PYX_ERR(0, 5645, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_146get_processing, 0, __pyx_n_s_Scheduler_get_processing, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__315)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5645, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__316);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_get_processing, __pyx_t_12) < 0) __PYX_ERR(0, 5645, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__316 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__316)) __PYX_ERR(0, 5645, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__316);
__Pyx_GIVEREF(__pyx_tuple__316);
+5646: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
5647: ws: WorkerState
5648: ts: TaskState
+5649: if workers is not None:
__pyx_t_2 = (__pyx_v_workers != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
}
+5650: workers = set(map(self.coerce_address, workers))
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_coerce_address); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_INCREF(__pyx_v_workers); __Pyx_GIVEREF(__pyx_v_workers); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_workers); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_map, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PySet_New(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_workers, __pyx_t_4); __pyx_t_4 = 0;
+5651: return {
__Pyx_XDECREF(__pyx_r); { /* enter inner scope */ __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5651, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_4);
+5652: w: [ts._key for ts in parent._workers_dv[w].processing] for w in workers
if (likely(PyList_CheckExact(__pyx_v_workers)) || PyTuple_CheckExact(__pyx_v_workers)) { __pyx_t_1 = __pyx_v_workers; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_workers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5652, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5652, __pyx_L6_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5652, __pyx_L6_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5652, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_7); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5652, __pyx_L6_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5652, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_7); #endif } } else { __pyx_t_7 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_7)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5652, __pyx_L6_error) } break; } __Pyx_GOTREF(__pyx_t_7); } __Pyx_XDECREF_SET(__pyx_10genexpr109__pyx_v_w, __pyx_t_7); __pyx_t_7 = 0; { /* enter inner scope */ __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5652, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5652, __pyx_L11_error) } __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_parent->_workers_dv, __pyx_10genexpr109__pyx_v_w); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5652, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_processing_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5652, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) { __pyx_t_8 = __pyx_t_9; __Pyx_INCREF(__pyx_t_8); __pyx_t_10 = 0; __pyx_t_11 = NULL; } else { __pyx_t_10 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5652, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_11 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5652, __pyx_L11_error) } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_8))) { if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_10); __Pyx_INCREF(__pyx_t_9); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 5652, __pyx_L11_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5652, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_9); #endif } else { if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_10); __Pyx_INCREF(__pyx_t_9); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 5652, __pyx_L11_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5652, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_9); #endif } } else { __pyx_t_9 = __pyx_t_11(__pyx_t_8); if (unlikely(!__pyx_t_9)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5652, __pyx_L11_error) } break; } __Pyx_GOTREF(__pyx_t_9); } if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5652, __pyx_L11_error) __Pyx_XDECREF_SET(__pyx_10genexpr110__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_9)); __pyx_t_9 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_10genexpr110__pyx_v_ts->_key))) __PYX_ERR(0, 5652, __pyx_L11_error) } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF((PyObject *)__pyx_10genexpr110__pyx_v_ts); __pyx_10genexpr110__pyx_v_ts = 0; goto __pyx_L14_exit_scope; __pyx_L11_error:; __Pyx_XDECREF((PyObject *)__pyx_10genexpr110__pyx_v_ts); __pyx_10genexpr110__pyx_v_ts = 0; goto __pyx_L6_error; __pyx_L14_exit_scope:; } /* exit inner scope */ if (unlikely(PyDict_SetItem(__pyx_t_4, (PyObject*)__pyx_10genexpr109__pyx_v_w, (PyObject*)__pyx_t_7))) __PYX_ERR(0, 5652, __pyx_L6_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_10genexpr109__pyx_v_w); __pyx_10genexpr109__pyx_v_w = 0; goto __pyx_L15_exit_scope; __pyx_L6_error:; __Pyx_XDECREF(__pyx_10genexpr109__pyx_v_w); __pyx_10genexpr109__pyx_v_w = 0; goto __pyx_L1_error; __pyx_L15_exit_scope:; } /* exit inner scope */ __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
5653: }
5654: else:
+5655: return {
/*else*/ {
__Pyx_XDECREF(__pyx_r);
{ /* enter inner scope */
__pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5655, __pyx_L18_error)
__Pyx_GOTREF(__pyx_t_4);
+5656: w: [ts._key for ts in ws._processing]
{ /* enter inner scope */
__pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5656, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_14 = 0;
if (unlikely(__pyx_10genexpr111__pyx_v_ws->_processing == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5656, __pyx_L23_error)
}
__pyx_t_9 = __Pyx_dict_iterator(__pyx_10genexpr111__pyx_v_ws->_processing, 1, ((PyObject *)NULL), (&__pyx_t_15), (&__pyx_t_13)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5656, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_7);
__pyx_t_7 = __pyx_t_9;
__pyx_t_9 = 0;
while (1) {
__pyx_t_16 = __Pyx_dict_iter_next(__pyx_t_7, __pyx_t_15, &__pyx_t_14, &__pyx_t_9, NULL, NULL, __pyx_t_13);
if (unlikely(__pyx_t_16 == 0)) break;
if (unlikely(__pyx_t_16 == -1)) __PYX_ERR(0, 5656, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_9);
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5656, __pyx_L23_error)
__Pyx_XDECREF_SET(__pyx_10genexpr112__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_9));
__pyx_t_9 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_8, (PyObject*)__pyx_10genexpr112__pyx_v_ts->_key))) __PYX_ERR(0, 5656, __pyx_L23_error)
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr112__pyx_v_ts); __pyx_10genexpr112__pyx_v_ts = 0;
goto __pyx_L26_exit_scope;
__pyx_L23_error:;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr112__pyx_v_ts); __pyx_10genexpr112__pyx_v_ts = 0;
goto __pyx_L18_error;
__pyx_L26_exit_scope:;
} /* exit inner scope */
if (unlikely(PyDict_SetItem(__pyx_t_4, (PyObject*)__pyx_10genexpr111__pyx_v_w, (PyObject*)__pyx_t_8))) __PYX_ERR(0, 5656, __pyx_L18_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_10genexpr111__pyx_v_w); __pyx_10genexpr111__pyx_v_w = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr111__pyx_v_ws); __pyx_10genexpr111__pyx_v_ws = 0;
goto __pyx_L27_exit_scope;
__pyx_L18_error:;
__Pyx_XDECREF(__pyx_10genexpr111__pyx_v_w); __pyx_10genexpr111__pyx_v_w = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr111__pyx_v_ws); __pyx_10genexpr111__pyx_v_ws = 0;
goto __pyx_L1_error;
__pyx_L27_exit_scope:;
} /* exit inner scope */
__pyx_r = __pyx_t_4;
__pyx_t_4 = 0;
goto __pyx_L0;
}
+5657: for w, ws in parent._workers_dv.items()
__pyx_t_5 = 0;
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 5657, __pyx_L18_error)
}
__pyx_t_7 = __Pyx_dict_iterator(__pyx_v_parent->_workers_dv, 1, __pyx_n_s_items, (&__pyx_t_10), (&__pyx_t_12)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5657, __pyx_L18_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_7;
__pyx_t_7 = 0;
while (1) {
__pyx_t_13 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_10, &__pyx_t_5, &__pyx_t_7, &__pyx_t_8, NULL, __pyx_t_12);
if (unlikely(__pyx_t_13 == 0)) break;
if (unlikely(__pyx_t_13 == -1)) __PYX_ERR(0, 5657, __pyx_L18_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_GOTREF(__pyx_t_8);
if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5657, __pyx_L18_error)
__Pyx_XDECREF_SET(__pyx_10genexpr111__pyx_v_w, __pyx_t_7);
__pyx_t_7 = 0;
__Pyx_XDECREF_SET(__pyx_10genexpr111__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_8));
__pyx_t_8 = 0;
5658: }
5659:
+5660: def get_who_has(self, comm=None, keys=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_148get_who_has(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_148get_who_has = {"get_who_has", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_148get_who_has, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_148get_who_has(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_keys = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_who_has (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_keys,0};
PyObject* values[3] = {0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keys);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_who_has") < 0)) __PYX_ERR(0, 5660, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_keys = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("get_who_has", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5660, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_who_has", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_147get_who_has(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_keys);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_147get_who_has(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_keys) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_10genexpr113__pyx_v_k = NULL;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_10genexpr114__pyx_v_ws = NULL;
PyObject *__pyx_10genexpr115__pyx_v_key = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_10genexpr115__pyx_v_ts = NULL;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_10genexpr116__pyx_v_ws = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_who_has", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_who_has", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_10genexpr113__pyx_v_k);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr114__pyx_v_ws);
__Pyx_XDECREF(__pyx_10genexpr115__pyx_v_key);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr115__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr116__pyx_v_ws);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__317 = PyTuple_Pack(11, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_keys, __pyx_n_s_parent, __pyx_n_s_ws, __pyx_n_s_ts, __pyx_n_s_k, __pyx_n_s_ws, __pyx_n_s_key, __pyx_n_s_ts, __pyx_n_s_ws); if (unlikely(!__pyx_tuple__317)) __PYX_ERR(0, 5660, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__317);
__Pyx_GIVEREF(__pyx_tuple__317);
__pyx_codeobj__318 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__317, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_get_who_has, 5660, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__318)) __PYX_ERR(0, 5660, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_148get_who_has, 0, __pyx_n_s_Scheduler_get_who_has, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__318)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5660, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__319);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_get_who_has, __pyx_t_12) < 0) __PYX_ERR(0, 5660, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__319 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__319)) __PYX_ERR(0, 5660, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__319);
__Pyx_GIVEREF(__pyx_tuple__319);
+5661: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
5662: ws: WorkerState
5663: ts: TaskState
+5664: if keys is not None:
__pyx_t_2 = (__pyx_v_keys != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
}
+5665: return {
__Pyx_XDECREF(__pyx_r); { /* enter inner scope */ __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5665, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_1);
+5666: k: [ws._address for ws in parent._tasks[k].who_has]
__pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5666, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely(__pyx_v_parent->_tasks == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5666, __pyx_L11_error) } __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_parent->_tasks, __pyx_10genexpr113__pyx_v_k); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5666, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_who_has); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5666, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) { __pyx_t_9 = __pyx_t_10; __Pyx_INCREF(__pyx_t_9); __pyx_t_11 = 0; __pyx_t_12 = NULL; } else { __pyx_t_11 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5666, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5666, __pyx_L11_error) } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; for (;;) { if (likely(!__pyx_t_12)) { if (likely(PyList_CheckExact(__pyx_t_9))) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_9)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_10); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5666, __pyx_L11_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5666, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_10); #endif } else { if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_9)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_10); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5666, __pyx_L11_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5666, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_10); #endif } } else { __pyx_t_10 = __pyx_t_12(__pyx_t_9); if (unlikely(!__pyx_t_10)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5666, __pyx_L11_error) } break; } __Pyx_GOTREF(__pyx_t_10); } if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5666, __pyx_L11_error) __Pyx_XDECREF_SET(__pyx_10genexpr114__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_10)); __pyx_t_10 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_8, (PyObject*)__pyx_10genexpr114__pyx_v_ws->_address))) __PYX_ERR(0, 5666, __pyx_L11_error) } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF((PyObject *)__pyx_10genexpr114__pyx_v_ws); __pyx_10genexpr114__pyx_v_ws = 0; goto __pyx_L14_exit_scope; __pyx_L11_error:; __Pyx_XDECREF((PyObject *)__pyx_10genexpr114__pyx_v_ws); __pyx_10genexpr114__pyx_v_ws = 0; goto __pyx_L6_error; __pyx_L14_exit_scope:; } /* exit inner scope */ __pyx_t_7 = __pyx_t_8; __pyx_t_8 = 0; } else {
+5667: if k in parent._tasks
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5667, __pyx_L6_error)
}
__pyx_t_3 = (__Pyx_PyDict_ContainsTF(__pyx_10genexpr113__pyx_v_k, __pyx_v_parent->_tasks, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5667, __pyx_L6_error)
if ((__pyx_t_3 != 0)) {
{ /* enter inner scope */
+5668: else []
__pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5668, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = __pyx_t_8; __pyx_t_8 = 0; } if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_10genexpr113__pyx_v_k, (PyObject*)__pyx_t_7))) __PYX_ERR(0, 5666, __pyx_L6_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5669: for k in keys
if (likely(PyList_CheckExact(__pyx_v_keys)) || PyTuple_CheckExact(__pyx_v_keys)) { __pyx_t_4 = __pyx_v_keys; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_keys); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5669, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5669, __pyx_L6_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5669, __pyx_L6_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5669, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_7); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5669, __pyx_L6_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5669, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_7); #endif } } else { __pyx_t_7 = __pyx_t_6(__pyx_t_4); if (unlikely(!__pyx_t_7)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5669, __pyx_L6_error) } break; } __Pyx_GOTREF(__pyx_t_7); } __Pyx_XDECREF_SET(__pyx_10genexpr113__pyx_v_k, __pyx_t_7); __pyx_t_7 = 0; /* … */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_10genexpr113__pyx_v_k); __pyx_10genexpr113__pyx_v_k = 0; goto __pyx_L15_exit_scope; __pyx_L6_error:; __Pyx_XDECREF(__pyx_10genexpr113__pyx_v_k); __pyx_10genexpr113__pyx_v_k = 0; goto __pyx_L1_error; __pyx_L15_exit_scope:; } /* exit inner scope */ __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
5670: }
5671: else:
+5672: return {
/*else*/ {
__Pyx_XDECREF(__pyx_r);
{ /* enter inner scope */
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5672, __pyx_L18_error)
__Pyx_GOTREF(__pyx_t_1);
+5673: key: [ws._address for ws in ts._who_has]
{ /* enter inner scope */
__pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5673, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_15 = 0;
__pyx_t_9 = __Pyx_set_iterator(__pyx_10genexpr115__pyx_v_ts->_who_has, 1, (&__pyx_t_16), (&__pyx_t_14)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5673, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_7);
__pyx_t_7 = __pyx_t_9;
__pyx_t_9 = 0;
while (1) {
__pyx_t_17 = __Pyx_set_iter_next(__pyx_t_7, __pyx_t_16, &__pyx_t_15, &__pyx_t_9, __pyx_t_14);
if (unlikely(__pyx_t_17 == 0)) break;
if (unlikely(__pyx_t_17 == -1)) __PYX_ERR(0, 5673, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_9);
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5673, __pyx_L23_error)
__Pyx_XDECREF_SET(__pyx_10genexpr116__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_9));
__pyx_t_9 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_8, (PyObject*)__pyx_10genexpr116__pyx_v_ws->_address))) __PYX_ERR(0, 5673, __pyx_L23_error)
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr116__pyx_v_ws); __pyx_10genexpr116__pyx_v_ws = 0;
goto __pyx_L26_exit_scope;
__pyx_L23_error:;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr116__pyx_v_ws); __pyx_10genexpr116__pyx_v_ws = 0;
goto __pyx_L18_error;
__pyx_L26_exit_scope:;
} /* exit inner scope */
if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_10genexpr115__pyx_v_key, (PyObject*)__pyx_t_8))) __PYX_ERR(0, 5673, __pyx_L18_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_10genexpr115__pyx_v_key); __pyx_10genexpr115__pyx_v_key = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr115__pyx_v_ts); __pyx_10genexpr115__pyx_v_ts = 0;
goto __pyx_L27_exit_scope;
__pyx_L18_error:;
__Pyx_XDECREF(__pyx_10genexpr115__pyx_v_key); __pyx_10genexpr115__pyx_v_key = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr115__pyx_v_ts); __pyx_10genexpr115__pyx_v_ts = 0;
goto __pyx_L1_error;
__pyx_L27_exit_scope:;
} /* exit inner scope */
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
}
+5674: for key, ts in parent._tasks.items()
__pyx_t_5 = 0;
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 5674, __pyx_L18_error)
}
__pyx_t_7 = __Pyx_dict_iterator(__pyx_v_parent->_tasks, 1, __pyx_n_s_items, (&__pyx_t_11), (&__pyx_t_13)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5674, __pyx_L18_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_7;
__pyx_t_7 = 0;
while (1) {
__pyx_t_14 = __Pyx_dict_iter_next(__pyx_t_4, __pyx_t_11, &__pyx_t_5, &__pyx_t_7, &__pyx_t_8, NULL, __pyx_t_13);
if (unlikely(__pyx_t_14 == 0)) break;
if (unlikely(__pyx_t_14 == -1)) __PYX_ERR(0, 5674, __pyx_L18_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_GOTREF(__pyx_t_8);
if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5674, __pyx_L18_error)
__Pyx_XDECREF_SET(__pyx_10genexpr115__pyx_v_key, __pyx_t_7);
__pyx_t_7 = 0;
__Pyx_XDECREF_SET(__pyx_10genexpr115__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_8));
__pyx_t_8 = 0;
5675: }
5676:
+5677: def get_has_what(self, comm=None, workers=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_150get_has_what(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_150get_has_what = {"get_has_what", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_150get_has_what, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_150get_has_what(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_workers = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_has_what (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_workers,0};
PyObject* values[3] = {0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_workers);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_has_what") < 0)) __PYX_ERR(0, 5677, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_workers = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("get_has_what", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5677, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_has_what", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_149get_has_what(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_workers);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_149get_has_what(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_workers) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_10genexpr117__pyx_v_w = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_10genexpr118__pyx_v_ts = NULL;
PyObject *__pyx_10genexpr119__pyx_v_w = NULL;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_10genexpr119__pyx_v_ws = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_10genexpr120__pyx_v_ts = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_has_what", 0);
__Pyx_INCREF(__pyx_v_workers);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_has_what", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_10genexpr117__pyx_v_w);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr118__pyx_v_ts);
__Pyx_XDECREF(__pyx_10genexpr119__pyx_v_w);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr119__pyx_v_ws);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr120__pyx_v_ts);
__Pyx_XDECREF(__pyx_v_workers);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__320 = PyTuple_Pack(11, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_workers, __pyx_n_s_parent, __pyx_n_s_ws, __pyx_n_s_ts, __pyx_n_s_w, __pyx_n_s_ts, __pyx_n_s_w, __pyx_n_s_ws, __pyx_n_s_ts); if (unlikely(!__pyx_tuple__320)) __PYX_ERR(0, 5677, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__320);
__Pyx_GIVEREF(__pyx_tuple__320);
__pyx_codeobj__321 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__320, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_get_has_what, 5677, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__321)) __PYX_ERR(0, 5677, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_150get_has_what, 0, __pyx_n_s_Scheduler_get_has_what, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__321)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5677, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__322);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_get_has_what, __pyx_t_12) < 0) __PYX_ERR(0, 5677, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__322 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__322)) __PYX_ERR(0, 5677, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__322);
__Pyx_GIVEREF(__pyx_tuple__322);
+5678: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
5679: ws: WorkerState
5680: ts: TaskState
+5681: if workers is not None:
__pyx_t_2 = (__pyx_v_workers != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
}
+5682: workers = map(self.coerce_address, workers)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_coerce_address); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_INCREF(__pyx_v_workers); __Pyx_GIVEREF(__pyx_v_workers); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_workers); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_map, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_workers, __pyx_t_1); __pyx_t_1 = 0;
+5683: return {
__Pyx_XDECREF(__pyx_r); { /* enter inner scope */ __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5683, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_1);
+5684: w: [ts._key for ts in parent._workers_dv[w].has_what]
__pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5684, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 5684, __pyx_L11_error) } __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_parent->_workers_dv, __pyx_10genexpr117__pyx_v_w); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5684, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_has_what); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5684, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) { __pyx_t_9 = __pyx_t_10; __Pyx_INCREF(__pyx_t_9); __pyx_t_11 = 0; __pyx_t_12 = NULL; } else { __pyx_t_11 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5684, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5684, __pyx_L11_error) } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; for (;;) { if (likely(!__pyx_t_12)) { if (likely(PyList_CheckExact(__pyx_t_9))) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_9)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_10); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5684, __pyx_L11_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5684, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_10); #endif } else { if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_9)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_10); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5684, __pyx_L11_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5684, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_10); #endif } } else { __pyx_t_10 = __pyx_t_12(__pyx_t_9); if (unlikely(!__pyx_t_10)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5684, __pyx_L11_error) } break; } __Pyx_GOTREF(__pyx_t_10); } if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5684, __pyx_L11_error) __Pyx_XDECREF_SET(__pyx_10genexpr118__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_10)); __pyx_t_10 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_8, (PyObject*)__pyx_10genexpr118__pyx_v_ts->_key))) __PYX_ERR(0, 5684, __pyx_L11_error) } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF((PyObject *)__pyx_10genexpr118__pyx_v_ts); __pyx_10genexpr118__pyx_v_ts = 0; goto __pyx_L14_exit_scope; __pyx_L11_error:; __Pyx_XDECREF((PyObject *)__pyx_10genexpr118__pyx_v_ts); __pyx_10genexpr118__pyx_v_ts = 0; goto __pyx_L6_error; __pyx_L14_exit_scope:; } /* exit inner scope */ __pyx_t_7 = __pyx_t_8; __pyx_t_8 = 0; } else {
+5685: if w in parent._workers_dv
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5685, __pyx_L6_error)
}
__pyx_t_3 = (__Pyx_PyDict_ContainsTF(__pyx_10genexpr117__pyx_v_w, __pyx_v_parent->_workers_dv, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5685, __pyx_L6_error)
if ((__pyx_t_3 != 0)) {
{ /* enter inner scope */
+5686: else []
__pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5686, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = __pyx_t_8; __pyx_t_8 = 0; } if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_10genexpr117__pyx_v_w, (PyObject*)__pyx_t_7))) __PYX_ERR(0, 5684, __pyx_L6_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5687: for w in workers
if (likely(PyList_CheckExact(__pyx_v_workers)) || PyTuple_CheckExact(__pyx_v_workers)) { __pyx_t_4 = __pyx_v_workers; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_workers); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5687, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5687, __pyx_L6_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5687, __pyx_L6_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5687, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_7); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5687, __pyx_L6_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5687, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_7); #endif } } else { __pyx_t_7 = __pyx_t_6(__pyx_t_4); if (unlikely(!__pyx_t_7)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5687, __pyx_L6_error) } break; } __Pyx_GOTREF(__pyx_t_7); } __Pyx_XDECREF_SET(__pyx_10genexpr117__pyx_v_w, __pyx_t_7); __pyx_t_7 = 0; /* … */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_10genexpr117__pyx_v_w); __pyx_10genexpr117__pyx_v_w = 0; goto __pyx_L15_exit_scope; __pyx_L6_error:; __Pyx_XDECREF(__pyx_10genexpr117__pyx_v_w); __pyx_10genexpr117__pyx_v_w = 0; goto __pyx_L1_error; __pyx_L15_exit_scope:; } /* exit inner scope */ __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
5688: }
5689: else:
+5690: return {
/*else*/ {
__Pyx_XDECREF(__pyx_r);
{ /* enter inner scope */
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5690, __pyx_L18_error)
__Pyx_GOTREF(__pyx_t_1);
+5691: w: [ts._key for ts in ws._has_what]
{ /* enter inner scope */
__pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5691, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_15 = 0;
__pyx_t_9 = __Pyx_set_iterator(__pyx_10genexpr119__pyx_v_ws->_has_what, 1, (&__pyx_t_16), (&__pyx_t_14)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5691, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_7);
__pyx_t_7 = __pyx_t_9;
__pyx_t_9 = 0;
while (1) {
__pyx_t_17 = __Pyx_set_iter_next(__pyx_t_7, __pyx_t_16, &__pyx_t_15, &__pyx_t_9, __pyx_t_14);
if (unlikely(__pyx_t_17 == 0)) break;
if (unlikely(__pyx_t_17 == -1)) __PYX_ERR(0, 5691, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_9);
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5691, __pyx_L23_error)
__Pyx_XDECREF_SET(__pyx_10genexpr120__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_9));
__pyx_t_9 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_8, (PyObject*)__pyx_10genexpr120__pyx_v_ts->_key))) __PYX_ERR(0, 5691, __pyx_L23_error)
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr120__pyx_v_ts); __pyx_10genexpr120__pyx_v_ts = 0;
goto __pyx_L26_exit_scope;
__pyx_L23_error:;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr120__pyx_v_ts); __pyx_10genexpr120__pyx_v_ts = 0;
goto __pyx_L18_error;
__pyx_L26_exit_scope:;
} /* exit inner scope */
if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_10genexpr119__pyx_v_w, (PyObject*)__pyx_t_8))) __PYX_ERR(0, 5691, __pyx_L18_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_10genexpr119__pyx_v_w); __pyx_10genexpr119__pyx_v_w = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr119__pyx_v_ws); __pyx_10genexpr119__pyx_v_ws = 0;
goto __pyx_L27_exit_scope;
__pyx_L18_error:;
__Pyx_XDECREF(__pyx_10genexpr119__pyx_v_w); __pyx_10genexpr119__pyx_v_w = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr119__pyx_v_ws); __pyx_10genexpr119__pyx_v_ws = 0;
goto __pyx_L1_error;
__pyx_L27_exit_scope:;
} /* exit inner scope */
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
}
+5692: for w, ws in parent._workers_dv.items()
__pyx_t_5 = 0;
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 5692, __pyx_L18_error)
}
__pyx_t_7 = __Pyx_dict_iterator(__pyx_v_parent->_workers_dv, 1, __pyx_n_s_items, (&__pyx_t_11), (&__pyx_t_13)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5692, __pyx_L18_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_7;
__pyx_t_7 = 0;
while (1) {
__pyx_t_14 = __Pyx_dict_iter_next(__pyx_t_4, __pyx_t_11, &__pyx_t_5, &__pyx_t_7, &__pyx_t_8, NULL, __pyx_t_13);
if (unlikely(__pyx_t_14 == 0)) break;
if (unlikely(__pyx_t_14 == -1)) __PYX_ERR(0, 5692, __pyx_L18_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_GOTREF(__pyx_t_8);
if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5692, __pyx_L18_error)
__Pyx_XDECREF_SET(__pyx_10genexpr119__pyx_v_w, __pyx_t_7);
__pyx_t_7 = 0;
__Pyx_XDECREF_SET(__pyx_10genexpr119__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_8));
__pyx_t_8 = 0;
5693: }
5694:
+5695: def get_ncores(self, comm=None, workers=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_152get_ncores(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_152get_ncores = {"get_ncores", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_152get_ncores, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_152get_ncores(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_workers = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_ncores (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_workers,0};
PyObject* values[3] = {0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_workers);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_ncores") < 0)) __PYX_ERR(0, 5695, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_workers = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("get_ncores", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5695, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_ncores", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_151get_ncores(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_workers);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_151get_ncores(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_workers) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_10genexpr121__pyx_v_w = NULL;
PyObject *__pyx_10genexpr122__pyx_v_w = NULL;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_10genexpr122__pyx_v_ws = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_ncores", 0);
__Pyx_INCREF(__pyx_v_workers);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_ncores", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_10genexpr121__pyx_v_w);
__Pyx_XDECREF(__pyx_10genexpr122__pyx_v_w);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr122__pyx_v_ws);
__Pyx_XDECREF(__pyx_v_workers);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_155generator18(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__323 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_workers, __pyx_n_s_parent, __pyx_n_s_ws, __pyx_n_s_w, __pyx_n_s_w, __pyx_n_s_ws); if (unlikely(!__pyx_tuple__323)) __PYX_ERR(0, 5695, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__323);
__Pyx_GIVEREF(__pyx_tuple__323);
__pyx_codeobj__324 = (PyObject*)__Pyx_PyCode_New(3, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__323, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_get_ncores, 5695, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__324)) __PYX_ERR(0, 5695, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_152get_ncores, 0, __pyx_n_s_Scheduler_get_ncores, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__324)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5695, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__325);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_get_ncores, __pyx_t_12) < 0) __PYX_ERR(0, 5695, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__325 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__325)) __PYX_ERR(0, 5695, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__325);
__Pyx_GIVEREF(__pyx_tuple__325);
+5696: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
5697: ws: WorkerState
+5698: if workers is not None:
__pyx_t_2 = (__pyx_v_workers != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
}
+5699: workers = map(self.coerce_address, workers)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_coerce_address); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_INCREF(__pyx_v_workers); __Pyx_GIVEREF(__pyx_v_workers); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_workers); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_map, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_workers, __pyx_t_1); __pyx_t_1 = 0;
+5700: return {
__Pyx_XDECREF(__pyx_r); { /* enter inner scope */ __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5700, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_1);
+5701: w: parent._workers_dv[w].nthreads
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5701, __pyx_L6_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_parent->_workers_dv, __pyx_10genexpr121__pyx_v_w); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5701, __pyx_L6_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_nthreads); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5701, __pyx_L6_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_10genexpr121__pyx_v_w, (PyObject*)__pyx_t_8))) __PYX_ERR(0, 5701, __pyx_L6_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+5702: for w in workers
if (likely(PyList_CheckExact(__pyx_v_workers)) || PyTuple_CheckExact(__pyx_v_workers)) { __pyx_t_4 = __pyx_v_workers; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_workers); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5702, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5702, __pyx_L6_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5702, __pyx_L6_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5702, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_7); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5702, __pyx_L6_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5702, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_7); #endif } } else { __pyx_t_7 = __pyx_t_6(__pyx_t_4); if (unlikely(!__pyx_t_7)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5702, __pyx_L6_error) } break; } __Pyx_GOTREF(__pyx_t_7); } __Pyx_XDECREF_SET(__pyx_10genexpr121__pyx_v_w, __pyx_t_7); __pyx_t_7 = 0; /* … */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_10genexpr121__pyx_v_w); __pyx_10genexpr121__pyx_v_w = 0; goto __pyx_L10_exit_scope; __pyx_L6_error:; __Pyx_XDECREF(__pyx_10genexpr121__pyx_v_w); __pyx_10genexpr121__pyx_v_w = 0; goto __pyx_L1_error; __pyx_L10_exit_scope:; } /* exit inner scope */ __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
+5703: if w in parent._workers_dv
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5703, __pyx_L6_error)
}
__pyx_t_3 = (__Pyx_PyDict_ContainsTF(__pyx_10genexpr121__pyx_v_w, __pyx_v_parent->_workers_dv, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5703, __pyx_L6_error)
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
/* … */
}
5704: }
5705: else:
+5706: return {w: ws._nthreads for w, ws in parent._workers_dv.items()}
/*else*/ {
__Pyx_XDECREF(__pyx_r);
{ /* enter inner scope */
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5706, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = 0;
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 5706, __pyx_L13_error)
}
__pyx_t_8 = __Pyx_dict_iterator(__pyx_v_parent->_workers_dv, 1, __pyx_n_s_items, (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5706, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_8;
__pyx_t_8 = 0;
while (1) {
__pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_4, __pyx_t_9, &__pyx_t_5, &__pyx_t_8, &__pyx_t_7, NULL, __pyx_t_10);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 5706, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_GOTREF(__pyx_t_7);
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 5706, __pyx_L13_error)
__Pyx_XDECREF_SET(__pyx_10genexpr122__pyx_v_w, __pyx_t_8);
__pyx_t_8 = 0;
__Pyx_XDECREF_SET(__pyx_10genexpr122__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_7));
__pyx_t_7 = 0;
__pyx_t_7 = PyInt_FromSsize_t(__pyx_10genexpr122__pyx_v_ws->_nthreads); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5706, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_7);
if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_10genexpr122__pyx_v_w, (PyObject*)__pyx_t_7))) __PYX_ERR(0, 5706, __pyx_L13_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_10genexpr122__pyx_v_w); __pyx_10genexpr122__pyx_v_w = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr122__pyx_v_ws); __pyx_10genexpr122__pyx_v_ws = 0;
goto __pyx_L16_exit_scope;
__pyx_L13_error:;
__Pyx_XDECREF(__pyx_10genexpr122__pyx_v_w); __pyx_10genexpr122__pyx_v_w = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr122__pyx_v_ws); __pyx_10genexpr122__pyx_v_ws = 0;
goto __pyx_L1_error;
__pyx_L16_exit_scope:;
} /* exit inner scope */
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
}
5707:
+5708: async def get_call_stack(self, comm=None, keys=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_154get_call_stack(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_154get_call_stack = {"get_call_stack", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_154get_call_stack, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_154get_call_stack(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_keys = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_call_stack (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_keys,0};
PyObject* values[3] = {0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keys);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_call_stack") < 0)) __PYX_ERR(0, 5708, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_keys = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("get_call_stack", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5708, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_call_stack", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_153get_call_stack(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_keys);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_14get_call_stack_2generator42(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_153get_call_stack(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_keys) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_45_get_call_stack *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_call_stack", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_45_get_call_stack *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_45_get_call_stack(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_45_get_call_stack, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_45_get_call_stack *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 5708, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_comm = __pyx_v_comm;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm);
__pyx_cur_scope->__pyx_v_keys = __pyx_v_keys;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_keys);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_keys);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_155generator18, __pyx_codeobj__82, (PyObject *) __pyx_cur_scope, __pyx_n_s_get_call_stack, __pyx_n_s_Scheduler_get_call_stack, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 5708, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_call_stack", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_155generator18(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_call_stack", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5708, __pyx_L1_error)
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("get_call_stack", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__326 = PyTuple_Pack(18, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_keys, __pyx_n_s_parent, __pyx_n_s_ts, __pyx_n_s_dts, __pyx_n_s_stack, __pyx_n_s_processing_2, __pyx_n_s_key, __pyx_n_s_workers, __pyx_n_s_results, __pyx_n_s_response, __pyx_n_s_dts, __pyx_n_s_w, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_w, __pyx_n_s_r); if (unlikely(!__pyx_tuple__326)) __PYX_ERR(0, 5708, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__326);
__Pyx_GIVEREF(__pyx_tuple__326);
__pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(3, 0, 18, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__326, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_get_call_stack, 5708, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) __PYX_ERR(0, 5708, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_154get_call_stack, 0, __pyx_n_s_Scheduler_get_call_stack, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__82)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5708, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__327);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_get_call_stack, __pyx_t_12) < 0) __PYX_ERR(0, 5708, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__327 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__327)) __PYX_ERR(0, 5708, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__327);
__Pyx_GIVEREF(__pyx_tuple__327);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_45_get_call_stack {
PyObject_HEAD
PyObject *__pyx_v_comm;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_10genexpr123__pyx_v_dts;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_dts;
PyObject *__pyx_v_genexpr;
PyObject *__pyx_v_key;
PyObject *__pyx_v_keys;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent;
PyObject *__pyx_v_processing;
PyObject *__pyx_10genexpr126__pyx_v_r;
PyObject *__pyx_v_response;
PyObject *__pyx_v_results;
PyObject *__pyx_v_self;
PyObject *__pyx_v_stack;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts;
PyObject *__pyx_10genexpr124__pyx_v_w;
PyObject *__pyx_10genexpr126__pyx_v_w;
PyObject *__pyx_v_workers;
};
+5709: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_cur_scope->__pyx_v_self; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1); __pyx_t_1 = 0;
5710: ts: TaskState
5711: dts: TaskState
+5712: if keys is not None:
__pyx_t_2 = (__pyx_cur_scope->__pyx_v_keys != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
goto __pyx_L4;
}
+5713: stack = list(keys)
__pyx_t_1 = PySequence_List(__pyx_cur_scope->__pyx_v_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_stack = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+5714: processing = set()
__pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_processing = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+5715: while stack:
while (1) {
__pyx_t_3 = (PyList_GET_SIZE(__pyx_cur_scope->__pyx_v_stack) != 0);
if (!__pyx_t_3) break;
+5716: key = stack.pop()
__pyx_t_1 = __Pyx_PyList_Pop(__pyx_cur_scope->__pyx_v_stack); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_key); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_key, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0;
+5717: ts = parent._tasks[key]
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5717, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_v_parent->_tasks, __pyx_cur_scope->__pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5717, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5717, __pyx_L1_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_ts));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1));
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
+5718: if ts._state == "waiting":
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_cur_scope->__pyx_v_ts->_state, __pyx_n_u_waiting, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5718, __pyx_L1_error) __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { /* … */ goto __pyx_L7; }
+5719: stack.extend([dts._key for dts in ts._dependencies])
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5719, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = 0;
__pyx_t_8 = __Pyx_set_iterator(__pyx_cur_scope->__pyx_v_ts->_dependencies, 1, (&__pyx_t_6), (&__pyx_t_7)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5719, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_8;
__pyx_t_8 = 0;
while (1) {
__pyx_t_9 = __Pyx_set_iter_next(__pyx_t_4, __pyx_t_6, &__pyx_t_5, &__pyx_t_8, __pyx_t_7);
if (unlikely(__pyx_t_9 == 0)) break;
if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 5719, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5719, __pyx_L1_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_10genexpr123__pyx_v_dts));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_10genexpr123__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_8));
__Pyx_GIVEREF(__pyx_t_8);
__pyx_t_8 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_cur_scope->__pyx_10genexpr123__pyx_v_dts->_key))) __PYX_ERR(0, 5719, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
} /* exit inner scope */
__pyx_t_10 = __Pyx_PyList_Extend(__pyx_cur_scope->__pyx_v_stack, __pyx_t_1); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 5719, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5720: elif ts._state == "processing":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_cur_scope->__pyx_v_ts->_state, __pyx_n_u_processing_2, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5720, __pyx_L1_error) __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* … */ } __pyx_L7:; }
+5721: processing.add(ts)
__pyx_t_10 = PySet_Add(__pyx_cur_scope->__pyx_v_processing, ((PyObject *)__pyx_cur_scope->__pyx_v_ts)); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 5721, __pyx_L1_error)
5722:
+5723: workers = defaultdict(list)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_defaultdict); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_8, ((PyObject *)(&PyList_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)(&PyList_Type))); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_workers = __pyx_t_1; __pyx_t_1 = 0;
+5724: for ts in processing:
__pyx_t_6 = 0;
__pyx_t_4 = __Pyx_set_iterator(__pyx_cur_scope->__pyx_v_processing, 1, (&__pyx_t_5), (&__pyx_t_7)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5724, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_4;
__pyx_t_4 = 0;
while (1) {
__pyx_t_9 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_5, &__pyx_t_6, &__pyx_t_4, __pyx_t_7);
if (unlikely(__pyx_t_9 == 0)) break;
if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 5724, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5724, __pyx_L1_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_ts));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4));
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
+5725: if ts._processing_on:
__pyx_t_3 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_cur_scope->__pyx_v_ts->_processing_on)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5725, __pyx_L1_error) if (__pyx_t_3) { /* … */ } } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5726: workers[ts._processing_on.address].append(ts._key)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_ts->_processing_on), __pyx_n_s_address); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_workers, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_10 = __Pyx_PyObject_Append(__pyx_t_8, __pyx_cur_scope->__pyx_v_ts->_key); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 5726, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
5727: else:
+5728: workers = {w: None for w in parent._workers_dv}
/*else*/ {
{ /* enter inner scope */
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5728, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5728, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_parent->_workers_dv, 1, ((PyObject *)NULL), (&__pyx_t_6), (&__pyx_t_7)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5728, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_8);
__pyx_t_8 = __pyx_t_4;
__pyx_t_4 = 0;
while (1) {
__pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_8, __pyx_t_6, &__pyx_t_5, &__pyx_t_4, NULL, NULL, __pyx_t_7);
if (unlikely(__pyx_t_9 == 0)) break;
if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 5728, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_10genexpr124__pyx_v_w);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_10genexpr124__pyx_v_w, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_cur_scope->__pyx_10genexpr124__pyx_v_w, (PyObject*)Py_None))) __PYX_ERR(0, 5728, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_v_workers = __pyx_t_1;
__pyx_t_1 = 0;
}
__pyx_L4:;
5729:
+5730: if not workers:
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_workers); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5730, __pyx_L1_error) __pyx_t_2 = ((!__pyx_t_3) != 0); if (__pyx_t_2) { /* … */ }
+5731: return {}
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5731, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0;
5732:
+5733: results = await asyncio.gather(
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_gather); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L16_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5733, __pyx_L1_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else { __pyx_t_1 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(0, 5733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_results = __pyx_t_1; __pyx_t_1 = 0;
+5734: *(self.rpc(w).call_stack(keys=v) for w, v in workers.items())
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_14get_call_stack_genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_46_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_46_genexpr *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_46_genexpr(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_46_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_46_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 5734, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_45_get_call_stack *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_14get_call_stack_2generator42, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_Scheduler_get_call_stack_locals, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 5734, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_call_stack.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_14get_call_stack_2generator42(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5734, __pyx_L1_error)
__pyx_t_2 = 0;
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_workers)) { __Pyx_RaiseClosureNameError("workers"); __PYX_ERR(0, 5734, __pyx_L1_error) }
if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_workers == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 5734, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_workers, 0, __pyx_n_s_items, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5734, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_5;
__pyx_t_5 = 0;
while (1) {
__pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, &__pyx_t_6, NULL, __pyx_t_4);
if (unlikely(__pyx_t_7 == 0)) break;
if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 5734, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_w);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_w, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_v);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_v, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 5734, __pyx_L1_error) }
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self, __pyx_n_s_rpc); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5734, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_8 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
if (likely(__pyx_t_8)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_8);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_5, function);
}
}
__pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_8, __pyx_cur_scope->__pyx_v_w) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_cur_scope->__pyx_v_w);
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5734, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_call_stack); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5734, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5734, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_keys, __pyx_cur_scope->__pyx_v_v) < 0) __PYX_ERR(0, 5734, __pyx_L1_error)
__pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5734, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_r = __pyx_t_8;
__pyx_t_8 = 0;
__Pyx_XGIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
__pyx_cur_scope->__pyx_t_3 = __pyx_t_4;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, yielding value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L6_resume_from_yield:;
__pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
__pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
__pyx_t_4 = __pyx_cur_scope->__pyx_t_3;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5734, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_1 = __pyx_pf_11distributed_9scheduler_9Scheduler_14get_call_stack_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5734, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_46_genexpr {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_45_get_call_stack *__pyx_outer_scope;
PyObject *__pyx_v_v;
PyObject *__pyx_v_w;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
Py_ssize_t __pyx_t_2;
int __pyx_t_3;
};
5735: )
+5736: response = {w: r for w, r in zip(workers, results) if r}
{ /* enter inner scope */
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5736, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5736, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_workers);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_workers);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_cur_scope->__pyx_v_workers);
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_results);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_results);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_cur_scope->__pyx_v_results);
__pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_zip, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5736, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
__pyx_t_4 = __pyx_t_8; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
__pyx_t_11 = NULL;
} else {
__pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5736, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_11 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5736, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
for (;;) {
if (likely(!__pyx_t_11)) {
if (likely(PyList_CheckExact(__pyx_t_4))) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 5736, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5736, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
} else {
if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 5736, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5736, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
}
} else {
__pyx_t_8 = __pyx_t_11(__pyx_t_4);
if (unlikely(!__pyx_t_8)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5736, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_8);
}
if ((likely(PyTuple_CheckExact(__pyx_t_8))) || (PyList_CheckExact(__pyx_t_8))) {
PyObject* sequence = __pyx_t_8;
Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
__PYX_ERR(0, 5736, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__pyx_t_12 = PyTuple_GET_ITEM(sequence, 0);
__pyx_t_13 = PyTuple_GET_ITEM(sequence, 1);
} else {
__pyx_t_12 = PyList_GET_ITEM(sequence, 0);
__pyx_t_13 = PyList_GET_ITEM(sequence, 1);
}
__Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(__pyx_t_13);
#else
__pyx_t_12 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5736, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5736, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
#endif
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
} else {
Py_ssize_t index = -1;
__pyx_t_14 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5736, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_15 = Py_TYPE(__pyx_t_14)->tp_iternext;
index = 0; __pyx_t_12 = __pyx_t_15(__pyx_t_14); if (unlikely(!__pyx_t_12)) goto __pyx_L19_unpacking_failed;
__Pyx_GOTREF(__pyx_t_12);
index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_14); if (unlikely(!__pyx_t_13)) goto __pyx_L19_unpacking_failed;
__Pyx_GOTREF(__pyx_t_13);
if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_14), 2) < 0) __PYX_ERR(0, 5736, __pyx_L1_error)
__pyx_t_15 = NULL;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
goto __pyx_L20_unpacking_done;
__pyx_L19_unpacking_failed:;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_15 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
__PYX_ERR(0, 5736, __pyx_L1_error)
__pyx_L20_unpacking_done:;
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_10genexpr126__pyx_v_w);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_10genexpr126__pyx_v_w, __pyx_t_12);
__Pyx_GIVEREF(__pyx_t_12);
__pyx_t_12 = 0;
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_10genexpr126__pyx_v_r);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_10genexpr126__pyx_v_r, __pyx_t_13);
__Pyx_GIVEREF(__pyx_t_13);
__pyx_t_13 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_10genexpr126__pyx_v_r); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5736, __pyx_L1_error)
if (__pyx_t_2) {
if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_cur_scope->__pyx_10genexpr126__pyx_v_w, (PyObject*)__pyx_cur_scope->__pyx_10genexpr126__pyx_v_r))) __PYX_ERR(0, 5736, __pyx_L1_error)
}
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_v_response = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+5737: return response
__Pyx_XDECREF(__pyx_r); __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_cur_scope->__pyx_v_response); goto __pyx_L0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
5738:
+5739: def get_nbytes(self, comm=None, keys=None, summary=True):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_157get_nbytes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_157get_nbytes = {"get_nbytes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_157get_nbytes, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_157get_nbytes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_keys = 0;
PyObject *__pyx_v_summary = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_nbytes (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_keys,&__pyx_n_s_summary,0};
PyObject* values[4] = {0,0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject *)Py_True));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keys);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_summary);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_nbytes") < 0)) __PYX_ERR(0, 5739, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_keys = values[2];
__pyx_v_summary = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("get_nbytes", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5739, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_nbytes", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_156get_nbytes(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_keys, __pyx_v_summary);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_156get_nbytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_keys, PyObject *__pyx_v_summary) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_v_result = NULL;
PyObject *__pyx_v_out = NULL;
PyObject *__pyx_v_k = NULL;
PyObject *__pyx_v_v = NULL;
PyObject *__pyx_10genexpr127__pyx_v_k = NULL;
PyObject *__pyx_10genexpr128__pyx_v_k = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_10genexpr128__pyx_v_ts = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_nbytes", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_nbytes", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_v_result);
__Pyx_XDECREF(__pyx_v_out);
__Pyx_XDECREF(__pyx_v_k);
__Pyx_XDECREF(__pyx_v_v);
__Pyx_XDECREF(__pyx_10genexpr127__pyx_v_k);
__Pyx_XDECREF(__pyx_10genexpr128__pyx_v_k);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr128__pyx_v_ts);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__328 = PyTuple_Pack(13, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_keys, __pyx_n_s_summary, __pyx_n_s_parent, __pyx_n_s_ts, __pyx_n_s_result, __pyx_n_s_out, __pyx_n_s_k, __pyx_n_s_v, __pyx_n_s_k, __pyx_n_s_k, __pyx_n_s_ts); if (unlikely(!__pyx_tuple__328)) __PYX_ERR(0, 5739, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__328);
__Pyx_GIVEREF(__pyx_tuple__328);
__pyx_codeobj__329 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__328, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_get_nbytes, 5739, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__329)) __PYX_ERR(0, 5739, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_157get_nbytes, 0, __pyx_n_s_Scheduler_get_nbytes, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__329)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5739, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__330);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_get_nbytes, __pyx_t_12) < 0) __PYX_ERR(0, 5739, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__330 = PyTuple_Pack(3, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_True)); if (unlikely(!__pyx_tuple__330)) __PYX_ERR(0, 5739, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__330);
__Pyx_GIVEREF(__pyx_tuple__330);
+5740: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
5741: ts: TaskState
+5742: with log_errors():
/*with:*/ {
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_log_errors); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5742, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
}
}
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5742, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5742, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5742, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5742, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/*try:*/ {
{
/*try:*/ {
/* … */
}
__pyx_L7_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_nbytes", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_3, &__pyx_t_5) < 0) __PYX_ERR(0, 5742, __pyx_L9_except_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_2 = PyTuple_Pack(3, __pyx_t_1, __pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5742, __pyx_L9_except_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5742, __pyx_L9_except_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_16);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (__pyx_t_10 < 0) __PYX_ERR(0, 5742, __pyx_L9_except_error)
__pyx_t_9 = ((!(__pyx_t_10 != 0)) != 0);
if (__pyx_t_9) {
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_3, __pyx_t_5);
__pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_5 = 0;
__PYX_ERR(0, 5742, __pyx_L9_except_error)
}
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
goto __pyx_L8_exception_handled;
}
__pyx_L9_except_error:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L1_error;
__pyx_L11_try_return:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L4_return;
__pyx_L8_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_4) {
__pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5742, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
goto __pyx_L6;
}
__pyx_L4_return: {
__pyx_t_8 = __pyx_r;
__pyx_r = 0;
if (__pyx_t_4) {
__pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5742, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__pyx_r = __pyx_t_8;
__pyx_t_8 = 0;
goto __pyx_L0;
}
__pyx_L6:;
}
goto __pyx_L33;
__pyx_L3_error:;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L1_error;
__pyx_L33:;
}
+5743: if keys is not None:
__pyx_t_9 = (__pyx_v_keys != Py_None);
__pyx_t_10 = (__pyx_t_9 != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L13;
}
+5744: result = {k: parent._tasks[k].nbytes for k in keys}
{ /* enter inner scope */
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5744, __pyx_L16_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_v_keys)) || PyTuple_CheckExact(__pyx_v_keys)) {
__pyx_t_2 = __pyx_v_keys; __Pyx_INCREF(__pyx_t_2); __pyx_t_11 = 0;
__pyx_t_12 = NULL;
} else {
__pyx_t_11 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5744, __pyx_L16_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_12 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5744, __pyx_L16_error)
}
for (;;) {
if (likely(!__pyx_t_12)) {
if (likely(PyList_CheckExact(__pyx_t_2))) {
if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_11); __Pyx_INCREF(__pyx_t_3); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5744, __pyx_L16_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5744, __pyx_L16_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
} else {
if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_11); __Pyx_INCREF(__pyx_t_3); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5744, __pyx_L16_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5744, __pyx_L16_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
}
} else {
__pyx_t_3 = __pyx_t_12(__pyx_t_2);
if (unlikely(!__pyx_t_3)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5744, __pyx_L16_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_3);
}
__Pyx_XDECREF_SET(__pyx_10genexpr127__pyx_v_k, __pyx_t_3);
__pyx_t_3 = 0;
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5744, __pyx_L16_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_parent->_tasks, __pyx_10genexpr127__pyx_v_k); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5744, __pyx_L16_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_nbytes); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5744, __pyx_L16_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_10genexpr127__pyx_v_k, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 5744, __pyx_L16_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_10genexpr127__pyx_v_k); __pyx_10genexpr127__pyx_v_k = 0;
goto __pyx_L19_exit_scope;
__pyx_L16_error:;
__Pyx_XDECREF(__pyx_10genexpr127__pyx_v_k); __pyx_10genexpr127__pyx_v_k = 0;
goto __pyx_L7_error;
__pyx_L19_exit_scope:;
} /* exit inner scope */
__pyx_v_result = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
5745: else:
+5746: result = {
/*else*/ {
{ /* enter inner scope */
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5746, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_1);
+5747: k: ts._nbytes for k, ts in parent._tasks.items() if ts._nbytes >= 0
__pyx_t_11 = 0;
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 5747, __pyx_L22_error)
}
__pyx_t_5 = __Pyx_dict_iterator(__pyx_v_parent->_tasks, 1, __pyx_n_s_items, (&__pyx_t_13), (&__pyx_t_14)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5747, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_2);
__pyx_t_2 = __pyx_t_5;
__pyx_t_5 = 0;
while (1) {
__pyx_t_15 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_13, &__pyx_t_11, &__pyx_t_5, &__pyx_t_3, NULL, __pyx_t_14);
if (unlikely(__pyx_t_15 == 0)) break;
if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 5747, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5747, __pyx_L22_error)
__Pyx_XDECREF_SET(__pyx_10genexpr128__pyx_v_k, __pyx_t_5);
__pyx_t_5 = 0;
__Pyx_XDECREF_SET(__pyx_10genexpr128__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_3));
__pyx_t_3 = 0;
__pyx_t_10 = ((__pyx_10genexpr128__pyx_v_ts->_nbytes >= 0) != 0);
if (__pyx_t_10) {
__pyx_t_3 = PyInt_FromSsize_t(__pyx_10genexpr128__pyx_v_ts->_nbytes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5747, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_10genexpr128__pyx_v_k, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 5747, __pyx_L22_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_10genexpr128__pyx_v_k); __pyx_10genexpr128__pyx_v_k = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr128__pyx_v_ts); __pyx_10genexpr128__pyx_v_ts = 0;
goto __pyx_L26_exit_scope;
__pyx_L22_error:;
__Pyx_XDECREF(__pyx_10genexpr128__pyx_v_k); __pyx_10genexpr128__pyx_v_k = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr128__pyx_v_ts); __pyx_10genexpr128__pyx_v_ts = 0;
goto __pyx_L7_error;
__pyx_L26_exit_scope:;
} /* exit inner scope */
__pyx_v_result = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
}
__pyx_L13:;
5748: }
5749:
+5750: if summary:
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_summary); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 5750, __pyx_L7_error) if (__pyx_t_10) { /* … */ }
+5751: out = defaultdict(lambda: 0)
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_10get_nbytes_lambda21(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_10get_nbytes_lambda21 = {"lambda21", (PyCFunction)__pyx_pw_11distributed_9scheduler_9Scheduler_10get_nbytes_lambda21, METH_NOARGS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_10get_nbytes_lambda21(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("lambda21 (wrapper)", 0);
__pyx_r = __pyx_lambda_funcdef_lambda21(__pyx_self);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_lambda_funcdef_lambda21(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("lambda21", 0);
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_int_0);
__pyx_r = __pyx_int_0;
goto __pyx_L0;
/* function exit code */
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_defaultdict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5751, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_10get_nbytes_lambda21, 0, __pyx_n_s_Scheduler_get_nbytes_locals_lamb, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5751, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
}
}
__pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5751, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_out = __pyx_t_1;
__pyx_t_1 = 0;
+5752: for k, v in result.items():
__pyx_t_13 = 0;
__pyx_t_2 = __Pyx_dict_iterator(__pyx_v_result, 1, __pyx_n_s_items, (&__pyx_t_11), (&__pyx_t_14)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5752, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_2;
__pyx_t_2 = 0;
while (1) {
__pyx_t_15 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_11, &__pyx_t_13, &__pyx_t_2, &__pyx_t_3, NULL, __pyx_t_14);
if (unlikely(__pyx_t_15 == 0)) break;
if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 5752, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_2);
__pyx_t_2 = 0;
__Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_3);
__pyx_t_3 = 0;
+5753: out[key_split(k)] += v
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_key_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5753, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_v_k) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_k); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5753, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_out, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5753, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_t_2, __pyx_v_v); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5753, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(PyObject_SetItem(__pyx_v_out, __pyx_t_3, __pyx_t_5) < 0)) __PYX_ERR(0, 5753, __pyx_L7_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5754: result = dict(out)
__pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_v_out); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5754, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_result, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0;
5755:
+5756: return result
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_result); __pyx_r = __pyx_v_result; goto __pyx_L11_try_return;
5757:
+5758: def run_function(self, stream, function, args=(), kwargs={}, wait=True):
static PyObject *__pyx_pf_11distributed_9scheduler_48__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5758, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(((PyObject*)__pyx_empty_tuple));
__Pyx_GIVEREF(((PyObject*)__pyx_empty_tuple));
PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject*)__pyx_empty_tuple));
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_kwargs);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_kwargs);
PyTuple_SET_ITEM(__pyx_t_1, 1, __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_kwargs);
__Pyx_INCREF(((PyObject *)Py_True));
__Pyx_GIVEREF(((PyObject *)Py_True));
PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)Py_True));
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5758, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None);
__pyx_t_1 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("distributed.scheduler.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_159run_function(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_158run_function[] = "Run a function within this process\n\n See Also\n --------\n Client.run_on_scheduler\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_159run_function = {"run_function", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_159run_function, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_158run_function};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_159run_function(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_stream = 0;
PyObject *__pyx_v_function = 0;
PyObject *__pyx_v_args = 0;
PyObject *__pyx_v_kwargs = 0;
PyObject *__pyx_v_wait = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("run_function (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_stream,&__pyx_n_s_function,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_wait,0};
PyObject* values[6] = {0,0,0,0,0,0};
__pyx_defaults *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self);
values[3] = ((PyObject *)((PyObject*)__pyx_empty_tuple));
values[4] = __pyx_dynamic_args->__pyx_arg_kwargs;
values[5] = ((PyObject *)((PyObject *)Py_True));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stream)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("run_function", 0, 3, 6, 1); __PYX_ERR(0, 5758, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_function)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("run_function", 0, 3, 6, 2); __PYX_ERR(0, 5758, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wait);
if (value) { values[5] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "run_function") < 0)) __PYX_ERR(0, 5758, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_stream = values[1];
__pyx_v_function = values[2];
__pyx_v_args = values[3];
__pyx_v_kwargs = values[4];
__pyx_v_wait = values[5];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("run_function", 0, 3, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5758, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.run_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_158run_function(__pyx_self, __pyx_v_self, __pyx_v_stream, __pyx_v_function, __pyx_v_args, __pyx_v_kwargs, __pyx_v_wait);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_158run_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_stream, PyObject *__pyx_v_function, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, PyObject *__pyx_v_wait) {
PyObject *__pyx_v_run = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("run_function", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.run_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_run);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__331 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_stream, __pyx_n_s_function, __pyx_n_s_args, __pyx_n_s_kwargs, __pyx_n_s_wait, __pyx_n_s_run); if (unlikely(!__pyx_tuple__331)) __PYX_ERR(0, 5758, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__331);
__Pyx_GIVEREF(__pyx_tuple__331);
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_159run_function, 0, __pyx_n_s_Scheduler_run_function, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__332)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5758, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults), 1)) __PYX_ERR(0, 5758, __pyx_L1_error)
__pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5758, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_t_12)->__pyx_arg_kwargs = __pyx_t_2;
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_11distributed_9scheduler_48__defaults__);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_run_function, __pyx_t_12) < 0) __PYX_ERR(0, 5758, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_codeobj__332 = (PyObject*)__Pyx_PyCode_New(6, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__331, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_run_function, 5758, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__332)) __PYX_ERR(0, 5758, __pyx_L1_error)
5759: """Run a function within this process
5760:
5761: See Also
5762: --------
5763: Client.run_on_scheduler
5764: """
+5765: from .worker import run
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_run); __Pyx_GIVEREF(__pyx_n_s_run); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_run); __pyx_t_2 = __Pyx_Import(__pyx_n_s_worker, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_run); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_1); __pyx_v_run = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5766:
+5767: self.log_event("all", {"action": "run-function", "function": function})
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_log_event_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_action, __pyx_kp_u_run_function_2) < 0) __PYX_ERR(0, 5767, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_function, __pyx_v_function) < 0) __PYX_ERR(0, 5767, __pyx_L1_error) __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_n_u_all, __pyx_t_3}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5767, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_n_u_all, __pyx_t_3}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5767, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_n_u_all); __Pyx_GIVEREF(__pyx_n_u_all); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_n_u_all); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5768: return run(self, stream, function=function, args=args, kwargs=kwargs, wait=wait)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self); __Pyx_INCREF(__pyx_v_stream); __Pyx_GIVEREF(__pyx_v_stream); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_stream); __pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_function, __pyx_v_function) < 0) __PYX_ERR(0, 5768, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_args, __pyx_v_args) < 0) __PYX_ERR(0, 5768, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_kwargs, __pyx_v_kwargs) < 0) __PYX_ERR(0, 5768, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_wait, __pyx_v_wait) < 0) __PYX_ERR(0, 5768, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_run, __pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0;
5769:
+5770: def set_metadata(self, comm=None, keys=None, value=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_161set_metadata(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_161set_metadata = {"set_metadata", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_161set_metadata, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_161set_metadata(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_keys = 0;
PyObject *__pyx_v_value = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_metadata (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_keys,&__pyx_n_s_value,0};
PyObject* values[4] = {0,0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keys);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_metadata") < 0)) __PYX_ERR(0, 5770, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_keys = values[2];
__pyx_v_value = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("set_metadata", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5770, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.set_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_160set_metadata(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_keys, __pyx_v_value);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_160set_metadata(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_keys, PyObject *__pyx_v_value) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_v_metadata = NULL;
PyObject *__pyx_v_key = NULL;
CYTHON_UNUSED PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_pdb = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("set_metadata", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.set_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_v_metadata);
__Pyx_XDECREF(__pyx_v_key);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_pdb);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__333 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_keys, __pyx_n_s_value, __pyx_n_s_parent, __pyx_n_s_metadata, __pyx_n_s_key, __pyx_n_s_e, __pyx_n_s_pdb); if (unlikely(!__pyx_tuple__333)) __PYX_ERR(0, 5770, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__333);
__Pyx_GIVEREF(__pyx_tuple__333);
__pyx_codeobj__334 = (PyObject*)__Pyx_PyCode_New(4, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__333, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_set_metadata, 5770, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__334)) __PYX_ERR(0, 5770, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_161set_metadata, 0, __pyx_n_s_Scheduler_set_metadata, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__334)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5770, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__335);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_set_metadata, __pyx_t_12) < 0) __PYX_ERR(0, 5770, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__335 = PyTuple_Pack(3, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__335)) __PYX_ERR(0, 5770, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__335);
__Pyx_GIVEREF(__pyx_tuple__335);
+5771: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+5772: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L8_try_end;
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L1_error;
__pyx_L4_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
__pyx_L8_try_end:;
}
+5773: metadata = parent._task_metadata
__pyx_t_1 = __pyx_v_parent->_task_metadata;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_metadata = __pyx_t_1;
__pyx_t_1 = 0;
+5774: for key in keys[:-1]:
__pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_keys, 0, -1L, NULL, NULL, &__pyx_slice__83, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5774, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5774, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5774, __pyx_L3_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_7)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 5774, __pyx_L3_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5774, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 5774, __pyx_L3_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5774, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_7(__pyx_t_5); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5774, __pyx_L3_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ __pyx_slice__83 = PySlice_New(Py_None, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_slice__83)) __PYX_ERR(0, 5774, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__83); __Pyx_GIVEREF(__pyx_slice__83);
+5775: if key not in metadata or not isinstance(metadata[key], (dict, list)):
__pyx_t_9 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_v_metadata, Py_NE)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 5775, __pyx_L3_error) __pyx_t_10 = (__pyx_t_9 != 0); if (!__pyx_t_10) { } else { __pyx_t_8 = __pyx_t_10; goto __pyx_L12_bool_binop_done; } __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_metadata, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5775, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = PyDict_Check(__pyx_t_1); __pyx_t_11 = (__pyx_t_9 != 0); if (!__pyx_t_11) { } else { __pyx_t_10 = __pyx_t_11; goto __pyx_L14_bool_binop_done; } __pyx_t_11 = PyList_Check(__pyx_t_1); __pyx_t_9 = (__pyx_t_11 != 0); __pyx_t_10 = __pyx_t_9; __pyx_L14_bool_binop_done:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_9 = ((!(__pyx_t_10 != 0)) != 0); __pyx_t_8 = __pyx_t_9; __pyx_L12_bool_binop_done:; if (__pyx_t_8) { /* … */ }
+5776: metadata[key] = dict()
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5776, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_v_metadata, __pyx_v_key, __pyx_t_1) < 0)) __PYX_ERR(0, 5776, __pyx_L3_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5777: metadata = metadata[key]
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_metadata, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5777, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_metadata, __pyx_t_1); __pyx_t_1 = 0;
+5778: metadata[keys[-1]] = value
__pyx_t_5 = __Pyx_GetItemInt(__pyx_v_keys, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5778, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(PyObject_SetItem(__pyx_v_metadata, __pyx_t_5, __pyx_v_value) < 0)) __PYX_ERR(0, 5778, __pyx_L3_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5779: except Exception as e:
__pyx_t_12 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_12) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.set_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_13) < 0) __PYX_ERR(0, 5779, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_v_e = __pyx_t_1; /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; goto __pyx_L22; } __pyx_L21_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21) < 0)) __Pyx_ErrFetch(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __pyx_t_12 = __pyx_lineno; __pyx_t_17 = __pyx_clineno; __pyx_t_18 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_ExceptionReset(__pyx_t_22, __pyx_t_23, __pyx_t_24); } __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_ErrRestore(__pyx_t_19, __pyx_t_20, __pyx_t_21); __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_lineno = __pyx_t_12; __pyx_clineno = __pyx_t_17; __pyx_filename = __pyx_t_18; goto __pyx_L5_except_error; } __pyx_L22:; } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; goto __pyx_L4_exception_handled; } goto __pyx_L5_except_error; __pyx_L5_except_error:;
+5780: import pdb
__pyx_t_14 = __Pyx_Import(__pyx_n_s_pdb, 0, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5780, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_14); __pyx_v_pdb = __pyx_t_14; __pyx_t_14 = 0;
5781:
+5782: pdb.set_trace()
__pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_pdb, __pyx_n_s_set_trace); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5782, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_15))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_14 = (__pyx_t_16) ? __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_16) : __Pyx_PyObject_CallNoArg(__pyx_t_15); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5782, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; }
5783:
+5784: def get_metadata(self, comm=None, keys=None, default=no_default):
static PyObject *__pyx_pf_11distributed_9scheduler_50__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5784, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(((PyObject *)Py_None));
__Pyx_GIVEREF(((PyObject *)Py_None));
PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_None));
__Pyx_INCREF(((PyObject *)Py_None));
__Pyx_GIVEREF(((PyObject *)Py_None));
PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)Py_None));
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_default);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_default);
PyTuple_SET_ITEM(__pyx_t_1, 2, __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_default);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5784, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None);
__pyx_t_1 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("distributed.scheduler.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_163get_metadata(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_163get_metadata = {"get_metadata", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_163get_metadata, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_163get_metadata(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_keys = 0;
PyObject *__pyx_v_default = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_metadata (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_keys,&__pyx_n_s_default,0};
PyObject* values[4] = {0,0,0,0};
__pyx_defaults1 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self);
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = __pyx_dynamic_args->__pyx_arg_default;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keys);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_default);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_metadata") < 0)) __PYX_ERR(0, 5784, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_keys = values[2];
__pyx_v_default = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("get_metadata", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5784, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_162get_metadata(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_keys, __pyx_v_default);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_162get_metadata(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_keys, PyObject *__pyx_v_default) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_v_metadata = NULL;
PyObject *__pyx_v_key = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_metadata", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_v_metadata);
__Pyx_XDECREF(__pyx_v_key);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__336 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_keys, __pyx_n_s_default, __pyx_n_s_parent, __pyx_n_s_metadata, __pyx_n_s_key); if (unlikely(!__pyx_tuple__336)) __PYX_ERR(0, 5784, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__336);
__Pyx_GIVEREF(__pyx_tuple__336);
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_163get_metadata, 0, __pyx_n_s_Scheduler_get_metadata, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__337)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5784, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults1), 1)) __PYX_ERR(0, 5784, __pyx_L1_error)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_no_default); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5784, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_t_12)->__pyx_arg_default = __pyx_t_2;
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_11distributed_9scheduler_50__defaults__);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_get_metadata, __pyx_t_12) < 0) __PYX_ERR(0, 5784, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_codeobj__337 = (PyObject*)__Pyx_PyCode_New(4, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_get_metadata, 5784, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__337)) __PYX_ERR(0, 5784, __pyx_L1_error)
+5785: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+5786: metadata = parent._task_metadata
__pyx_t_1 = __pyx_v_parent->_task_metadata;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_metadata = __pyx_t_1;
__pyx_t_1 = 0;
+5787: for key in keys[:-1]:
__pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_keys, 0, -1L, NULL, NULL, &__pyx_slice__83, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5787, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_4)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5787, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5787, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_4(__pyx_t_2); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5787, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5788: metadata = metadata[key]
__pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_metadata, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_metadata, __pyx_t_1); __pyx_t_1 = 0;
+5789: try:
{
/*try:*/ {
/* … */
}
__pyx_L5_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
goto __pyx_L1_error;
__pyx_L9_try_return:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
goto __pyx_L0;
__pyx_L8_except_return:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
goto __pyx_L0;
}
+5790: return metadata[keys[-1]]
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_keys, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5790, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_metadata, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5790, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L9_try_return;
+5791: except KeyError:
__pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); if (__pyx_t_8) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.get_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_9) < 0) __PYX_ERR(0, 5791, __pyx_L7_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_9);
+5792: if default != no_default:
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_no_default); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5792, __pyx_L7_except_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = PyObject_RichCompare(__pyx_v_default, __pyx_t_10, Py_NE); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5792, __pyx_L7_except_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5792, __pyx_L7_except_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (likely(__pyx_t_12)) { /* … */ }
+5793: return default
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_default); __pyx_r = __pyx_v_default; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L8_except_return;
5794: else:
+5795: raise
/*else*/ {
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_2, __pyx_t_9);
__pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_9 = 0;
__PYX_ERR(0, 5795, __pyx_L7_except_error)
}
}
goto __pyx_L7_except_error;
__pyx_L7_except_error:;
5796:
+5797: def get_task_status(self, comm=None, keys=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_165get_task_status(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_165get_task_status = {"get_task_status", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_165get_task_status, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_165get_task_status(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_keys = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_task_status (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_keys,0};
PyObject* values[3] = {0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keys);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_task_status") < 0)) __PYX_ERR(0, 5797, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_keys = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("get_task_status", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5797, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_task_status", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_164get_task_status(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_keys);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_164get_task_status(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_keys) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_10genexpr129__pyx_v_key = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_task_status", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_task_status", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_10genexpr129__pyx_v_key);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__338 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_keys, __pyx_n_s_parent, __pyx_n_s_key); if (unlikely(!__pyx_tuple__338)) __PYX_ERR(0, 5797, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__338);
__Pyx_GIVEREF(__pyx_tuple__338);
__pyx_codeobj__339 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__338, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_get_task_status, 5797, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__339)) __PYX_ERR(0, 5797, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_165get_task_status, 0, __pyx_n_s_Scheduler_get_task_status, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__339)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5797, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__340);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_get_task_status, __pyx_t_12) < 0) __PYX_ERR(0, 5797, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__340 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__340)) __PYX_ERR(0, 5797, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__340);
__Pyx_GIVEREF(__pyx_tuple__340);
+5798: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+5799: return {
__Pyx_XDECREF(__pyx_r); { /* enter inner scope */ __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5799, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1);
+5800: key: (parent._tasks[key].state if key in parent._tasks else None)
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 5800, __pyx_L5_error)
}
__pyx_t_6 = (__Pyx_PyDict_ContainsTF(__pyx_10genexpr129__pyx_v_key, __pyx_v_parent->_tasks, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 5800, __pyx_L5_error)
if ((__pyx_t_6 != 0)) {
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5800, __pyx_L5_error)
}
__pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_parent->_tasks, __pyx_10genexpr129__pyx_v_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5800, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_state); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5800, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_5 = __pyx_t_8;
__pyx_t_8 = 0;
} else {
__Pyx_INCREF(Py_None);
__pyx_t_5 = Py_None;
}
if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_10genexpr129__pyx_v_key, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 5800, __pyx_L5_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5801: for key in keys
if (likely(PyList_CheckExact(__pyx_v_keys)) || PyTuple_CheckExact(__pyx_v_keys)) { __pyx_t_2 = __pyx_v_keys; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5801, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5801, __pyx_L5_error) } for (;;) { if (likely(!__pyx_t_4)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5801, __pyx_L5_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5801, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 5801, __pyx_L5_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5801, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_5); #endif } } else { __pyx_t_5 = __pyx_t_4(__pyx_t_2); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5801, __pyx_L5_error) } break; } __Pyx_GOTREF(__pyx_t_5); } __Pyx_XDECREF_SET(__pyx_10genexpr129__pyx_v_key, __pyx_t_5); __pyx_t_5 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_10genexpr129__pyx_v_key); __pyx_10genexpr129__pyx_v_key = 0; goto __pyx_L8_exit_scope; __pyx_L5_error:; __Pyx_XDECREF(__pyx_10genexpr129__pyx_v_key); __pyx_10genexpr129__pyx_v_key = 0; goto __pyx_L1_error; __pyx_L8_exit_scope:; } /* exit inner scope */ __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
5802: }
5803:
+5804: def get_task_stream(self, comm=None, start=None, stop=None, count=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_167get_task_stream(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_167get_task_stream = {"get_task_stream", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_167get_task_stream, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_167get_task_stream(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_start = 0;
PyObject *__pyx_v_stop = 0;
PyObject *__pyx_v_count = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_task_stream (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_start,&__pyx_n_s_stop,&__pyx_n_s_count,0};
PyObject* values[5] = {0,0,0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject *)Py_None));
values[4] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stop);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_count);
if (value) { values[4] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_task_stream") < 0)) __PYX_ERR(0, 5804, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_start = values[2];
__pyx_v_stop = values[3];
__pyx_v_count = values[4];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("get_task_stream", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5804, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_task_stream", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_166get_task_stream(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_start, __pyx_v_stop, __pyx_v_count);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_166get_task_stream(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_start, PyObject *__pyx_v_stop, PyObject *__pyx_v_count) {
PyObject *__pyx_v_TaskStreamPlugin = NULL;
PyObject *__pyx_v_tsp = NULL;
PyObject *__pyx_10genexpr130__pyx_v_p = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_task_stream", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_task_stream", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_TaskStreamPlugin);
__Pyx_XDECREF(__pyx_v_tsp);
__Pyx_XDECREF(__pyx_10genexpr130__pyx_v_p);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__341 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_start, __pyx_n_s_stop, __pyx_n_s_count, __pyx_n_s_TaskStreamPlugin, __pyx_n_s_tsp, __pyx_n_s_p); if (unlikely(!__pyx_tuple__341)) __PYX_ERR(0, 5804, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__341);
__Pyx_GIVEREF(__pyx_tuple__341);
__pyx_codeobj__342 = (PyObject*)__Pyx_PyCode_New(5, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__341, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_get_task_stream, 5804, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__342)) __PYX_ERR(0, 5804, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_167get_task_stream, 0, __pyx_n_s_Scheduler_get_task_stream, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__342)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5804, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__343);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_get_task_stream, __pyx_t_12) < 0) __PYX_ERR(0, 5804, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__343 = PyTuple_Pack(4, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__343)) __PYX_ERR(0, 5804, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__343);
__Pyx_GIVEREF(__pyx_tuple__343);
+5805: from distributed.diagnostics.task_stream import TaskStreamPlugin
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_TaskStreamPlugin); __Pyx_GIVEREF(__pyx_n_s_TaskStreamPlugin); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_TaskStreamPlugin); __pyx_t_2 = __Pyx_Import(__pyx_n_s_distributed_diagnostics_task_str, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_TaskStreamPlugin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_1); __pyx_v_TaskStreamPlugin = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5806:
+5807: self.add_plugin(TaskStreamPlugin, idempotent=True)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_add_plugin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_TaskStreamPlugin); __Pyx_GIVEREF(__pyx_v_TaskStreamPlugin); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_TaskStreamPlugin); __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_idempotent, Py_True) < 0) __PYX_ERR(0, 5807, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5808: tsp = [p for p in self.plugins if isinstance(p, TaskStreamPlugin)][0]
{ /* enter inner scope */
__pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5808, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_plugins); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5808, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_3);
if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
__pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
__pyx_t_6 = NULL;
} else {
__pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5808, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5808, __pyx_L5_error)
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
for (;;) {
if (likely(!__pyx_t_6)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5808, __pyx_L5_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5808, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
} else {
if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5808, __pyx_L5_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5808, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
}
} else {
__pyx_t_3 = __pyx_t_6(__pyx_t_1);
if (unlikely(!__pyx_t_3)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 5808, __pyx_L5_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_3);
}
__Pyx_XDECREF_SET(__pyx_10genexpr130__pyx_v_p, __pyx_t_3);
__pyx_t_3 = 0;
__pyx_t_7 = PyObject_IsInstance(__pyx_10genexpr130__pyx_v_p, __pyx_v_TaskStreamPlugin); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 5808, __pyx_L5_error)
__pyx_t_8 = (__pyx_t_7 != 0);
if (__pyx_t_8) {
if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_10genexpr130__pyx_v_p))) __PYX_ERR(0, 5808, __pyx_L5_error)
}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_10genexpr130__pyx_v_p); __pyx_10genexpr130__pyx_v_p = 0;
goto __pyx_L9_exit_scope;
__pyx_L5_error:;
__Pyx_XDECREF(__pyx_10genexpr130__pyx_v_p); __pyx_10genexpr130__pyx_v_p = 0;
goto __pyx_L1_error;
__pyx_L9_exit_scope:;
} /* exit inner scope */
__pyx_t_1 = __Pyx_GetItemInt_List(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5808, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_v_tsp = __pyx_t_1;
__pyx_t_1 = 0;
+5809: return tsp.collect(start=start, stop=stop, count=count)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_tsp, __pyx_n_s_collect); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_start, __pyx_v_start) < 0) __PYX_ERR(0, 5809, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_stop, __pyx_v_stop) < 0) __PYX_ERR(0, 5809, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_count, __pyx_v_count) < 0) __PYX_ERR(0, 5809, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
5810:
+5811: def start_task_metadata(self, comm=None, name=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_169start_task_metadata(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_169start_task_metadata = {"start_task_metadata", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_169start_task_metadata, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_169start_task_metadata(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_name = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("start_task_metadata (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_name,0};
PyObject* values[3] = {0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_task_metadata") < 0)) __PYX_ERR(0, 5811, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_name = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("start_task_metadata", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5811, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.start_task_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_168start_task_metadata(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_name);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_168start_task_metadata(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_name) {
PyObject *__pyx_v_plugin = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("start_task_metadata", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.start_task_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_plugin);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__344 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_name, __pyx_n_s_plugin); if (unlikely(!__pyx_tuple__344)) __PYX_ERR(0, 5811, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__344);
__Pyx_GIVEREF(__pyx_tuple__344);
__pyx_codeobj__345 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__344, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_start_task_metadata, 5811, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__345)) __PYX_ERR(0, 5811, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_169start_task_metadata, 0, __pyx_n_s_Scheduler_start_task_metadata, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__345)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5811, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__346);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_start_task_metadata, __pyx_t_12) < 0) __PYX_ERR(0, 5811, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__346 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__346)) __PYX_ERR(0, 5811, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__346);
__Pyx_GIVEREF(__pyx_tuple__346);
+5812: plugin = CollectTaskMetaDataPlugin(scheduler=self, name=name)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CollectTaskMetaDataPlugin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5812, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5812, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_scheduler, __pyx_v_self) < 0) __PYX_ERR(0, 5812, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_name, __pyx_v_name) < 0) __PYX_ERR(0, 5812, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5812, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_plugin = __pyx_t_3; __pyx_t_3 = 0;
5813:
+5814: self.add_plugin(plugin)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_add_plugin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_v_plugin) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_plugin); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5815:
+5816: def stop_task_metadata(self, comm=None, name=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_171stop_task_metadata(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_171stop_task_metadata = {"stop_task_metadata", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_171stop_task_metadata, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_171stop_task_metadata(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_name = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("stop_task_metadata (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_name,0};
PyObject* values[3] = {0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stop_task_metadata") < 0)) __PYX_ERR(0, 5816, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_name = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("stop_task_metadata", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5816, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.stop_task_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_170stop_task_metadata(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_name);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_170stop_task_metadata(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_name) {
PyObject *__pyx_v_plugins = NULL;
PyObject *__pyx_v_plugin = NULL;
PyObject *__pyx_10genexpr131__pyx_v_p = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("stop_task_metadata", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.stop_task_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_plugins);
__Pyx_XDECREF(__pyx_v_plugin);
__Pyx_XDECREF(__pyx_10genexpr131__pyx_v_p);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_174generator19(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__347 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_name, __pyx_n_s_plugins, __pyx_n_s_plugin, __pyx_n_s_p); if (unlikely(!__pyx_tuple__347)) __PYX_ERR(0, 5816, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__347);
__Pyx_GIVEREF(__pyx_tuple__347);
__pyx_codeobj__348 = (PyObject*)__Pyx_PyCode_New(3, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__347, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_stop_task_metadata, 5816, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__348)) __PYX_ERR(0, 5816, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_171stop_task_metadata, 0, __pyx_n_s_Scheduler_stop_task_metadata, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__348)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5816, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__349);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_stop_task_metadata, __pyx_t_12) < 0) __PYX_ERR(0, 5816, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__349 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__349)) __PYX_ERR(0, 5816, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__349);
__Pyx_GIVEREF(__pyx_tuple__349);
+5817: plugins = [
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5817, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_1);
+5818: p
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_10genexpr131__pyx_v_p))) __PYX_ERR(0, 5817, __pyx_L5_error)
+5819: for p in self.plugins
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_plugins); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5819, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5819, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5819, __pyx_L5_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_5)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5819, __pyx_L5_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5819, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5819, __pyx_L5_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5819, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_5(__pyx_t_3); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 5819, __pyx_L5_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XDECREF_SET(__pyx_10genexpr131__pyx_v_p, __pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_10genexpr131__pyx_v_p); __pyx_10genexpr131__pyx_v_p = 0; goto __pyx_L11_exit_scope; __pyx_L5_error:; __Pyx_XDECREF(__pyx_10genexpr131__pyx_v_p); __pyx_10genexpr131__pyx_v_p = 0; goto __pyx_L1_error; __pyx_L11_exit_scope:; } /* exit inner scope */ __pyx_v_plugins = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+5820: if isinstance(p, CollectTaskMetaDataPlugin) and p.name == name
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CollectTaskMetaDataPlugin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5820, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = PyObject_IsInstance(__pyx_10genexpr131__pyx_v_p, __pyx_t_2); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 5820, __pyx_L5_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_8 = (__pyx_t_7 != 0); if (__pyx_t_8) { } else { __pyx_t_6 = __pyx_t_8; goto __pyx_L9_bool_binop_done; } __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_10genexpr131__pyx_v_p, __pyx_n_s_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5820, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = PyObject_RichCompare(__pyx_t_2, __pyx_v_name, Py_EQ); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5820, __pyx_L5_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 5820, __pyx_L5_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_6 = __pyx_t_8; __pyx_L9_bool_binop_done:; if (__pyx_t_6) { /* … */ }
5821: ]
+5822: if len(plugins) != 1:
__pyx_t_4 = PyList_GET_SIZE(__pyx_v_plugins); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5822, __pyx_L1_error) __pyx_t_6 = ((__pyx_t_4 != 1) != 0); if (unlikely(__pyx_t_6)) { /* … */ }
+5823: raise ValueError(
__pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 5823, __pyx_L1_error)
+5824: "Expected to find exactly one CollectTaskMetaDataPlugin "
__pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5824, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = 0; __pyx_t_10 = 127; __Pyx_INCREF(__pyx_kp_u_Expected_to_find_exactly_one_Col); __pyx_t_4 += 65; __Pyx_GIVEREF(__pyx_kp_u_Expected_to_find_exactly_one_Col); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_Expected_to_find_exactly_one_Col); /* … */ __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_1, 5, __pyx_t_4, __pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5824, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5825: f"with name {name} but found {len(plugins)}."
__pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_name, __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_10) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_10; __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3); __pyx_t_3 = 0; __Pyx_INCREF(__pyx_kp_u_but_found); __pyx_t_4 += 11; __Pyx_GIVEREF(__pyx_kp_u_but_found); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u_but_found); __pyx_t_11 = PyList_GET_SIZE(__pyx_v_plugins); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5825, __pyx_L1_error) __pyx_t_3 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_11, 0, ' ', 'd'); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_3); __pyx_t_3 = 0; __Pyx_INCREF(__pyx_kp_u__84); __pyx_t_4 += 1; __Pyx_GIVEREF(__pyx_kp_u__84); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_kp_u__84);
5826: )
5827:
+5828: plugin = plugins[0]
__pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_plugins, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_plugin = __pyx_t_1; __pyx_t_1 = 0;
+5829: self.remove_plugin(plugin)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_remove_plugin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_9, __pyx_v_plugin) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_plugin); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5830: return {"metadata": plugin.metadata, "state": plugin.state}
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin, __pyx_n_s_metadata); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_metadata, __pyx_t_3) < 0) __PYX_ERR(0, 5830, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin, __pyx_n_s_state); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_state, __pyx_t_3) < 0) __PYX_ERR(0, 5830, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
5831:
+5832: async def register_worker_plugin(self, comm, plugin, name=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_173register_worker_plugin(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_172register_worker_plugin[] = " Registers a setup function, and call it on every worker ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_173register_worker_plugin = {"register_worker_plugin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_173register_worker_plugin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_172register_worker_plugin};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_173register_worker_plugin(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_plugin = 0;
PyObject *__pyx_v_name = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("register_worker_plugin (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_plugin,&__pyx_n_s_name,0};
PyObject* values[4] = {0,0,0,0};
values[3] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("register_worker_plugin", 0, 3, 4, 1); __PYX_ERR(0, 5832, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_plugin)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("register_worker_plugin", 0, 3, 4, 2); __PYX_ERR(0, 5832, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "register_worker_plugin") < 0)) __PYX_ERR(0, 5832, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_plugin = values[2];
__pyx_v_name = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("register_worker_plugin", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5832, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.register_worker_plugin", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_172register_worker_plugin(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_plugin, __pyx_v_name);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_172register_worker_plugin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_plugin, PyObject *__pyx_v_name) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_47_register_worker_plugin *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("register_worker_plugin", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_47_register_worker_plugin *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_47_register_worker_plugin(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_47_register_worker_plugin, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_47_register_worker_plugin *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 5832, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_comm = __pyx_v_comm;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm);
__pyx_cur_scope->__pyx_v_plugin = __pyx_v_plugin;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_plugin);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_plugin);
__pyx_cur_scope->__pyx_v_name = __pyx_v_name;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_name);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_174generator19, __pyx_codeobj__85, (PyObject *) __pyx_cur_scope, __pyx_n_s_register_worker_plugin, __pyx_n_s_Scheduler_register_worker_plugin, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 5832, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.register_worker_plugin", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_174generator19(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("register_worker_plugin", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5832, __pyx_L1_error)
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("register_worker_plugin", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__350 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_plugin, __pyx_n_s_name, __pyx_n_s_responses); if (unlikely(!__pyx_tuple__350)) __PYX_ERR(0, 5832, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__350);
__Pyx_GIVEREF(__pyx_tuple__350);
__pyx_codeobj__85 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__350, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_register_worker_plugin, 5832, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__85)) __PYX_ERR(0, 5832, __pyx_L1_error)
/* … */
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_173register_worker_plugin, 0, __pyx_n_s_Scheduler_register_worker_plugin, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__85)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5832, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_tuple__351);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_register_worker_plugin, __pyx_t_12) < 0) __PYX_ERR(0, 5832, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_tuple__351 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__351)) __PYX_ERR(0, 5832, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__351);
__Pyx_GIVEREF(__pyx_tuple__351);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_47_register_worker_plugin {
PyObject_HEAD
PyObject *__pyx_v_comm;
PyObject *__pyx_v_name;
PyObject *__pyx_v_plugin;
PyObject *__pyx_v_responses;
PyObject *__pyx_v_self;
};
5833: """ Registers a setup function, and call it on every worker """
+5834: self.worker_plugins.append({"plugin": plugin, "name": name})
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_worker_plugins); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_plugin, __pyx_cur_scope->__pyx_v_plugin) < 0) __PYX_ERR(0, 5834, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_name, __pyx_cur_scope->__pyx_v_name) < 0) __PYX_ERR(0, 5834, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 5834, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5835:
+5836: responses = await self.broadcast(
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_broadcast); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); /* … */ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L4_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 5836, __pyx_L1_error) __pyx_t_4 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_4); } else { __pyx_t_4 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_4) < 0) __PYX_ERR(0, 5836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_GIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_v_responses = __pyx_t_4; __pyx_t_4 = 0;
+5837: msg=dict(op="plugin-add", plugin=plugin, name=name)
__pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_op, __pyx_kp_u_plugin_add) < 0) __PYX_ERR(0, 5837, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_plugin, __pyx_cur_scope->__pyx_v_plugin) < 0) __PYX_ERR(0, 5837, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_name, __pyx_cur_scope->__pyx_v_name) < 0) __PYX_ERR(0, 5837, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_msg, __pyx_t_4) < 0) __PYX_ERR(0, 5837, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
5838: )
+5839: return responses
__Pyx_XDECREF(__pyx_r); __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_cur_scope->__pyx_v_responses); goto __pyx_L0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
5840:
5841: #####################
5842: # State Transitions #
5843: #####################
5844:
+5845: def _transition(self, key, finish: str, *args, **kwargs):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_176_transition(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_175_transition[] = "Transition a key from its current state to the finish state\n\n Examples\n --------\n >>> self._transition('x', 'waiting')\n {'x': 'processing'}\n\n Returns\n -------\n Dictionary of recommendations for future transitions\n\n See Also\n --------\n Scheduler.transitions : transitive version of this function\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_176_transition = {"_transition", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_176_transition, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_175_transition};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_176_transition(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_finish = 0;
PyObject *__pyx_v_args = 0;
PyObject *__pyx_v_kwargs = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_transition (wrapper)", 0);
__pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
__Pyx_GOTREF(__pyx_v_kwargs);
if (PyTuple_GET_SIZE(__pyx_args) > 3) {
__pyx_v_args = PyTuple_GetSlice(__pyx_args, 3, PyTuple_GET_SIZE(__pyx_args));
if (unlikely(!__pyx_v_args)) {
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
__Pyx_RefNannyFinishContext();
return NULL;
}
__Pyx_GOTREF(__pyx_v_args);
} else {
__pyx_v_args = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple);
}
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,&__pyx_n_s_finish,0};
PyObject* values[3] = {0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
default:
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_transition", 0, 3, 3, 1); __PYX_ERR(0, 5845, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_finish)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_transition", 0, 3, 3, 2); __PYX_ERR(0, 5845, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t used_pos_args = (pos_args < 3) ? pos_args : 3;
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "_transition") < 0)) __PYX_ERR(0, 5845, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) < 3) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
}
__pyx_v_self = values[0];
__pyx_v_key = values[1];
__pyx_v_finish = ((PyObject*)values[2]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_transition", 0, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5845, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0;
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
__Pyx_AddTraceback("distributed.scheduler.Scheduler._transition", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_finish), (&PyUnicode_Type), 1, "finish", 1))) __PYX_ERR(0, 5845, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_175_transition(__pyx_self, __pyx_v_self, __pyx_v_key, __pyx_v_finish, __pyx_v_args, __pyx_v_kwargs);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_args);
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_175_transition(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_finish, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_v_start = 0;
PyObject *__pyx_v_start_finish = 0;
PyObject *__pyx_v_finish2 = 0;
PyObject *__pyx_v_recommendations = 0;
PyObject *__pyx_v_worker_msgs = 0;
PyObject *__pyx_v_client_msgs = 0;
PyObject *__pyx_v_msgs = 0;
PyObject *__pyx_v_new_msgs = 0;
PyObject *__pyx_v_dependents = 0;
PyObject *__pyx_v_dependencies = 0;
PyObject *__pyx_v_func = NULL;
PyObject *__pyx_v_a = 0;
PyObject *__pyx_v_a_recs = 0;
PyObject *__pyx_v_a_wmsgs = 0;
PyObject *__pyx_v_a_cmsgs = 0;
PyObject *__pyx_v_v = NULL;
PyObject *__pyx_v_b_recs = 0;
PyObject *__pyx_v_b_wmsgs = 0;
PyObject *__pyx_v_b_cmsgs = 0;
PyObject *__pyx_v_b = 0;
PyObject *__pyx_v_w = NULL;
PyObject *__pyx_v_c = NULL;
PyObject *__pyx_v_plugin = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskGroup *__pyx_v_tg = 0;
int __pyx_v_all_forgotten;
PyObject *__pyx_v_s = NULL;
CYTHON_UNUSED PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_pdb = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_transition", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_20);
__Pyx_XDECREF(__pyx_t_21);
__Pyx_AddTraceback("distributed.scheduler.Scheduler._transition", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF(__pyx_v_start);
__Pyx_XDECREF(__pyx_v_start_finish);
__Pyx_XDECREF(__pyx_v_finish2);
__Pyx_XDECREF(__pyx_v_recommendations);
__Pyx_XDECREF(__pyx_v_worker_msgs);
__Pyx_XDECREF(__pyx_v_client_msgs);
__Pyx_XDECREF(__pyx_v_msgs);
__Pyx_XDECREF(__pyx_v_new_msgs);
__Pyx_XDECREF(__pyx_v_dependents);
__Pyx_XDECREF(__pyx_v_dependencies);
__Pyx_XDECREF(__pyx_v_func);
__Pyx_XDECREF(__pyx_v_a);
__Pyx_XDECREF(__pyx_v_a_recs);
__Pyx_XDECREF(__pyx_v_a_wmsgs);
__Pyx_XDECREF(__pyx_v_a_cmsgs);
__Pyx_XDECREF(__pyx_v_v);
__Pyx_XDECREF(__pyx_v_b_recs);
__Pyx_XDECREF(__pyx_v_b_wmsgs);
__Pyx_XDECREF(__pyx_v_b_cmsgs);
__Pyx_XDECREF(__pyx_v_b);
__Pyx_XDECREF(__pyx_v_w);
__Pyx_XDECREF(__pyx_v_c);
__Pyx_XDECREF(__pyx_v_plugin);
__Pyx_XDECREF((PyObject *)__pyx_v_tg);
__Pyx_XDECREF(__pyx_v_s);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_pdb);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__352 = PyTuple_Pack(35, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_finish, __pyx_n_s_args, __pyx_n_s_kwargs, __pyx_n_s_parent, __pyx_n_s_ts, __pyx_n_s_start, __pyx_n_s_start_finish, __pyx_n_s_finish2, __pyx_n_s_recommendations, __pyx_n_s_worker_msgs, __pyx_n_s_client_msgs, __pyx_n_s_msgs, __pyx_n_s_new_msgs, __pyx_n_s_dependents, __pyx_n_s_dependencies, __pyx_n_s_func, __pyx_n_s_a, __pyx_n_s_a_recs, __pyx_n_s_a_wmsgs, __pyx_n_s_a_cmsgs, __pyx_n_s_v, __pyx_n_s_b_recs, __pyx_n_s_b_wmsgs, __pyx_n_s_b_cmsgs, __pyx_n_s_b, __pyx_n_s_w, __pyx_n_s_c, __pyx_n_s_plugin, __pyx_n_s_tg, __pyx_n_s_all_forgotten, __pyx_n_s_s, __pyx_n_s_e, __pyx_n_s_pdb); if (unlikely(!__pyx_tuple__352)) __PYX_ERR(0, 5845, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__352);
__Pyx_GIVEREF(__pyx_tuple__352);
/* … */
__pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5845, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_finish, __pyx_n_u_unicode) < 0) __PYX_ERR(0, 5845, __pyx_L1_error)
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_176_transition, 0, __pyx_n_s_Scheduler__transition, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__353)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5845, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_12);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_transition_2, __pyx_t_2) < 0) __PYX_ERR(0, 5845, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__353 = (PyObject*)__Pyx_PyCode_New(3, 0, 35, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__352, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_transition_2, 5845, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__353)) __PYX_ERR(0, 5845, __pyx_L1_error)
5846: """Transition a key from its current state to the finish state
5847:
5848: Examples
5849: --------
5850: >>> self._transition('x', 'waiting')
5851: {'x': 'processing'}
5852:
5853: Returns
5854: -------
5855: Dictionary of recommendations for future transitions
5856:
5857: See Also
5858: --------
5859: Scheduler.transitions : transitive version of this function
5860: """
+5861: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
5862: ts: TaskState
5863: start: str
5864: start_finish: tuple
5865: finish2: str
5866: recommendations: dict
5867: worker_msgs: dict
5868: client_msgs: dict
5869: msgs: list
5870: new_msgs: list
5871: dependents: set
5872: dependencies: set
+5873: try:
{
/*try:*/ {
/* … */
}
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L1_error;
__pyx_L7_try_return:;
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L0;
}
+5874: recommendations = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5874, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_recommendations = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+5875: worker_msgs = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5875, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_worker_msgs = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+5876: client_msgs = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5876, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_client_msgs = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
5877:
+5878: ts = parent._tasks.get(key)
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 5878, __pyx_L3_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_parent->_tasks, __pyx_v_key, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5878, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 5878, __pyx_L3_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1);
__pyx_t_1 = 0;
+5879: if ts is None:
__pyx_t_5 = (((PyObject *)__pyx_v_ts) == Py_None);
__pyx_t_6 = (__pyx_t_5 != 0);
if (__pyx_t_6) {
/* … */
}
+5880: return recommendations, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5880, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_recommendations); __Pyx_GIVEREF(__pyx_v_recommendations); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_recommendations); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_client_msgs); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L7_try_return;
+5881: start = ts._state
__pyx_t_1 = __pyx_v_ts->_state;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_start = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+5882: if start == finish:
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_start, __pyx_v_finish, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 5882, __pyx_L3_error) __pyx_t_5 = (__pyx_t_6 != 0); if (__pyx_t_5) { /* … */ }
+5883: return recommendations, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5883, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_recommendations); __Pyx_GIVEREF(__pyx_v_recommendations); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_recommendations); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_client_msgs); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L7_try_return;
5884:
+5885: if self.plugins:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_plugins); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5885, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5885, __pyx_L3_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { /* … */ }
+5886: dependents = set(ts._dependents)
__pyx_t_1 = PySet_New(__pyx_v_ts->_dependents); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5886, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_dependents = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+5887: dependencies = set(ts._dependencies)
__pyx_t_1 = PySet_New(__pyx_v_ts->_dependencies); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5887, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_dependencies = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
5888:
+5889: start_finish = (start, finish)
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5889, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_start); __Pyx_GIVEREF(__pyx_v_start); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_start); __Pyx_INCREF(__pyx_v_finish); __Pyx_GIVEREF(__pyx_v_finish); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_finish); __pyx_v_start_finish = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+5890: func = self._transitions.get(start_finish)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transitions); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5890, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_get); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5890, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_7, __pyx_v_start_finish) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_start_finish); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5890, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_func = __pyx_t_1; __pyx_t_1 = 0;
+5891: if func is not None:
__pyx_t_5 = (__pyx_v_func != Py_None);
__pyx_t_6 = (__pyx_t_5 != 0);
if (__pyx_t_6) {
/* … */
goto __pyx_L12;
}
+5892: a: tuple = func(key, *args, **kwargs)
__pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5892, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_key); __pyx_t_8 = PyNumber_Add(__pyx_t_1, __pyx_v_args); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5892, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_func, __pyx_t_8, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5892, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 5892, __pyx_L3_error) __pyx_v_a = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+5893: recommendations, worker_msgs, client_msgs = a
if (likely(__pyx_v_a != Py_None)) {
PyObject* sequence = __pyx_v_a;
Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
if (unlikely(size != 3)) {
if (size > 3) __Pyx_RaiseTooManyValuesError(3);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
__PYX_ERR(0, 5893, __pyx_L3_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyTuple_GET_ITEM(sequence, 0);
__pyx_t_8 = PyTuple_GET_ITEM(sequence, 1);
__pyx_t_7 = PyTuple_GET_ITEM(sequence, 2);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(__pyx_t_8);
__Pyx_INCREF(__pyx_t_7);
#else
__pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5893, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5893, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_7 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5893, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
} else {
__Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 5893, __pyx_L3_error)
}
if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 5893, __pyx_L3_error)
if (!(likely(PyDict_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 5893, __pyx_L3_error)
if (!(likely(PyDict_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 5893, __pyx_L3_error)
__Pyx_DECREF_SET(__pyx_v_recommendations, ((PyObject*)__pyx_t_1));
__pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_worker_msgs, ((PyObject*)__pyx_t_8));
__pyx_t_8 = 0;
__Pyx_DECREF_SET(__pyx_v_client_msgs, ((PyObject*)__pyx_t_7));
__pyx_t_7 = 0;
+5894: elif "released" not in start_finish:
__pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_n_u_released, __pyx_v_start_finish, Py_NE)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 5894, __pyx_L3_error) __pyx_t_5 = (__pyx_t_6 != 0); if (likely(__pyx_t_5)) { /* … */ goto __pyx_L12; }
+5895: func = self._transitions["released", finish]
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transitions); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5895, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5895, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_u_released); __Pyx_GIVEREF(__pyx_n_u_released); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_u_released); __Pyx_INCREF(__pyx_v_finish); __Pyx_GIVEREF(__pyx_v_finish); PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_finish); __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5895, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF_SET(__pyx_v_func, __pyx_t_1); __pyx_t_1 = 0;
+5896: assert not args and not kwargs
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_6 = (PyTuple_GET_SIZE(__pyx_v_args) != 0);
__pyx_t_9 = ((!__pyx_t_6) != 0);
if (__pyx_t_9) {
} else {
__pyx_t_5 = __pyx_t_9;
goto __pyx_L13_bool_binop_done;
}
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 5896, __pyx_L3_error)
__pyx_t_6 = ((!__pyx_t_9) != 0);
__pyx_t_5 = __pyx_t_6;
__pyx_L13_bool_binop_done:;
if (unlikely(!__pyx_t_5)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 5896, __pyx_L3_error)
}
}
#endif
5897: a_recs: dict
5898: a_wmsgs: dict
5899: a_cmsgs: dict
+5900: a: tuple = self._transition(key, "released")
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5900, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_key, __pyx_n_u_released}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5900, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_key, __pyx_n_u_released}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5900, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_11 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5900, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_v_key); __Pyx_INCREF(__pyx_n_u_released); __Pyx_GIVEREF(__pyx_n_u_released); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_n_u_released); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5900, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 5900, __pyx_L3_error) __pyx_v_a = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+5901: a_recs, a_wmsgs, a_cmsgs = a
if (likely(__pyx_v_a != Py_None)) {
PyObject* sequence = __pyx_v_a;
Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
if (unlikely(size != 3)) {
if (size > 3) __Pyx_RaiseTooManyValuesError(3);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
__PYX_ERR(0, 5901, __pyx_L3_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyTuple_GET_ITEM(sequence, 0);
__pyx_t_8 = PyTuple_GET_ITEM(sequence, 1);
__pyx_t_11 = PyTuple_GET_ITEM(sequence, 2);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(__pyx_t_8);
__Pyx_INCREF(__pyx_t_11);
#else
__pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5901, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5901, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_11 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5901, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_11);
#endif
} else {
__Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 5901, __pyx_L3_error)
}
if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 5901, __pyx_L3_error)
if (!(likely(PyDict_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 5901, __pyx_L3_error)
if (!(likely(PyDict_CheckExact(__pyx_t_11))||((__pyx_t_11) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_11)->tp_name), 0))) __PYX_ERR(0, 5901, __pyx_L3_error)
__pyx_v_a_recs = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_v_a_wmsgs = ((PyObject*)__pyx_t_8);
__pyx_t_8 = 0;
__pyx_v_a_cmsgs = ((PyObject*)__pyx_t_11);
__pyx_t_11 = 0;
+5902: v = a_recs.get(key)
if (unlikely(__pyx_v_a_recs == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 5902, __pyx_L3_error)
}
__pyx_t_11 = __Pyx_PyDict_GetItemDefault(__pyx_v_a_recs, __pyx_v_key, Py_None); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5902, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_v_v = __pyx_t_11;
__pyx_t_11 = 0;
+5903: if v is not None:
__pyx_t_5 = (__pyx_v_v != Py_None);
__pyx_t_6 = (__pyx_t_5 != 0);
if (__pyx_t_6) {
/* … */
}
+5904: func = self._transitions["released", v]
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transitions); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5904, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5904, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_u_released); __Pyx_GIVEREF(__pyx_n_u_released); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_u_released); __Pyx_INCREF(__pyx_v_v); __Pyx_GIVEREF(__pyx_v_v); PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_v); __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5904, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF_SET(__pyx_v_func, __pyx_t_1); __pyx_t_1 = 0;
5905: b_recs: dict
5906: b_wmsgs: dict
5907: b_cmsgs: dict
+5908: b: tuple = func(key)
__Pyx_INCREF(__pyx_v_func); __pyx_t_8 = __pyx_v_func; __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_11, __pyx_v_key) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_key); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5908, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 5908, __pyx_L3_error) __pyx_v_b = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+5909: b_recs, b_wmsgs, b_cmsgs = b
if (likely(__pyx_v_b != Py_None)) {
PyObject* sequence = __pyx_v_b;
Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
if (unlikely(size != 3)) {
if (size > 3) __Pyx_RaiseTooManyValuesError(3);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
__PYX_ERR(0, 5909, __pyx_L3_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyTuple_GET_ITEM(sequence, 0);
__pyx_t_8 = PyTuple_GET_ITEM(sequence, 1);
__pyx_t_11 = PyTuple_GET_ITEM(sequence, 2);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(__pyx_t_8);
__Pyx_INCREF(__pyx_t_11);
#else
__pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5909, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5909, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_11 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5909, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_11);
#endif
} else {
__Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 5909, __pyx_L3_error)
}
if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 5909, __pyx_L3_error)
if (!(likely(PyDict_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 5909, __pyx_L3_error)
if (!(likely(PyDict_CheckExact(__pyx_t_11))||((__pyx_t_11) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_11)->tp_name), 0))) __PYX_ERR(0, 5909, __pyx_L3_error)
__pyx_v_b_recs = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_v_b_wmsgs = ((PyObject*)__pyx_t_8);
__pyx_t_8 = 0;
__pyx_v_b_cmsgs = ((PyObject*)__pyx_t_11);
__pyx_t_11 = 0;
5910:
+5911: recommendations.update(a_recs)
__pyx_t_11 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyDict_Type_update, __pyx_v_recommendations, __pyx_v_a_recs); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5911, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+5912: for w, new_msgs in a_wmsgs.items():
__pyx_t_12 = 0;
if (unlikely(__pyx_v_a_wmsgs == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 5912, __pyx_L3_error)
}
__pyx_t_8 = __Pyx_dict_iterator(__pyx_v_a_wmsgs, 1, __pyx_n_s_items, (&__pyx_t_13), (&__pyx_t_10)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5912, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_11);
__pyx_t_11 = __pyx_t_8;
__pyx_t_8 = 0;
while (1) {
__pyx_t_14 = __Pyx_dict_iter_next(__pyx_t_11, __pyx_t_13, &__pyx_t_12, &__pyx_t_8, &__pyx_t_1, NULL, __pyx_t_10);
if (unlikely(__pyx_t_14 == 0)) break;
if (unlikely(__pyx_t_14 == -1)) __PYX_ERR(0, 5912, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 5912, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_w, __pyx_t_8);
__pyx_t_8 = 0;
__Pyx_XDECREF_SET(__pyx_v_new_msgs, ((PyObject*)__pyx_t_1));
__pyx_t_1 = 0;
+5913: msgs = worker_msgs.get(w)
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_worker_msgs, __pyx_v_w, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5913, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 5913, __pyx_L3_error) __Pyx_XDECREF_SET(__pyx_v_msgs, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0;
+5914: if msgs is not None:
__pyx_t_6 = (__pyx_v_msgs != ((PyObject*)Py_None));
__pyx_t_5 = (__pyx_t_6 != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L18;
}
+5915: msgs.extend(new_msgs)
if (unlikely(__pyx_v_msgs == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend");
__PYX_ERR(0, 5915, __pyx_L3_error)
}
__pyx_t_15 = __Pyx_PyList_Extend(__pyx_v_msgs, __pyx_v_new_msgs); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 5915, __pyx_L3_error)
5916: else:
+5917: worker_msgs[w] = new_msgs
/*else*/ {
if (unlikely(PyDict_SetItem(__pyx_v_worker_msgs, __pyx_v_w, __pyx_v_new_msgs) < 0)) __PYX_ERR(0, 5917, __pyx_L3_error)
}
__pyx_L18:;
}
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+5918: for c, new_msgs in a_cmsgs.items():
__pyx_t_13 = 0;
if (unlikely(__pyx_v_a_cmsgs == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 5918, __pyx_L3_error)
}
__pyx_t_1 = __Pyx_dict_iterator(__pyx_v_a_cmsgs, 1, __pyx_n_s_items, (&__pyx_t_12), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5918, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_11);
__pyx_t_11 = __pyx_t_1;
__pyx_t_1 = 0;
while (1) {
__pyx_t_14 = __Pyx_dict_iter_next(__pyx_t_11, __pyx_t_12, &__pyx_t_13, &__pyx_t_1, &__pyx_t_8, NULL, __pyx_t_10);
if (unlikely(__pyx_t_14 == 0)) break;
if (unlikely(__pyx_t_14 == -1)) __PYX_ERR(0, 5918, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_t_8);
if (!(likely(PyList_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 5918, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_c, __pyx_t_1);
__pyx_t_1 = 0;
__Pyx_XDECREF_SET(__pyx_v_new_msgs, ((PyObject*)__pyx_t_8));
__pyx_t_8 = 0;
+5919: msgs = client_msgs.get(c)
__pyx_t_8 = __Pyx_PyDict_GetItemDefault(__pyx_v_client_msgs, __pyx_v_c, Py_None); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5919, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); if (!(likely(PyList_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 5919, __pyx_L3_error) __Pyx_XDECREF_SET(__pyx_v_msgs, ((PyObject*)__pyx_t_8)); __pyx_t_8 = 0;
+5920: if msgs is not None:
__pyx_t_5 = (__pyx_v_msgs != ((PyObject*)Py_None));
__pyx_t_6 = (__pyx_t_5 != 0);
if (__pyx_t_6) {
/* … */
goto __pyx_L21;
}
+5921: msgs.extend(new_msgs)
if (unlikely(__pyx_v_msgs == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend");
__PYX_ERR(0, 5921, __pyx_L3_error)
}
__pyx_t_15 = __Pyx_PyList_Extend(__pyx_v_msgs, __pyx_v_new_msgs); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 5921, __pyx_L3_error)
5922: else:
+5923: client_msgs[c] = new_msgs
/*else*/ {
if (unlikely(PyDict_SetItem(__pyx_v_client_msgs, __pyx_v_c, __pyx_v_new_msgs) < 0)) __PYX_ERR(0, 5923, __pyx_L3_error)
}
__pyx_L21:;
}
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
5924:
+5925: recommendations.update(b_recs)
__pyx_t_11 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyDict_Type_update, __pyx_v_recommendations, __pyx_v_b_recs); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5925, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+5926: for w, new_msgs in b_wmsgs.items():
__pyx_t_12 = 0;
if (unlikely(__pyx_v_b_wmsgs == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 5926, __pyx_L3_error)
}
__pyx_t_8 = __Pyx_dict_iterator(__pyx_v_b_wmsgs, 1, __pyx_n_s_items, (&__pyx_t_13), (&__pyx_t_10)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5926, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_11);
__pyx_t_11 = __pyx_t_8;
__pyx_t_8 = 0;
while (1) {
__pyx_t_14 = __Pyx_dict_iter_next(__pyx_t_11, __pyx_t_13, &__pyx_t_12, &__pyx_t_8, &__pyx_t_1, NULL, __pyx_t_10);
if (unlikely(__pyx_t_14 == 0)) break;
if (unlikely(__pyx_t_14 == -1)) __PYX_ERR(0, 5926, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 5926, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_w, __pyx_t_8);
__pyx_t_8 = 0;
__Pyx_XDECREF_SET(__pyx_v_new_msgs, ((PyObject*)__pyx_t_1));
__pyx_t_1 = 0;
+5927: msgs = worker_msgs.get(w)
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_worker_msgs, __pyx_v_w, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5927, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 5927, __pyx_L3_error) __Pyx_XDECREF_SET(__pyx_v_msgs, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0;
+5928: if msgs is not None:
__pyx_t_6 = (__pyx_v_msgs != ((PyObject*)Py_None));
__pyx_t_5 = (__pyx_t_6 != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L24;
}
+5929: msgs.extend(new_msgs)
if (unlikely(__pyx_v_msgs == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend");
__PYX_ERR(0, 5929, __pyx_L3_error)
}
__pyx_t_15 = __Pyx_PyList_Extend(__pyx_v_msgs, __pyx_v_new_msgs); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 5929, __pyx_L3_error)
5930: else:
+5931: worker_msgs[w] = new_msgs
/*else*/ {
if (unlikely(PyDict_SetItem(__pyx_v_worker_msgs, __pyx_v_w, __pyx_v_new_msgs) < 0)) __PYX_ERR(0, 5931, __pyx_L3_error)
}
__pyx_L24:;
}
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+5932: for c, new_msgs in b_cmsgs.items():
__pyx_t_13 = 0;
if (unlikely(__pyx_v_b_cmsgs == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 5932, __pyx_L3_error)
}
__pyx_t_1 = __Pyx_dict_iterator(__pyx_v_b_cmsgs, 1, __pyx_n_s_items, (&__pyx_t_12), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5932, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_11);
__pyx_t_11 = __pyx_t_1;
__pyx_t_1 = 0;
while (1) {
__pyx_t_14 = __Pyx_dict_iter_next(__pyx_t_11, __pyx_t_12, &__pyx_t_13, &__pyx_t_1, &__pyx_t_8, NULL, __pyx_t_10);
if (unlikely(__pyx_t_14 == 0)) break;
if (unlikely(__pyx_t_14 == -1)) __PYX_ERR(0, 5932, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_t_8);
if (!(likely(PyList_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 5932, __pyx_L3_error)
__Pyx_XDECREF_SET(__pyx_v_c, __pyx_t_1);
__pyx_t_1 = 0;
__Pyx_XDECREF_SET(__pyx_v_new_msgs, ((PyObject*)__pyx_t_8));
__pyx_t_8 = 0;
+5933: msgs = client_msgs.get(c)
__pyx_t_8 = __Pyx_PyDict_GetItemDefault(__pyx_v_client_msgs, __pyx_v_c, Py_None); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5933, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); if (!(likely(PyList_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 5933, __pyx_L3_error) __Pyx_XDECREF_SET(__pyx_v_msgs, ((PyObject*)__pyx_t_8)); __pyx_t_8 = 0;
+5934: if msgs is not None:
__pyx_t_5 = (__pyx_v_msgs != ((PyObject*)Py_None));
__pyx_t_6 = (__pyx_t_5 != 0);
if (__pyx_t_6) {
/* … */
goto __pyx_L27;
}
+5935: msgs.extend(new_msgs)
if (unlikely(__pyx_v_msgs == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend");
__PYX_ERR(0, 5935, __pyx_L3_error)
}
__pyx_t_15 = __Pyx_PyList_Extend(__pyx_v_msgs, __pyx_v_new_msgs); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 5935, __pyx_L3_error)
5936: else:
+5937: client_msgs[c] = new_msgs
/*else*/ {
if (unlikely(PyDict_SetItem(__pyx_v_client_msgs, __pyx_v_c, __pyx_v_new_msgs) < 0)) __PYX_ERR(0, 5937, __pyx_L3_error)
}
__pyx_L27:;
}
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
5938:
+5939: start = "released"
__Pyx_INCREF(__pyx_n_u_released); __Pyx_DECREF_SET(__pyx_v_start, __pyx_n_u_released);
5940: else:
+5941: raise RuntimeError("Impossible transition from %r to %r" % start_finish)
/*else*/ {
__pyx_t_11 = PyUnicode_Format(__pyx_kp_u_Impossible_transition_from_r_to, __pyx_v_start_finish); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5941, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5941, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_Raise(__pyx_t_8, 0, 0, 0);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__PYX_ERR(0, 5941, __pyx_L3_error)
}
__pyx_L12:;
5942:
+5943: finish2 = ts._state
__pyx_t_8 = __pyx_v_ts->_state;
__Pyx_INCREF(__pyx_t_8);
__pyx_v_finish2 = ((PyObject*)__pyx_t_8);
__pyx_t_8 = 0;
+5944: self.transition_log.append((key, start, finish2, recommendations, time()))
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition_log); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5944, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_time); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5944, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_11 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5944, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5944, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_key); __Pyx_INCREF(__pyx_v_start); __Pyx_GIVEREF(__pyx_v_start); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_start); __Pyx_INCREF(__pyx_v_finish2); __Pyx_GIVEREF(__pyx_v_finish2); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_finish2); __Pyx_INCREF(__pyx_v_recommendations); __Pyx_GIVEREF(__pyx_v_recommendations); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_recommendations); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_t_11); __pyx_t_11 = 0; __pyx_t_15 = __Pyx_PyObject_Append(__pyx_t_8, __pyx_t_1); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 5944, __pyx_L3_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5945: if parent._validate:
__pyx_t_6 = (__pyx_v_parent->_validate != 0);
if (__pyx_t_6) {
/* … */
}
+5946: logger.debug(
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_logger); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5946, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_debug); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5946, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
5947: "Transitioned %r %s->%s (actual: %s). Consequence: %s",
5948: key,
5949: start,
5950: finish2,
5951: ts._state,
+5952: dict(recommendations),
if (unlikely(__pyx_v_recommendations == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' is not iterable");
__PYX_ERR(0, 5952, __pyx_L3_error)
}
__pyx_t_8 = PyDict_Copy(__pyx_v_recommendations); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5952, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_7 = NULL;
__pyx_t_10 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) {
__pyx_t_7 = PyMethod_GET_SELF(__pyx_t_11);
if (likely(__pyx_t_7)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
__Pyx_INCREF(__pyx_t_7);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_11, function);
__pyx_t_10 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_11)) {
PyObject *__pyx_temp[7] = {__pyx_t_7, __pyx_kp_u_Transitioned_r_s_s_actual_s_Cons, __pyx_v_key, __pyx_v_start, __pyx_v_finish2, __pyx_v_ts->_state, __pyx_t_8};
__pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_10, 6+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5946, __pyx_L3_error)
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) {
PyObject *__pyx_temp[7] = {__pyx_t_7, __pyx_kp_u_Transitioned_r_s_s_actual_s_Cons, __pyx_v_key, __pyx_v_start, __pyx_v_finish2, __pyx_v_ts->_state, __pyx_t_8};
__pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_10, 6+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5946, __pyx_L3_error)
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
} else
#endif
{
__pyx_t_16 = PyTuple_New(6+__pyx_t_10); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5946, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_16);
if (__pyx_t_7) {
__Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_7); __pyx_t_7 = NULL;
}
__Pyx_INCREF(__pyx_kp_u_Transitioned_r_s_s_actual_s_Cons);
__Pyx_GIVEREF(__pyx_kp_u_Transitioned_r_s_s_actual_s_Cons);
PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_10, __pyx_kp_u_Transitioned_r_s_s_actual_s_Cons);
__Pyx_INCREF(__pyx_v_key);
__Pyx_GIVEREF(__pyx_v_key);
PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_10, __pyx_v_key);
__Pyx_INCREF(__pyx_v_start);
__Pyx_GIVEREF(__pyx_v_start);
PyTuple_SET_ITEM(__pyx_t_16, 2+__pyx_t_10, __pyx_v_start);
__Pyx_INCREF(__pyx_v_finish2);
__Pyx_GIVEREF(__pyx_v_finish2);
PyTuple_SET_ITEM(__pyx_t_16, 3+__pyx_t_10, __pyx_v_finish2);
__Pyx_INCREF(__pyx_v_ts->_state);
__Pyx_GIVEREF(__pyx_v_ts->_state);
PyTuple_SET_ITEM(__pyx_t_16, 4+__pyx_t_10, __pyx_v_ts->_state);
__Pyx_GIVEREF(__pyx_t_8);
PyTuple_SET_ITEM(__pyx_t_16, 5+__pyx_t_10, __pyx_t_8);
__pyx_t_8 = 0;
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_16, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5946, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
}
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5953: )
+5954: if self.plugins:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_plugins); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5954, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 5954, __pyx_L3_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_6) { /* … */ }
5955: # Temporarily put back forgotten key for plugin to retrieve it
+5956: if ts._state == "forgotten":
__pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_forgotten, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 5956, __pyx_L3_error) __pyx_t_5 = (__pyx_t_6 != 0); if (__pyx_t_5) { /* … */ }
+5957: ts._dependents = dependents
if (unlikely(!__pyx_v_dependents)) { __Pyx_RaiseUnboundLocalError("dependents"); __PYX_ERR(0, 5957, __pyx_L3_error) }
__Pyx_INCREF(__pyx_v_dependents);
__Pyx_GIVEREF(__pyx_v_dependents);
__Pyx_GOTREF(__pyx_v_ts->_dependents);
__Pyx_DECREF(__pyx_v_ts->_dependents);
__pyx_v_ts->_dependents = __pyx_v_dependents;
+5958: ts._dependencies = dependencies
if (unlikely(!__pyx_v_dependencies)) { __Pyx_RaiseUnboundLocalError("dependencies"); __PYX_ERR(0, 5958, __pyx_L3_error) }
__Pyx_INCREF(__pyx_v_dependencies);
__Pyx_GIVEREF(__pyx_v_dependencies);
__Pyx_GOTREF(__pyx_v_ts->_dependencies);
__Pyx_DECREF(__pyx_v_ts->_dependencies);
__pyx_v_ts->_dependencies = __pyx_v_dependencies;
+5959: parent._tasks[ts._key] = ts
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5959, __pyx_L3_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_parent->_tasks, __pyx_v_ts->_key, ((PyObject *)__pyx_v_ts)) < 0)) __PYX_ERR(0, 5959, __pyx_L3_error)
+5960: for plugin in list(self.plugins):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_plugins); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5960, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_11 = PySequence_List(__pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5960, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_t_11; __Pyx_INCREF(__pyx_t_1); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; for (;;) { if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_11 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5960, __pyx_L3_error) #else __pyx_t_11 = PySequence_ITEM(__pyx_t_1, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5960, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); #endif __Pyx_XDECREF_SET(__pyx_v_plugin, __pyx_t_11); __pyx_t_11 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5961: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
goto __pyx_L40_try_end;
__pyx_L33_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
goto __pyx_L3_error;
__pyx_L34_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
__pyx_L40_try_end:;
}
+5962: plugin.transition(key, start, finish2, *args, **kwargs)
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin, __pyx_n_s_transition); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5962, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_16 = PyTuple_New(3); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5962, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_v_key); __Pyx_INCREF(__pyx_v_start); __Pyx_GIVEREF(__pyx_v_start); PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_v_start); __Pyx_INCREF(__pyx_v_finish2); __Pyx_GIVEREF(__pyx_v_finish2); PyTuple_SET_ITEM(__pyx_t_16, 2, __pyx_v_finish2); __pyx_t_8 = PyNumber_Add(__pyx_t_16, __pyx_v_args); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5962, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_8, __pyx_v_kwargs); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5962, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+5963: except Exception:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_10) { __Pyx_AddTraceback("distributed.scheduler.Scheduler._transition", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_16, &__pyx_t_8, &__pyx_t_11) < 0) __PYX_ERR(0, 5963, __pyx_L35_except_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_11);
+5964: logger.info("Plugin failed with exception", exc_info=True)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_logger); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5964, __pyx_L35_except_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_info); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5964, __pyx_L35_except_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5964, __pyx_L35_except_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_exc_info, Py_True) < 0) __PYX_ERR(0, 5964, __pyx_L35_except_error) __pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_20, __pyx_tuple__86, __pyx_t_7); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5964, __pyx_L35_except_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L34_exception_handled; } goto __pyx_L35_except_error; __pyx_L35_except_error:; /* … */ __pyx_tuple__86 = PyTuple_Pack(1, __pyx_kp_u_Plugin_failed_with_exception); if (unlikely(!__pyx_tuple__86)) __PYX_ERR(0, 5964, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__86); __Pyx_GIVEREF(__pyx_tuple__86);
+5965: if ts._state == "forgotten":
__pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_forgotten, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5965, __pyx_L3_error) __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { /* … */ }
+5966: del parent._tasks[ts._key]
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5966, __pyx_L3_error)
}
if (unlikely(PyDict_DelItem(__pyx_v_parent->_tasks, __pyx_v_ts->_key) < 0)) __PYX_ERR(0, 5966, __pyx_L3_error)
5967:
+5968: tg: TaskGroup = ts._group
__pyx_t_1 = ((PyObject *)__pyx_v_ts->_group);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_tg = ((struct __pyx_obj_11distributed_9scheduler_TaskGroup *)__pyx_t_1);
__pyx_t_1 = 0;
+5969: if ts._state == "forgotten" and tg._name in parent._task_groups:
__pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_forgotten, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5969, __pyx_L3_error) __pyx_t_9 = (__pyx_t_5 != 0); if (__pyx_t_9) { } else { __pyx_t_6 = __pyx_t_9; goto __pyx_L45_bool_binop_done; } if (unlikely(__pyx_v_parent->_task_groups == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 5969, __pyx_L3_error) } __pyx_t_9 = (__Pyx_PyDict_ContainsTF(__pyx_v_tg->_name, __pyx_v_parent->_task_groups, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 5969, __pyx_L3_error) __pyx_t_5 = (__pyx_t_9 != 0); __pyx_t_6 = __pyx_t_5; __pyx_L45_bool_binop_done:; if (__pyx_t_6) { /* … */ }
5970: # Remove TaskGroup if all tasks are in the forgotten state
+5971: all_forgotten: bint = True
__pyx_v_all_forgotten = 1;
+5972: for s in ALL_TASK_STATES:
__pyx_t_12 = 0;
__pyx_t_11 = __Pyx_set_iterator(__pyx_v_11distributed_9scheduler_ALL_TASK_STATES, 1, (&__pyx_t_13), (&__pyx_t_10)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5972, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_11;
__pyx_t_11 = 0;
while (1) {
__pyx_t_14 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_13, &__pyx_t_12, &__pyx_t_11, __pyx_t_10);
if (unlikely(__pyx_t_14 == 0)) break;
if (unlikely(__pyx_t_14 == -1)) __PYX_ERR(0, 5972, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_XDECREF_SET(__pyx_v_s, __pyx_t_11);
__pyx_t_11 = 0;
+5973: if tg._states.get(s):
if (unlikely(__pyx_v_tg->_states == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 5973, __pyx_L3_error)
}
__pyx_t_11 = __Pyx_PyDict_GetItemDefault(__pyx_v_tg->_states, __pyx_v_s, Py_None); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5973, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 5973, __pyx_L3_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (__pyx_t_6) {
/* … */
}
}
__pyx_L48_break:;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5974: all_forgotten = False
__pyx_v_all_forgotten = 0;
+5975: break
goto __pyx_L48_break;
+5976: if all_forgotten:
__pyx_t_6 = (__pyx_v_all_forgotten != 0);
if (__pyx_t_6) {
/* … */
}
+5977: ts._prefix._groups.remove(tg)
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_ts->_prefix->_groups, __pyx_n_s_remove); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5977, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_8, ((PyObject *)__pyx_v_tg)) : __Pyx_PyObject_CallOneArg(__pyx_t_11, ((PyObject *)__pyx_v_tg)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5977, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5978: del parent._task_groups[tg._name]
if (unlikely(__pyx_v_parent->_task_groups == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 5978, __pyx_L3_error)
}
if (unlikely(PyDict_DelItem(__pyx_v_parent->_task_groups, __pyx_v_tg->_name) < 0)) __PYX_ERR(0, 5978, __pyx_L3_error)
5979:
+5980: return recommendations, worker_msgs, client_msgs
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5980, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_recommendations); __Pyx_GIVEREF(__pyx_v_recommendations); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_recommendations); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_worker_msgs); __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_client_msgs); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L7_try_return;
+5981: except Exception as e:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_10) { __Pyx_AddTraceback("distributed.scheduler.Scheduler._transition", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_11, &__pyx_t_8) < 0) __PYX_ERR(0, 5981, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_11); __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_11); __pyx_v_e = __pyx_t_11; /*try:*/ { /* … */ /*finally:*/ { __pyx_L56_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_17 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_19, &__pyx_t_18, &__pyx_t_17) < 0)) __Pyx_ErrFetch(&__pyx_t_19, &__pyx_t_18, &__pyx_t_17); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_25); __pyx_t_10 = __pyx_lineno; __pyx_t_14 = __pyx_clineno; __pyx_t_22 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = NULL; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_XGIVEREF(__pyx_t_25); __Pyx_ExceptionReset(__pyx_t_23, __pyx_t_24, __pyx_t_25); } __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_ErrRestore(__pyx_t_19, __pyx_t_18, __pyx_t_17); __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_17 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_14; __pyx_filename = __pyx_t_22; goto __pyx_L5_except_error; } } } goto __pyx_L5_except_error; __pyx_L5_except_error:;
+5982: logger.exception("Error transitioning %r from %r to %r", key, start, finish)
__Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_logger); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5982, __pyx_L56_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_exception); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5982, __pyx_L56_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (unlikely(!__pyx_v_start)) { __Pyx_RaiseUnboundLocalError("start"); __PYX_ERR(0, 5982, __pyx_L56_error) } __pyx_t_21 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_21, __pyx_kp_u_Error_transitioning_r_from_r_to, __pyx_v_key, __pyx_v_start, __pyx_v_finish}; __pyx_t_16 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_10, 4+__pyx_t_10); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5982, __pyx_L56_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_16); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_21, __pyx_kp_u_Error_transitioning_r_from_r_to, __pyx_v_key, __pyx_v_start, __pyx_v_finish}; __pyx_t_16 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_10, 4+__pyx_t_10); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5982, __pyx_L56_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_16); } else #endif { __pyx_t_20 = PyTuple_New(4+__pyx_t_10); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 5982, __pyx_L56_error) __Pyx_GOTREF(__pyx_t_20); if (__pyx_t_21) { __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_21); __pyx_t_21 = NULL; } __Pyx_INCREF(__pyx_kp_u_Error_transitioning_r_from_r_to); __Pyx_GIVEREF(__pyx_kp_u_Error_transitioning_r_from_r_to); PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_10, __pyx_kp_u_Error_transitioning_r_from_r_to); __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_10, __pyx_v_key); __Pyx_INCREF(__pyx_v_start); __Pyx_GIVEREF(__pyx_v_start); PyTuple_SET_ITEM(__pyx_t_20, 2+__pyx_t_10, __pyx_v_start); __Pyx_INCREF(__pyx_v_finish); __Pyx_GIVEREF(__pyx_v_finish); PyTuple_SET_ITEM(__pyx_t_20, 3+__pyx_t_10, __pyx_v_finish); __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_20, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5982, __pyx_L56_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+5983: if LOG_PDB:
__Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_LOG_PDB); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5983, __pyx_L56_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 5983, __pyx_L56_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (__pyx_t_6) { /* … */ }
+5984: import pdb
__pyx_t_16 = __Pyx_Import(__pyx_n_s_pdb, 0, 0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5984, __pyx_L56_error) __Pyx_GOTREF(__pyx_t_16); __pyx_v_pdb = __pyx_t_16; __pyx_t_16 = 0;
5985:
+5986: pdb.set_trace()
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_pdb, __pyx_n_s_set_trace); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5986, __pyx_L56_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_20 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_20)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_16 = (__pyx_t_20) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_20) : __Pyx_PyObject_CallNoArg(__pyx_t_7); __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5986, __pyx_L56_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+5987: raise
__Pyx_GIVEREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_11, __pyx_t_8); __pyx_t_1 = 0; __pyx_t_11 = 0; __pyx_t_8 = 0; __PYX_ERR(0, 5987, __pyx_L56_error) }
5988:
+5989: def transition(self, key, finish: str, *args, **kwargs):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_178transition(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_177transition[] = "Transition a key from its current state to the finish state\n\n Examples\n --------\n >>> self.transition('x', 'waiting')\n {'x': 'processing'}\n\n Returns\n -------\n Dictionary of recommendations for future transitions\n\n See Also\n --------\n Scheduler.transitions: transitive version of this function\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_178transition = {"transition", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_178transition, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_177transition};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_178transition(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_finish = 0;
PyObject *__pyx_v_args = 0;
PyObject *__pyx_v_kwargs = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition (wrapper)", 0);
__pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
__Pyx_GOTREF(__pyx_v_kwargs);
if (PyTuple_GET_SIZE(__pyx_args) > 3) {
__pyx_v_args = PyTuple_GetSlice(__pyx_args, 3, PyTuple_GET_SIZE(__pyx_args));
if (unlikely(!__pyx_v_args)) {
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
__Pyx_RefNannyFinishContext();
return NULL;
}
__Pyx_GOTREF(__pyx_v_args);
} else {
__pyx_v_args = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple);
}
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,&__pyx_n_s_finish,0};
PyObject* values[3] = {0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
default:
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("transition", 0, 3, 3, 1); __PYX_ERR(0, 5989, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_finish)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("transition", 0, 3, 3, 2); __PYX_ERR(0, 5989, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t used_pos_args = (pos_args < 3) ? pos_args : 3;
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "transition") < 0)) __PYX_ERR(0, 5989, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) < 3) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
}
__pyx_v_self = values[0];
__pyx_v_key = values[1];
__pyx_v_finish = ((PyObject*)values[2]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("transition", 0, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5989, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0;
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.transition", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_finish), (&PyUnicode_Type), 1, "finish", 1))) __PYX_ERR(0, 5989, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_177transition(__pyx_self, __pyx_v_self, __pyx_v_key, __pyx_v_finish, __pyx_v_args, __pyx_v_kwargs);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_args);
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_177transition(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_finish, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) {
PyObject *__pyx_v_recommendations = 0;
PyObject *__pyx_v_worker_msgs = 0;
PyObject *__pyx_v_client_msgs = 0;
PyObject *__pyx_v_a = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.transition", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_recommendations);
__Pyx_XDECREF(__pyx_v_worker_msgs);
__Pyx_XDECREF(__pyx_v_client_msgs);
__Pyx_XDECREF(__pyx_v_a);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__354 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_finish, __pyx_n_s_args, __pyx_n_s_kwargs, __pyx_n_s_recommendations, __pyx_n_s_worker_msgs, __pyx_n_s_client_msgs, __pyx_n_s_a); if (unlikely(!__pyx_tuple__354)) __PYX_ERR(0, 5989, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__354);
__Pyx_GIVEREF(__pyx_tuple__354);
/* … */
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5989, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_finish, __pyx_n_u_unicode) < 0) __PYX_ERR(0, 5989, __pyx_L1_error)
__pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_178transition, 0, __pyx_n_s_Scheduler_transition, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__355)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5989, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_12, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_transition, __pyx_t_12) < 0) __PYX_ERR(0, 5989, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_codeobj__355 = (PyObject*)__Pyx_PyCode_New(3, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__354, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_transition, 5989, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__355)) __PYX_ERR(0, 5989, __pyx_L1_error)
5990: """Transition a key from its current state to the finish state
5991:
5992: Examples
5993: --------
5994: >>> self.transition('x', 'waiting')
5995: {'x': 'processing'}
5996:
5997: Returns
5998: -------
5999: Dictionary of recommendations for future transitions
6000:
6001: See Also
6002: --------
6003: Scheduler.transitions: transitive version of this function
6004: """
6005: recommendations: dict
6006: worker_msgs: dict
6007: client_msgs: dict
+6008: a: tuple = self._transition(key, finish, *args, **kwargs)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_key); __Pyx_INCREF(__pyx_v_finish); __Pyx_GIVEREF(__pyx_v_finish); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_finish); __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_v_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(0, 6008, __pyx_L1_error) __pyx_v_a = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+6009: recommendations, worker_msgs, client_msgs = a
if (likely(__pyx_v_a != Py_None)) {
PyObject* sequence = __pyx_v_a;
Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
if (unlikely(size != 3)) {
if (size > 3) __Pyx_RaiseTooManyValuesError(3);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
__PYX_ERR(0, 6009, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_2 = PyTuple_GET_ITEM(sequence, 0);
__pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);
__pyx_t_1 = PyTuple_GET_ITEM(sequence, 2);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(__pyx_t_1);
#else
__pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6009, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6009, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6009, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
} else {
__Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 6009, __pyx_L1_error)
}
if (!(likely(PyDict_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(0, 6009, __pyx_L1_error)
if (!(likely(PyDict_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 6009, __pyx_L1_error)
if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 6009, __pyx_L1_error)
__pyx_v_recommendations = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
__pyx_v_worker_msgs = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
__pyx_v_client_msgs = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+6010: self.send_all(client_msgs, worker_msgs)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_send_all); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_client_msgs, __pyx_v_worker_msgs}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6010, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_client_msgs, __pyx_v_worker_msgs}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6010, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_client_msgs); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_worker_msgs); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+6011: return recommendations
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_recommendations); __pyx_r = __pyx_v_recommendations; goto __pyx_L0;
6012:
+6013: def transitions(self, recommendations: dict):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_180transitions(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_179transitions[] = "Process transitions until none are left\n\n This includes feedback from previous transitions and continues until we\n reach a steady state\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_180transitions = {"transitions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_180transitions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_179transitions};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_180transitions(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_recommendations = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transitions (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_recommendations,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_recommendations)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("transitions", 1, 2, 2, 1); __PYX_ERR(0, 6013, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "transitions") < 0)) __PYX_ERR(0, 6013, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_self = values[0];
__pyx_v_recommendations = ((PyObject*)values[1]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("transitions", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6013, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.transitions", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_recommendations), (&PyDict_Type), 1, "recommendations", 1))) __PYX_ERR(0, 6013, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_179transitions(__pyx_self, __pyx_v_self, __pyx_v_recommendations);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_179transitions(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_recommendations) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_v_keys = 0;
PyObject *__pyx_v_worker_msgs = 0;
PyObject *__pyx_v_client_msgs = 0;
PyObject *__pyx_v_msgs = 0;
PyObject *__pyx_v_new_msgs = 0;
PyObject *__pyx_v_new = 0;
PyObject *__pyx_v_new_recs = 0;
PyObject *__pyx_v_new_wmsgs = 0;
PyObject *__pyx_v_new_cmsgs = 0;
PyObject *__pyx_v_key = NULL;
PyObject *__pyx_v_finish = NULL;
PyObject *__pyx_v_w = NULL;
PyObject *__pyx_v_c = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transitions", 0);
__Pyx_INCREF(__pyx_v_recommendations);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.transitions", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_v_keys);
__Pyx_XDECREF(__pyx_v_worker_msgs);
__Pyx_XDECREF(__pyx_v_client_msgs);
__Pyx_XDECREF(__pyx_v_msgs);
__Pyx_XDECREF(__pyx_v_new_msgs);
__Pyx_XDECREF(__pyx_v_new);
__Pyx_XDECREF(__pyx_v_new_recs);
__Pyx_XDECREF(__pyx_v_new_wmsgs);
__Pyx_XDECREF(__pyx_v_new_cmsgs);
__Pyx_XDECREF(__pyx_v_key);
__Pyx_XDECREF(__pyx_v_finish);
__Pyx_XDECREF(__pyx_v_w);
__Pyx_XDECREF(__pyx_v_c);
__Pyx_XDECREF(__pyx_v_recommendations);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__356 = PyTuple_Pack(16, __pyx_n_s_self, __pyx_n_s_recommendations, __pyx_n_s_parent, __pyx_n_s_keys, __pyx_n_s_worker_msgs, __pyx_n_s_client_msgs, __pyx_n_s_msgs, __pyx_n_s_new_msgs, __pyx_n_s_new_2, __pyx_n_s_new_recs, __pyx_n_s_new_wmsgs, __pyx_n_s_new_cmsgs, __pyx_n_s_key, __pyx_n_s_finish, __pyx_n_s_w, __pyx_n_s_c); if (unlikely(!__pyx_tuple__356)) __PYX_ERR(0, 6013, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__356);
__Pyx_GIVEREF(__pyx_tuple__356);
/* … */
__pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6013, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_recommendations, __pyx_n_u_dict_2) < 0) __PYX_ERR(0, 6013, __pyx_L1_error)
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_180transitions, 0, __pyx_n_s_Scheduler_transitions, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__357)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6013, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_12);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_transitions_2, __pyx_t_2) < 0) __PYX_ERR(0, 6013, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__357 = (PyObject*)__Pyx_PyCode_New(2, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__356, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_transitions_2, 6013, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__357)) __PYX_ERR(0, 6013, __pyx_L1_error)
6014: """Process transitions until none are left
6015:
6016: This includes feedback from previous transitions and continues until we
6017: reach a steady state
6018: """
+6019: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+6020: keys: set = set()
__pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_keys = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+6021: recommendations = recommendations.copy()
if (unlikely(__pyx_v_recommendations == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "copy");
__PYX_ERR(0, 6021, __pyx_L1_error)
}
__pyx_t_1 = PyDict_Copy(__pyx_v_recommendations); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6021, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF_SET(__pyx_v_recommendations, ((PyObject*)__pyx_t_1));
__pyx_t_1 = 0;
+6022: worker_msgs: dict = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_worker_msgs = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+6023: client_msgs: dict = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_client_msgs = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
6024: msgs: list
6025: new_msgs: list
6026: new: tuple
6027: new_recs: dict
6028: new_wmsgs: dict
6029: new_cmsgs: dict
+6030: while recommendations:
while (1) {
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_recommendations); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6030, __pyx_L1_error)
if (!__pyx_t_2) break;
+6031: key, finish = recommendations.popitem()
__pyx_t_1 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyDict_Type_popitem, __pyx_v_recommendations); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 6031, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_3 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext; index = 0; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) __PYX_ERR(0, 6031, __pyx_L1_error) __pyx_t_6 = NULL; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L6_unpacking_done; __pyx_L5_unpacking_failed:; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 6031, __pyx_L1_error) __pyx_L6_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_v_finish, __pyx_t_4); __pyx_t_4 = 0;
+6032: keys.add(key)
__pyx_t_7 = PySet_Add(__pyx_v_keys, __pyx_v_key); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 6032, __pyx_L1_error)
6033:
+6034: new = self._transition(key, finish)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_key, __pyx_v_finish}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6034, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_key, __pyx_v_finish}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6034, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, __pyx_v_key); __Pyx_INCREF(__pyx_v_finish); __Pyx_GIVEREF(__pyx_v_finish); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, __pyx_v_finish); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 6034, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_new, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0;
+6035: new_recs, new_wmsgs, new_cmsgs = new
if (likely(__pyx_v_new != Py_None)) {
PyObject* sequence = __pyx_v_new;
Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
if (unlikely(size != 3)) {
if (size > 3) __Pyx_RaiseTooManyValuesError(3);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
__PYX_ERR(0, 6035, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyTuple_GET_ITEM(sequence, 0);
__pyx_t_4 = PyTuple_GET_ITEM(sequence, 1);
__pyx_t_5 = PyTuple_GET_ITEM(sequence, 2);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(__pyx_t_5);
#else
__pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6035, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6035, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6035, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
__Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 6035, __pyx_L1_error)
}
if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 6035, __pyx_L1_error)
if (!(likely(PyDict_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 6035, __pyx_L1_error)
if (!(likely(PyDict_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(0, 6035, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_new_recs, ((PyObject*)__pyx_t_1));
__pyx_t_1 = 0;
__Pyx_XDECREF_SET(__pyx_v_new_wmsgs, ((PyObject*)__pyx_t_4));
__pyx_t_4 = 0;
__Pyx_XDECREF_SET(__pyx_v_new_cmsgs, ((PyObject*)__pyx_t_5));
__pyx_t_5 = 0;
6036:
+6037: recommendations.update(new_recs)
__pyx_t_5 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyDict_Type_update, __pyx_v_recommendations, __pyx_v_new_recs); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6038: for w, new_msgs in new_wmsgs.items():
__pyx_t_9 = 0;
if (unlikely(__pyx_v_new_wmsgs == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 6038, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_dict_iterator(__pyx_v_new_wmsgs, 1, __pyx_n_s_items, (&__pyx_t_10), (&__pyx_t_8)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6038, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__pyx_t_5 = __pyx_t_4;
__pyx_t_4 = 0;
while (1) {
__pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_10, &__pyx_t_9, &__pyx_t_4, &__pyx_t_1, NULL, __pyx_t_8);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 6038, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 6038, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_w, __pyx_t_4);
__pyx_t_4 = 0;
__Pyx_XDECREF_SET(__pyx_v_new_msgs, ((PyObject*)__pyx_t_1));
__pyx_t_1 = 0;
+6039: msgs = worker_msgs.get(w)
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_worker_msgs, __pyx_v_w, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 6039, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_msgs, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0;
+6040: if msgs is not None:
__pyx_t_2 = (__pyx_v_msgs != ((PyObject*)Py_None));
__pyx_t_12 = (__pyx_t_2 != 0);
if (__pyx_t_12) {
/* … */
goto __pyx_L9;
}
+6041: msgs.extend(new_msgs)
if (unlikely(__pyx_v_msgs == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend");
__PYX_ERR(0, 6041, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyList_Extend(__pyx_v_msgs, __pyx_v_new_msgs); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 6041, __pyx_L1_error)
6042: else:
+6043: worker_msgs[w] = new_msgs
/*else*/ {
if (unlikely(PyDict_SetItem(__pyx_v_worker_msgs, __pyx_v_w, __pyx_v_new_msgs) < 0)) __PYX_ERR(0, 6043, __pyx_L1_error)
}
__pyx_L9:;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6044: for c, new_msgs in new_cmsgs.items():
__pyx_t_10 = 0;
if (unlikely(__pyx_v_new_cmsgs == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 6044, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_dict_iterator(__pyx_v_new_cmsgs, 1, __pyx_n_s_items, (&__pyx_t_9), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6044, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__pyx_t_5 = __pyx_t_1;
__pyx_t_1 = 0;
while (1) {
__pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_9, &__pyx_t_10, &__pyx_t_1, &__pyx_t_4, NULL, __pyx_t_8);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 6044, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 6044, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_c, __pyx_t_1);
__pyx_t_1 = 0;
__Pyx_XDECREF_SET(__pyx_v_new_msgs, ((PyObject*)__pyx_t_4));
__pyx_t_4 = 0;
+6045: msgs = client_msgs.get(c)
__pyx_t_4 = __Pyx_PyDict_GetItemDefault(__pyx_v_client_msgs, __pyx_v_c, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 6045, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_msgs, ((PyObject*)__pyx_t_4)); __pyx_t_4 = 0;
+6046: if msgs is not None:
__pyx_t_12 = (__pyx_v_msgs != ((PyObject*)Py_None));
__pyx_t_2 = (__pyx_t_12 != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L12;
}
+6047: msgs.extend(new_msgs)
if (unlikely(__pyx_v_msgs == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend");
__PYX_ERR(0, 6047, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyList_Extend(__pyx_v_msgs, __pyx_v_new_msgs); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 6047, __pyx_L1_error)
6048: else:
+6049: client_msgs[c] = new_msgs
/*else*/ {
if (unlikely(PyDict_SetItem(__pyx_v_client_msgs, __pyx_v_c, __pyx_v_new_msgs) < 0)) __PYX_ERR(0, 6049, __pyx_L1_error)
}
__pyx_L12:;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
6050:
+6051: self.send_all(client_msgs, worker_msgs)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_send_all); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6051, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_client_msgs, __pyx_v_worker_msgs}; __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6051, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_client_msgs, __pyx_v_worker_msgs}; __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6051, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif { __pyx_t_3 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6051, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_client_msgs); __Pyx_GIVEREF(__pyx_v_client_msgs); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_8, __pyx_v_client_msgs); __Pyx_INCREF(__pyx_v_worker_msgs); __Pyx_GIVEREF(__pyx_v_worker_msgs); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_8, __pyx_v_worker_msgs); __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6051, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
6052:
+6053: if parent._validate:
__pyx_t_2 = (__pyx_v_parent->_validate != 0);
if (__pyx_t_2) {
/* … */
}
+6054: for key in keys:
__pyx_t_9 = 0;
__pyx_t_4 = __Pyx_set_iterator(__pyx_v_keys, 1, (&__pyx_t_10), (&__pyx_t_8)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6054, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__pyx_t_5 = __pyx_t_4;
__pyx_t_4 = 0;
while (1) {
__pyx_t_11 = __Pyx_set_iter_next(__pyx_t_5, __pyx_t_10, &__pyx_t_9, &__pyx_t_4, __pyx_t_8);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 6054, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_4);
__pyx_t_4 = 0;
+6055: self.validate_key(key)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_validate_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_v_key) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_key); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
6056:
+6057: def story(self, *keys):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_182story(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_181story[] = " Get all transitions that touch one of the input keys ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_182story = {"story", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_182story, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_181story};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_182story(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_keys = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("story (wrapper)", 0);
if (PyTuple_GET_SIZE(__pyx_args) > 1) {
__pyx_v_keys = PyTuple_GetSlice(__pyx_args, 1, PyTuple_GET_SIZE(__pyx_args));
if (unlikely(!__pyx_v_keys)) {
__Pyx_RefNannyFinishContext();
return NULL;
}
__Pyx_GOTREF(__pyx_v_keys);
} else {
__pyx_v_keys = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple);
}
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
PyObject* values[1] = {0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
default:
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "story") < 0)) __PYX_ERR(0, 6057, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) < 1) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
}
__pyx_v_self = values[0];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("story", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6057, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_keys); __pyx_v_keys = 0;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.story", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_181story(__pyx_self, __pyx_v_self, __pyx_v_keys);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_XDECREF(__pyx_v_keys);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_181story(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_keys) {
PyObject *__pyx_10genexpr132__pyx_v_key = NULL;
PyObject *__pyx_10genexpr133__pyx_v_t = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("story", 0);
__Pyx_INCREF(__pyx_v_keys);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.story", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_keys);
__Pyx_XDECREF(__pyx_10genexpr132__pyx_v_key);
__Pyx_XDECREF(__pyx_10genexpr133__pyx_v_t);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__358 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_keys, __pyx_n_s_key, __pyx_n_s_t); if (unlikely(!__pyx_tuple__358)) __PYX_ERR(0, 6057, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__358);
__Pyx_GIVEREF(__pyx_tuple__358);
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_182story, 0, __pyx_n_s_Scheduler_story, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__359)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6057, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_story, __pyx_t_2) < 0) __PYX_ERR(0, 6057, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__359 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__358, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_story, 6057, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__359)) __PYX_ERR(0, 6057, __pyx_L1_error)
6058: """ Get all transitions that touch one of the input keys """
+6059: keys = {key.key if isinstance(key, TaskState) else key for key in keys}
{ /* enter inner scope */
__pyx_t_1 = PySet_New(NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6059, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_v_keys)) || PyTuple_CheckExact(__pyx_v_keys)) {
__pyx_t_2 = __pyx_v_keys; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
__pyx_t_4 = NULL;
} else {
__pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6059, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6059, __pyx_L5_error)
}
for (;;) {
if (likely(!__pyx_t_4)) {
if (likely(PyList_CheckExact(__pyx_t_2))) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6059, __pyx_L5_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6059, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6059, __pyx_L5_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6059, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
}
} else {
__pyx_t_5 = __pyx_t_4(__pyx_t_2);
if (unlikely(!__pyx_t_5)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 6059, __pyx_L5_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_5);
}
__Pyx_XDECREF_SET(__pyx_10genexpr132__pyx_v_key, __pyx_t_5);
__pyx_t_5 = 0;
__pyx_t_6 = __Pyx_TypeCheck(__pyx_10genexpr132__pyx_v_key, __pyx_ptype_11distributed_9scheduler_TaskState);
if ((__pyx_t_6 != 0)) {
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_10genexpr132__pyx_v_key, __pyx_n_s_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6059, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_5 = __pyx_t_7;
__pyx_t_7 = 0;
} else {
__Pyx_INCREF(__pyx_10genexpr132__pyx_v_key);
__pyx_t_5 = __pyx_10genexpr132__pyx_v_key;
}
if (unlikely(PySet_Add(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 6059, __pyx_L5_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_10genexpr132__pyx_v_key); __pyx_10genexpr132__pyx_v_key = 0;
goto __pyx_L8_exit_scope;
__pyx_L5_error:;
__Pyx_XDECREF(__pyx_10genexpr132__pyx_v_key); __pyx_10genexpr132__pyx_v_key = 0;
goto __pyx_L1_error;
__pyx_L8_exit_scope:;
} /* exit inner scope */
__Pyx_DECREF_SET(__pyx_v_keys, __pyx_t_1);
__pyx_t_1 = 0;
+6060: return [
__Pyx_XDECREF(__pyx_r); { /* enter inner scope */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6060, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_1);
+6061: t for t in self.transition_log if t[0] in keys or keys.intersection(t[3])
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transition_log); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6061, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { __pyx_t_3 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6061, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6061, __pyx_L11_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_4)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6061, __pyx_L11_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6061, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6061, __pyx_L11_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6061, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_4(__pyx_t_5); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 6061, __pyx_L11_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XDECREF_SET(__pyx_10genexpr133__pyx_v_t, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_GetItemInt(__pyx_10genexpr133__pyx_v_t, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6061, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_t_2, __pyx_v_keys, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 6061, __pyx_L11_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = (__pyx_t_8 != 0); if (!__pyx_t_9) { } else { __pyx_t_6 = __pyx_t_9; goto __pyx_L15_bool_binop_done; } __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_keys, __pyx_n_s_intersection); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6061, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = __Pyx_GetItemInt(__pyx_10genexpr133__pyx_v_t, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 6061, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_2 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_11, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6061, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 6061, __pyx_L11_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_6 = __pyx_t_9; __pyx_L15_bool_binop_done:; if (__pyx_t_6) { if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_10genexpr133__pyx_v_t))) __PYX_ERR(0, 6060, __pyx_L11_error) } } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_10genexpr133__pyx_v_t); __pyx_10genexpr133__pyx_v_t = 0; goto __pyx_L17_exit_scope; __pyx_L11_error:; __Pyx_XDECREF(__pyx_10genexpr133__pyx_v_t); __pyx_10genexpr133__pyx_v_t = 0; goto __pyx_L1_error; __pyx_L17_exit_scope:; } /* exit inner scope */ __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
6062: ]
6063:
+6064: transition_story = story
__pyx_t_2 = PyObject_GetItem(__pyx_t_14, __pyx_n_s_story); if (unlikely(!__pyx_t_2)) { PyErr_Clear(); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_story); } if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_transition_story, __pyx_t_2) < 0) __PYX_ERR(0, 6064, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6065:
+6066: def reschedule(self, key=None, worker=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_184reschedule(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_183reschedule[] = "Reschedule a task\n\n Things may have shifted and this task may now be better suited to run\n elsewhere\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_184reschedule = {"reschedule", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_184reschedule, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_183reschedule};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_184reschedule(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_worker = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("reschedule (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,&__pyx_n_s_worker,0};
PyObject* values[3] = {0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "reschedule") < 0)) __PYX_ERR(0, 6066, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_key = values[1];
__pyx_v_worker = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("reschedule", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6066, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.reschedule", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_183reschedule(__pyx_self, __pyx_v_self, __pyx_v_key, __pyx_v_worker);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_183reschedule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_worker) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("reschedule", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.reschedule", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__360 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_worker, __pyx_n_s_parent, __pyx_n_s_ts); if (unlikely(!__pyx_tuple__360)) __PYX_ERR(0, 6066, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__360);
__Pyx_GIVEREF(__pyx_tuple__360);
__pyx_codeobj__361 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__360, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_reschedule, 6066, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__361)) __PYX_ERR(0, 6066, __pyx_L1_error)
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_184reschedule, 0, __pyx_n_s_Scheduler_reschedule, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__361)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6066, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__362);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_reschedule, __pyx_t_2) < 0) __PYX_ERR(0, 6066, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__362 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__362)) __PYX_ERR(0, 6066, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__362);
__Pyx_GIVEREF(__pyx_tuple__362);
6067: """Reschedule a task
6068:
6069: Things may have shifted and this task may now be better suited to run
6070: elsewhere
6071: """
+6072: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
6073: ts: TaskState
+6074: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L8_try_end;
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L1_error;
__pyx_L6_except_return:;
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L0;
__pyx_L8_try_end:;
}
+6075: ts = parent._tasks[key]
if (unlikely(__pyx_v_parent->_tasks == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6075, __pyx_L3_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_parent->_tasks, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6075, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 6075, __pyx_L3_error)
__pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_1);
__pyx_t_1 = 0;
+6076: except KeyError:
__pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); if (__pyx_t_5) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.reschedule", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(0, 6076, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7);
+6077: logger.warning(
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_logger); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6077, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_warning); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 6077, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
6078: "Attempting to reschedule task {}, which was not "
+6079: "found on the scheduler. Aborting reschedule.".format(key)
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Attempting_to_reschedule_task_wh, __pyx_n_s_format); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6079, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_9 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_v_key) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_v_key); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6079, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_8 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_11, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_9); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6077, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
6080: )
+6081: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L6_except_return; } goto __pyx_L5_except_error; __pyx_L5_except_error:;
+6082: if ts._state != "processing":
__pyx_t_13 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_processing_2, Py_NE)); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 6082, __pyx_L1_error) __pyx_t_14 = (__pyx_t_13 != 0); if (__pyx_t_14) { /* … */ }
+6083: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
+6084: if worker and ts._processing_on.address != worker:
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_v_worker); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 6084, __pyx_L1_error) if (__pyx_t_13) { } else { __pyx_t_14 = __pyx_t_13; goto __pyx_L13_bool_binop_done; } __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_ts->_processing_on), __pyx_n_s_address); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = PyObject_RichCompare(__pyx_t_7, __pyx_v_worker, Py_NE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6084, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 6084, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_14 = __pyx_t_13; __pyx_L13_bool_binop_done:; if (__pyx_t_14) { /* … */ }
+6085: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
+6086: self.transitions({key: "released"})
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_transitions_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_v_key, __pyx_n_u_released) < 0) __PYX_ERR(0, 6086, __pyx_L1_error) __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6087:
6088: #####################
6089: # Utility functions #
6090: #####################
6091:
+6092: def add_resources(self, comm=None, worker=None, resources=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_186add_resources(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_186add_resources = {"add_resources", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_186add_resources, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_186add_resources(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_worker = 0;
PyObject *__pyx_v_resources = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("add_resources (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_worker,&__pyx_n_s_resources,0};
PyObject* values[4] = {0,0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_resources);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "add_resources") < 0)) __PYX_ERR(0, 6092, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_worker = values[2];
__pyx_v_resources = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("add_resources", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6092, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.add_resources", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_185add_resources(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_worker, __pyx_v_resources);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_185add_resources(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_worker, PyObject *__pyx_v_resources) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_v_resource = NULL;
PyObject *__pyx_v_quantity = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("add_resources", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.add_resources", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF(__pyx_v_resource);
__Pyx_XDECREF(__pyx_v_quantity);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__363 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_worker, __pyx_n_s_resources, __pyx_n_s_parent, __pyx_n_s_ws, __pyx_n_s_resource, __pyx_n_s_quantity); if (unlikely(!__pyx_tuple__363)) __PYX_ERR(0, 6092, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__363);
__Pyx_GIVEREF(__pyx_tuple__363);
__pyx_codeobj__364 = (PyObject*)__Pyx_PyCode_New(4, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__363, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_add_resources, 6092, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__364)) __PYX_ERR(0, 6092, __pyx_L1_error)
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_186add_resources, 0, __pyx_n_s_Scheduler_add_resources, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__364)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6092, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__365);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_add_resources, __pyx_t_2) < 0) __PYX_ERR(0, 6092, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__365 = PyTuple_Pack(3, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__365)) __PYX_ERR(0, 6092, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__365);
__Pyx_GIVEREF(__pyx_tuple__365);
+6093: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+6094: ws: WorkerState = parent._workers_dv[worker]
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6094, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_parent->_workers_dv, __pyx_v_worker); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6094, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 6094, __pyx_L1_error)
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1);
__pyx_t_1 = 0;
+6095: if resources:
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_resources); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6095, __pyx_L1_error) if (__pyx_t_2) { /* … */ }
+6096: ws._resources.update(resources)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_ws->_resources, __pyx_n_s_update); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_resources) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_resources); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+6097: ws._used_resources = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_ws->_used_resources); __Pyx_DECREF(__pyx_v_ws->_used_resources); __pyx_v_ws->_used_resources = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+6098: for resource, quantity in ws._resources.items():
__pyx_t_5 = 0;
if (unlikely(__pyx_v_ws->_resources == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 6098, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_dict_iterator(__pyx_v_ws->_resources, 1, __pyx_n_s_items, (&__pyx_t_6), (&__pyx_t_7)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6098, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_3;
__pyx_t_3 = 0;
while (1) {
__pyx_t_8 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_6, &__pyx_t_5, &__pyx_t_3, &__pyx_t_4, NULL, __pyx_t_7);
if (unlikely(__pyx_t_8 == 0)) break;
if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 6098, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF_SET(__pyx_v_resource, __pyx_t_3);
__pyx_t_3 = 0;
__Pyx_XDECREF_SET(__pyx_v_quantity, __pyx_t_4);
__pyx_t_4 = 0;
+6099: ws._used_resources[resource] = 0
if (unlikely(__pyx_v_ws->_used_resources == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6099, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_ws->_used_resources, __pyx_v_resource, __pyx_int_0) < 0)) __PYX_ERR(0, 6099, __pyx_L1_error)
+6100: parent._resources[resource][worker] = quantity
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_parent->_resources, __pyx_v_resource); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_worker, __pyx_v_quantity) < 0)) __PYX_ERR(0, 6100, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+6101: return "OK"
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_n_u_OK); __pyx_r = __pyx_n_u_OK; goto __pyx_L0;
6102:
+6103: def remove_resources(self, worker):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_188remove_resources(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_188remove_resources = {"remove_resources", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_188remove_resources, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_188remove_resources(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_worker = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("remove_resources (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_worker,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("remove_resources", 1, 2, 2, 1); __PYX_ERR(0, 6103, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "remove_resources") < 0)) __PYX_ERR(0, 6103, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_self = values[0];
__pyx_v_worker = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("remove_resources", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6103, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.remove_resources", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_187remove_resources(__pyx_self, __pyx_v_self, __pyx_v_worker);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_187remove_resources(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_worker) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_v_resource = NULL;
CYTHON_UNUSED PyObject *__pyx_v_quantity = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("remove_resources", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.remove_resources", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF(__pyx_v_resource);
__Pyx_XDECREF(__pyx_v_quantity);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__366 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_worker, __pyx_n_s_parent, __pyx_n_s_ws, __pyx_n_s_resource, __pyx_n_s_quantity); if (unlikely(!__pyx_tuple__366)) __PYX_ERR(0, 6103, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__366);
__Pyx_GIVEREF(__pyx_tuple__366);
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_188remove_resources, 0, __pyx_n_s_Scheduler_remove_resources, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__367)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6103, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_remove_resources, __pyx_t_2) < 0) __PYX_ERR(0, 6103, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__367 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__366, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_remove_resources, 6103, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__367)) __PYX_ERR(0, 6103, __pyx_L1_error)
+6104: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+6105: ws: WorkerState = parent._workers_dv[worker]
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6105, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_parent->_workers_dv, __pyx_v_worker); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6105, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 6105, __pyx_L1_error)
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1);
__pyx_t_1 = 0;
+6106: for resource, quantity in ws._resources.items():
__pyx_t_2 = 0;
if (unlikely(__pyx_v_ws->_resources == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 6106, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_dict_iterator(__pyx_v_ws->_resources, 1, __pyx_n_s_items, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6106, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_5;
__pyx_t_5 = 0;
while (1) {
__pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, &__pyx_t_6, NULL, __pyx_t_4);
if (unlikely(__pyx_t_7 == 0)) break;
if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 6106, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_resource, __pyx_t_5);
__pyx_t_5 = 0;
__Pyx_XDECREF_SET(__pyx_v_quantity, __pyx_t_6);
__pyx_t_6 = 0;
+6107: del parent._resources[resource][worker]
__pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_v_parent->_resources, __pyx_v_resource); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(PyObject_DelItem(__pyx_t_6, __pyx_v_worker) < 0)) __PYX_ERR(0, 6107, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6108:
+6109: def coerce_address(self, addr, resolve=True):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_190coerce_address(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_189coerce_address[] = "\n Coerce possible input addresses to canonical form.\n *resolve* can be disabled for testing with fake hostnames.\n\n Handles strings, tuples, or aliases.\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_190coerce_address = {"coerce_address", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_190coerce_address, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_189coerce_address};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_190coerce_address(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_addr = 0;
PyObject *__pyx_v_resolve = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("coerce_address (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_addr,&__pyx_n_s_resolve,0};
PyObject* values[3] = {0,0,0};
values[2] = ((PyObject *)((PyObject *)Py_True));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addr)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("coerce_address", 0, 2, 3, 1); __PYX_ERR(0, 6109, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_resolve);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "coerce_address") < 0)) __PYX_ERR(0, 6109, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_addr = values[1];
__pyx_v_resolve = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("coerce_address", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6109, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.coerce_address", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_189coerce_address(__pyx_self, __pyx_v_self, __pyx_v_addr, __pyx_v_resolve);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_189coerce_address(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_addr, PyObject *__pyx_v_resolve) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("coerce_address", 0);
__Pyx_INCREF(__pyx_v_addr);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.coerce_address", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_v_addr);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__368 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_addr, __pyx_n_s_resolve, __pyx_n_s_parent); if (unlikely(!__pyx_tuple__368)) __PYX_ERR(0, 6109, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__368);
__Pyx_GIVEREF(__pyx_tuple__368);
__pyx_codeobj__369 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__368, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_coerce_address, 6109, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__369)) __PYX_ERR(0, 6109, __pyx_L1_error)
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_190coerce_address, 0, __pyx_n_s_Scheduler_coerce_address, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__369)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6109, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__370);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_coerce_address, __pyx_t_2) < 0) __PYX_ERR(0, 6109, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__370 = PyTuple_Pack(1, ((PyObject *)Py_True)); if (unlikely(!__pyx_tuple__370)) __PYX_ERR(0, 6109, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__370);
__Pyx_GIVEREF(__pyx_tuple__370);
6110: """
6111: Coerce possible input addresses to canonical form.
6112: *resolve* can be disabled for testing with fake hostnames.
6113:
6114: Handles strings, tuples, or aliases.
6115: """
6116: # XXX how many address-parsing routines do we have?
+6117: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+6118: if addr in parent._aliases:
if (unlikely(__pyx_v_parent->_aliases == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 6118, __pyx_L1_error)
}
__pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_addr, __pyx_v_parent->_aliases, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6118, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
}
+6119: addr = parent._aliases[addr]
if (unlikely(__pyx_v_parent->_aliases == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6119, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_parent->_aliases, __pyx_v_addr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6119, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF_SET(__pyx_v_addr, __pyx_t_1);
__pyx_t_1 = 0;
+6120: if isinstance(addr, tuple):
__pyx_t_3 = PyTuple_Check(__pyx_v_addr);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
/* … */
}
+6121: addr = unparse_host_port(*addr)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_unparse_host_port); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_v_addr); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_addr, __pyx_t_5); __pyx_t_5 = 0;
+6122: if not isinstance(addr, str):
__pyx_t_2 = PyUnicode_Check(__pyx_v_addr);
__pyx_t_3 = ((!(__pyx_t_2 != 0)) != 0);
if (unlikely(__pyx_t_3)) {
/* … */
}
+6123: raise TypeError("addresses should be strings or tuples, got %r" % (addr,))
__pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_addr), __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyUnicode_Concat(__pyx_kp_u_addresses_should_be_strings_or_t, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(0, 6123, __pyx_L1_error)
6124:
+6125: if resolve:
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_resolve); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6125, __pyx_L1_error) if (__pyx_t_3) { /* … */ goto __pyx_L6; }
+6126: addr = resolve_address(addr)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_resolve_address); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_1, __pyx_v_addr) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_addr); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_addr, __pyx_t_5); __pyx_t_5 = 0;
6127: else:
+6128: addr = normalize_address(addr)
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_normalize_address); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6128, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_1 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
__pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
if (likely(__pyx_t_1)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_4, function);
}
}
__pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_1, __pyx_v_addr) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_addr);
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6128, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF_SET(__pyx_v_addr, __pyx_t_5);
__pyx_t_5 = 0;
}
__pyx_L6:;
6129:
+6130: return addr
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_addr); __pyx_r = __pyx_v_addr; goto __pyx_L0;
6131:
+6132: def workers_list(self, workers):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_192workers_list(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_191workers_list[] = "\n List of qualifying workers\n\n Takes a list of worker addresses or hostnames.\n Returns a list of all worker addresses that match\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_192workers_list = {"workers_list", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_192workers_list, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_191workers_list};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_192workers_list(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_workers = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("workers_list (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_workers,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_workers)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("workers_list", 1, 2, 2, 1); __PYX_ERR(0, 6132, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "workers_list") < 0)) __PYX_ERR(0, 6132, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
}
__pyx_v_self = values[0];
__pyx_v_workers = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("workers_list", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6132, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.workers_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_191workers_list(__pyx_self, __pyx_v_self, __pyx_v_workers);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_191workers_list(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_workers) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_v_out = NULL;
PyObject *__pyx_v_w = NULL;
PyObject *__pyx_10genexpr134__pyx_v_ww = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("workers_list", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.workers_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_v_out);
__Pyx_XDECREF(__pyx_v_w);
__Pyx_XDECREF(__pyx_10genexpr134__pyx_v_ww);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__371 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_workers, __pyx_n_s_parent, __pyx_n_s_out, __pyx_n_s_w, __pyx_n_s_ww); if (unlikely(!__pyx_tuple__371)) __PYX_ERR(0, 6132, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__371);
__Pyx_GIVEREF(__pyx_tuple__371);
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_192workers_list, 0, __pyx_n_s_Scheduler_workers_list, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__372)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6132, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_workers_list, __pyx_t_2) < 0) __PYX_ERR(0, 6132, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__372 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__371, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_workers_list, 6132, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__372)) __PYX_ERR(0, 6132, __pyx_L1_error)
6133: """
6134: List of qualifying workers
6135:
6136: Takes a list of worker addresses or hostnames.
6137: Returns a list of all worker addresses that match
6138: """
+6139: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+6140: if workers is None:
__pyx_t_2 = (__pyx_v_workers == Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
}
+6141: return list(parent._workers)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PySequence_List(__pyx_v_parent->_workers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
6142:
+6143: out = set()
__pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_out = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+6144: for w in workers:
if (likely(PyList_CheckExact(__pyx_v_workers)) || PyTuple_CheckExact(__pyx_v_workers)) { __pyx_t_1 = __pyx_v_workers; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_workers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6144, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_5)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 6144, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 6144, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif } } else { __pyx_t_6 = __pyx_t_5(__pyx_t_1); if (unlikely(!__pyx_t_6)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 6144, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_6); } __Pyx_XDECREF_SET(__pyx_v_w, __pyx_t_6); __pyx_t_6 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+6145: if ":" in w:
__pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_kp_u__51, __pyx_v_w, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6145, __pyx_L1_error) __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { /* … */ goto __pyx_L6; }
+6146: out.add(w)
__pyx_t_7 = PySet_Add(__pyx_v_out, __pyx_v_w); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 6146, __pyx_L1_error)
6147: else:
+6148: out.update({ww for ww in parent._workers if w in ww}) # TODO: quadratic
/*else*/ {
{ /* enter inner scope */
__pyx_t_6 = PySet_New(NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6148, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_6);
if (likely(PyList_CheckExact(__pyx_v_parent->_workers)) || PyTuple_CheckExact(__pyx_v_parent->_workers)) {
__pyx_t_8 = __pyx_v_parent->_workers; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0;
__pyx_t_10 = NULL;
} else {
__pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_v_parent->_workers); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6148, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 6148, __pyx_L9_error)
}
for (;;) {
if (likely(!__pyx_t_10)) {
if (likely(PyList_CheckExact(__pyx_t_8))) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_11 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_11); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 6148, __pyx_L9_error)
#else
__pyx_t_11 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6148, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_11);
#endif
} else {
if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_11); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 6148, __pyx_L9_error)
#else
__pyx_t_11 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6148, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_11);
#endif
}
} else {
__pyx_t_11 = __pyx_t_10(__pyx_t_8);
if (unlikely(!__pyx_t_11)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 6148, __pyx_L9_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_11);
}
__Pyx_XDECREF_SET(__pyx_10genexpr134__pyx_v_ww, __pyx_t_11);
__pyx_t_11 = 0;
__pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_w, __pyx_10genexpr134__pyx_v_ww, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6148, __pyx_L9_error)
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
if (unlikely(PySet_Add(__pyx_t_6, (PyObject*)__pyx_10genexpr134__pyx_v_ww))) __PYX_ERR(0, 6148, __pyx_L9_error)
}
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_XDECREF(__pyx_10genexpr134__pyx_v_ww); __pyx_10genexpr134__pyx_v_ww = 0;
goto __pyx_L13_exit_scope;
__pyx_L9_error:;
__Pyx_XDECREF(__pyx_10genexpr134__pyx_v_ww); __pyx_10genexpr134__pyx_v_ww = 0;
goto __pyx_L1_error;
__pyx_L13_exit_scope:;
} /* exit inner scope */
__pyx_t_8 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PySet_Type_update, __pyx_v_out, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6148, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
__pyx_L6:;
+6149: return list(out)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PySequence_List(__pyx_v_out); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
6150:
+6151: def start_ipython(self, comm=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_194start_ipython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_193start_ipython[] = "Start an IPython kernel\n\n Returns Jupyter connection info dictionary.\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_194start_ipython = {"start_ipython", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_194start_ipython, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_193start_ipython};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_194start_ipython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("start_ipython (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,0};
PyObject* values[2] = {0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start_ipython") < 0)) __PYX_ERR(0, 6151, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("start_ipython", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6151, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.start_ipython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_193start_ipython(__pyx_self, __pyx_v_self, __pyx_v_comm);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_193start_ipython(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm) {
PyObject *__pyx_v_start_ipython = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("start_ipython", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.start_ipython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_start_ipython);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_197generator20(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__373 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_start_ipython); if (unlikely(!__pyx_tuple__373)) __PYX_ERR(0, 6151, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__373);
__Pyx_GIVEREF(__pyx_tuple__373);
__pyx_codeobj__374 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__373, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_start_ipython, 6151, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__374)) __PYX_ERR(0, 6151, __pyx_L1_error)
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_194start_ipython, 0, __pyx_n_s_Scheduler_start_ipython, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__374)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6151, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__375);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_start_ipython, __pyx_t_2) < 0) __PYX_ERR(0, 6151, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__375 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__375)) __PYX_ERR(0, 6151, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__375);
__Pyx_GIVEREF(__pyx_tuple__375);
6152: """Start an IPython kernel
6153:
6154: Returns Jupyter connection info dictionary.
6155: """
+6156: from ._ipython_utils import start_ipython
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_start_ipython); __Pyx_GIVEREF(__pyx_n_s_start_ipython); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_start_ipython); __pyx_t_2 = __Pyx_Import(__pyx_n_s_ipython_utils, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_start_ipython); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_1); __pyx_v_start_ipython = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6157:
+6158: if self._ipython_kernel is None:
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ipython_kernel); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = (__pyx_t_2 == Py_None); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = (__pyx_t_3 != 0); if (__pyx_t_4) { /* … */ }
+6159: self._ipython_kernel = start_ipython(
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_start_ipython, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_ipython_kernel, __pyx_t_1) < 0) __PYX_ERR(0, 6159, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+6160: ip=self.ip, ns={"scheduler": self}, log=logger
__pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ip); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ip, __pyx_t_1) < 0) __PYX_ERR(0, 6160, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_u_scheduler, __pyx_v_self) < 0) __PYX_ERR(0, 6160, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ns, __pyx_t_1) < 0) __PYX_ERR(0, 6160, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_logger); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_log, __pyx_t_1) < 0) __PYX_ERR(0, 6160, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6161: )
+6162: return self._ipython_kernel.get_connection_info()
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ipython_kernel); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_get_connection_info); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
6163:
+6164: async def get_profile(
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_196get_profile(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_196get_profile = {"get_profile", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_196get_profile, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_196get_profile(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_workers = 0;
PyObject *__pyx_v_scheduler = 0;
PyObject *__pyx_v_server = 0;
PyObject *__pyx_v_merge_workers = 0;
PyObject *__pyx_v_start = 0;
PyObject *__pyx_v_stop = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_profile (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_workers,&__pyx_n_s_scheduler,&__pyx_n_s_server,&__pyx_n_s_merge_workers,&__pyx_n_s_start,&__pyx_n_s_stop,&__pyx_n_s_key,0};
PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_11get_profile_2generator43(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_195get_profile(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_workers, PyObject *__pyx_v_scheduler, PyObject *__pyx_v_server, PyObject *__pyx_v_merge_workers, PyObject *__pyx_v_start, PyObject *__pyx_v_stop, PyObject *__pyx_v_key) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_48_get_profile *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_profile", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_48_get_profile *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_48_get_profile(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_48_get_profile, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_48_get_profile *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 6164, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_comm = __pyx_v_comm;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm);
__pyx_cur_scope->__pyx_v_workers = __pyx_v_workers;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_workers);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_workers);
__pyx_cur_scope->__pyx_v_scheduler = __pyx_v_scheduler;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_scheduler);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_scheduler);
__pyx_cur_scope->__pyx_v_server = __pyx_v_server;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_server);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_server);
__pyx_cur_scope->__pyx_v_merge_workers = __pyx_v_merge_workers;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_merge_workers);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_merge_workers);
__pyx_cur_scope->__pyx_v_start = __pyx_v_start;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_start);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_start);
__pyx_cur_scope->__pyx_v_stop = __pyx_v_stop;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_stop);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_stop);
__pyx_cur_scope->__pyx_v_key = __pyx_v_key;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_key);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_key);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_197generator20, __pyx_codeobj__87, (PyObject *) __pyx_cur_scope, __pyx_n_s_get_profile, __pyx_n_s_Scheduler_get_profile, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 6164, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_profile", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_197generator20(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_profile", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 6164, __pyx_L1_error)
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("get_profile", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_200generator21(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__376 = PyTuple_Pack(15, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_workers, __pyx_n_s_scheduler, __pyx_n_s_server, __pyx_n_s_merge_workers, __pyx_n_s_start, __pyx_n_s_stop, __pyx_n_s_key, __pyx_n_s_parent, __pyx_n_s_results, __pyx_n_s_response, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_r); if (unlikely(!__pyx_tuple__376)) __PYX_ERR(0, 6164, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__376);
__Pyx_GIVEREF(__pyx_tuple__376);
__pyx_codeobj__87 = (PyObject*)__Pyx_PyCode_New(9, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__376, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_get_profile, 6164, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__87)) __PYX_ERR(0, 6164, __pyx_L1_error)
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_196get_profile, 0, __pyx_n_s_Scheduler_get_profile, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__87)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6164, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__377);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_get_profile, __pyx_t_2) < 0) __PYX_ERR(0, 6164, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__377 = PyTuple_Pack(8, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_False), ((PyObject *)Py_False), ((PyObject *)Py_True), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__377)) __PYX_ERR(0, 6164, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__377);
__Pyx_GIVEREF(__pyx_tuple__377);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_48_get_profile {
PyObject_HEAD
PyObject *__pyx_v_comm;
PyObject *__pyx_v_genexpr;
PyObject *__pyx_v_key;
PyObject *__pyx_v_merge_workers;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent;
PyObject *__pyx_10genexpr136__pyx_v_r;
PyObject *__pyx_v_response;
PyObject *__pyx_v_results;
PyObject *__pyx_v_scheduler;
PyObject *__pyx_v_self;
PyObject *__pyx_v_server;
PyObject *__pyx_v_start;
PyObject *__pyx_v_stop;
PyObject *__pyx_v_workers;
};
6165: self,
+6166: comm=None,
values[1] = ((PyObject *)((PyObject *)Py_None));
+6167: workers=None,
values[2] = ((PyObject *)((PyObject *)Py_None));
+6168: scheduler=False,
values[3] = ((PyObject *)((PyObject *)Py_False));
+6169: server=False,
values[4] = ((PyObject *)((PyObject *)Py_False));
+6170: merge_workers=True,
values[5] = ((PyObject *)((PyObject *)Py_True));
+6171: start=None,
values[6] = ((PyObject *)((PyObject *)Py_None));
+6172: stop=None,
values[7] = ((PyObject *)((PyObject *)Py_None));
+6173: key=None,
values[8] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_workers);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scheduler);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_server);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_merge_workers);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stop);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key);
if (value) { values[8] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_profile") < 0)) __PYX_ERR(0, 6164, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_workers = values[2];
__pyx_v_scheduler = values[3];
__pyx_v_server = values[4];
__pyx_v_merge_workers = values[5];
__pyx_v_start = values[6];
__pyx_v_stop = values[7];
__pyx_v_key = values[8];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("get_profile", 0, 1, 9, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6164, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_profile", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_195get_profile(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_workers, __pyx_v_scheduler, __pyx_v_server, __pyx_v_merge_workers, __pyx_v_start, __pyx_v_stop, __pyx_v_key);
6174: ):
+6175: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_cur_scope->__pyx_v_self; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1); __pyx_t_1 = 0;
+6176: if workers is None:
__pyx_t_2 = (__pyx_cur_scope->__pyx_v_workers == Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
goto __pyx_L4;
}
+6177: workers = parent._workers_dv
__pyx_t_1 = __pyx_cur_scope->__pyx_v_parent->_workers_dv;
__Pyx_INCREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_cur_scope->__pyx_v_workers);
__Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_workers, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
6178: else:
+6179: workers = set(parent._workers_dv) & set(workers)
/*else*/ {
__pyx_t_1 = PySet_New(__pyx_cur_scope->__pyx_v_parent->_workers_dv); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6179, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = PySet_New(__pyx_cur_scope->__pyx_v_workers); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6179, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = PyNumber_And(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6179, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_cur_scope->__pyx_v_workers);
__Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_workers, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
}
__pyx_L4:;
6180:
+6181: if scheduler:
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_scheduler); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6181, __pyx_L1_error) if (__pyx_t_3) { /* … */ }
+6182: return profile.get_profile(self.io_loop.profile, start=start, stop=stop)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_profile); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_get_profile); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_io_loop); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_profile); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_start, __pyx_cur_scope->__pyx_v_start) < 0) __PYX_ERR(0, 6182, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_stop, __pyx_cur_scope->__pyx_v_stop) < 0) __PYX_ERR(0, 6182, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_6); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L0;
6183:
+6184: results = await asyncio.gather(
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_gather); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* … */ __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* … */ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L6_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 6184, __pyx_L1_error) __pyx_t_4 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_4); } else { __pyx_t_4 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_4) < 0) __PYX_ERR(0, 6184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_GIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_v_results = __pyx_t_4; __pyx_t_4 = 0;
6185: *(
+6186: self.rpc(w).profile(start=start, stop=stop, key=key, server=server)
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_11get_profile_genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_49_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_49_genexpr *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_49_genexpr(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_49_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_49_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 6186, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_48_get_profile *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_11get_profile_2generator43, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_Scheduler_get_profile_locals_gen, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 6186, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_profile.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_11get_profile_2generator43(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 6186, __pyx_L1_error)
/* … */
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 6186, __pyx_L1_error) }
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self, __pyx_n_s_rpc); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6186, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
if (likely(__pyx_t_6)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_5, function);
}
}
__pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_cur_scope->__pyx_v_w) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_cur_scope->__pyx_v_w);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6186, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_profile); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6186, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6186, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_start)) { __Pyx_RaiseClosureNameError("start"); __PYX_ERR(0, 6186, __pyx_L1_error) }
if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_start, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_start) < 0) __PYX_ERR(0, 6186, __pyx_L1_error)
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_stop)) { __Pyx_RaiseClosureNameError("stop"); __PYX_ERR(0, 6186, __pyx_L1_error) }
if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_stop, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_stop) < 0) __PYX_ERR(0, 6186, __pyx_L1_error)
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_key)) { __Pyx_RaiseClosureNameError("key"); __PYX_ERR(0, 6186, __pyx_L1_error) }
if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_key, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_key) < 0) __PYX_ERR(0, 6186, __pyx_L1_error)
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_server)) { __Pyx_RaiseClosureNameError("server"); __PYX_ERR(0, 6186, __pyx_L1_error) }
if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_server, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_server) < 0) __PYX_ERR(0, 6186, __pyx_L1_error)
__pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6186, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_r = __pyx_t_6;
__pyx_t_6 = 0;
__Pyx_XGIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, yielding value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L6_resume_from_yield:;
__pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
__pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 6186, __pyx_L1_error)
/* … */
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_6 = __pyx_pf_11distributed_9scheduler_9Scheduler_11get_profile_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6186, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_49_genexpr {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_48_get_profile *__pyx_outer_scope;
PyObject *__pyx_v_w;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
PyObject *(*__pyx_t_2)(PyObject *);
};
+6187: for w in workers
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_workers)) { __Pyx_RaiseClosureNameError("workers"); __PYX_ERR(0, 6187, __pyx_L1_error) }
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_workers)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_workers)) {
__pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_workers; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
__pyx_t_3 = NULL;
} else {
__pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_workers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6187, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6187, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_3)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 6187, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6187, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
} else {
if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 6187, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6187, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
}
} else {
__pyx_t_4 = __pyx_t_3(__pyx_t_1);
if (unlikely(!__pyx_t_4)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 6187, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_4);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_w);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_w, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
6188: ),
+6189: return_exceptions=True,
__pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_return_exceptions, Py_True) < 0) __PYX_ERR(0, 6189, __pyx_L1_error)
6190: )
6191:
+6192: results = [r for r in results if not isinstance(r, Exception)]
{ /* enter inner scope */
__pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6192, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_results)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_results)) {
__pyx_t_6 = __pyx_cur_scope->__pyx_v_results; __Pyx_INCREF(__pyx_t_6); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
} else {
__pyx_t_7 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_results); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6192, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_8 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6192, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_8)) {
if (likely(PyList_CheckExact(__pyx_t_6))) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 6192, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6192, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 6192, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6192, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
}
} else {
__pyx_t_5 = __pyx_t_8(__pyx_t_6);
if (unlikely(!__pyx_t_5)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 6192, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_5);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_10genexpr136__pyx_v_r);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_10genexpr136__pyx_v_r, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
__pyx_t_3 = __Pyx_PyException_Check(__pyx_cur_scope->__pyx_10genexpr136__pyx_v_r);
__pyx_t_2 = ((!(__pyx_t_3 != 0)) != 0);
if (__pyx_t_2) {
if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_cur_scope->__pyx_10genexpr136__pyx_v_r))) __PYX_ERR(0, 6192, __pyx_L1_error)
}
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
} /* exit inner scope */
__Pyx_GOTREF(__pyx_cur_scope->__pyx_v_results);
__Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_results, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
6193:
+6194: if merge_workers:
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_merge_workers); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6194, __pyx_L1_error) if (__pyx_t_2) { /* … */ goto __pyx_L10; }
+6195: response = profile.merge(*results)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_profile); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_merge); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_cur_scope->__pyx_v_results); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_response = __pyx_t_5; __pyx_t_5 = 0;
6196: else:
+6197: response = dict(zip(workers, results))
/*else*/ {
__pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_workers);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_workers);
PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_cur_scope->__pyx_v_workers);
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_results);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_results);
PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_cur_scope->__pyx_v_results);
__pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_zip, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GIVEREF(__pyx_t_5);
__pyx_cur_scope->__pyx_v_response = __pyx_t_5;
__pyx_t_5 = 0;
}
__pyx_L10:;
+6198: return response
__Pyx_XDECREF(__pyx_r); __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_cur_scope->__pyx_v_response); goto __pyx_L0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
6199:
+6200: async def get_profile_metadata(
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_199get_profile_metadata(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_199get_profile_metadata = {"get_profile_metadata", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_199get_profile_metadata, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_199get_profile_metadata(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_workers = 0;
CYTHON_UNUSED PyObject *__pyx_v_merge_workers = 0;
PyObject *__pyx_v_start = 0;
PyObject *__pyx_v_stop = 0;
PyObject *__pyx_v_profile_cycle_interval = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_profile_metadata (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_workers,&__pyx_n_s_merge_workers,&__pyx_n_s_start,&__pyx_n_s_stop,&__pyx_n_s_profile_cycle_interval,0};
PyObject* values[7] = {0,0,0,0,0,0,0};
/* … */
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_20get_profile_metadata_2generator44(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_198get_profile_metadata(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_workers, CYTHON_UNUSED PyObject *__pyx_v_merge_workers, PyObject *__pyx_v_start, PyObject *__pyx_v_stop, PyObject *__pyx_v_profile_cycle_interval) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_50_get_profile_metadata *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_profile_metadata", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_50_get_profile_metadata *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_50_get_profile_metadata(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_50_get_profile_metadata, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_50_get_profile_metadata *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 6200, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_comm = __pyx_v_comm;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm);
__pyx_cur_scope->__pyx_v_workers = __pyx_v_workers;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_workers);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_workers);
__pyx_cur_scope->__pyx_v_merge_workers = __pyx_v_merge_workers;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_merge_workers);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_merge_workers);
__pyx_cur_scope->__pyx_v_start = __pyx_v_start;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_start);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_start);
__pyx_cur_scope->__pyx_v_stop = __pyx_v_stop;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_stop);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_stop);
__pyx_cur_scope->__pyx_v_profile_cycle_interval = __pyx_v_profile_cycle_interval;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_profile_cycle_interval);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_profile_cycle_interval);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_200generator21, __pyx_codeobj__88, (PyObject *) __pyx_cur_scope, __pyx_n_s_get_profile_metadata, __pyx_n_s_Scheduler_get_profile_metadata, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 6200, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_profile_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_200generator21(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_profile_metadata", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 6200, __pyx_L1_error)
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("get_profile_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_203generator22(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__378 = PyTuple_Pack(28, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_workers, __pyx_n_s_merge_workers, __pyx_n_s_start, __pyx_n_s_stop, __pyx_n_s_profile_cycle_interval, __pyx_n_s_parent, __pyx_n_s_dt, __pyx_n_s_results, __pyx_n_s_counts, __pyx_n_s_keys, __pyx_n_s_v, __pyx_n_s_t, __pyx_n_s_d, __pyx_n_s_k, __pyx_n_s_groups1, __pyx_n_s_groups2, __pyx_n_s_last, __pyx_n_s_tt, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_r, __pyx_n_s_v, __pyx_n_s_time, __pyx_n_s_group, __pyx_n_s_k, __pyx_n_s_v); if (unlikely(!__pyx_tuple__378)) __PYX_ERR(0, 6200, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__378);
__Pyx_GIVEREF(__pyx_tuple__378);
__pyx_codeobj__88 = (PyObject*)__Pyx_PyCode_New(7, 0, 28, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__378, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_get_profile_metadata, 6200, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__88)) __PYX_ERR(0, 6200, __pyx_L1_error)
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_199get_profile_metadata, 0, __pyx_n_s_Scheduler_get_profile_metadata, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__88)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6200, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__379);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_get_profile_metadata, __pyx_t_2) < 0) __PYX_ERR(0, 6200, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__379 = PyTuple_Pack(6, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_True), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__379)) __PYX_ERR(0, 6200, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__379);
__Pyx_GIVEREF(__pyx_tuple__379);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_50_get_profile_metadata {
PyObject_HEAD
PyObject *__pyx_v_comm;
PyObject *__pyx_v_counts;
PyObject *__pyx_v_d;
PyObject *__pyx_v_dt;
PyObject *__pyx_v_genexpr;
PyObject *__pyx_10genexpr140__pyx_v_group;
PyObject *__pyx_v_groups1;
PyObject *__pyx_v_groups2;
PyObject *__pyx_10genexpr141__pyx_v_k;
PyObject *__pyx_v_k;
PyObject *__pyx_v_keys;
PyObject *__pyx_v_last;
PyObject *__pyx_v_merge_workers;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent;
PyObject *__pyx_v_profile_cycle_interval;
PyObject *__pyx_10genexpr138__pyx_v_r;
PyObject *__pyx_v_results;
PyObject *__pyx_v_self;
PyObject *__pyx_v_start;
PyObject *__pyx_v_stop;
PyObject *__pyx_v_t;
PyObject *__pyx_10genexpr140__pyx_v_time;
PyObject *__pyx_v_tt;
PyObject *__pyx_10genexpr139__pyx_v_v;
PyObject *__pyx_10genexpr142__pyx_v_v;
PyObject *__pyx_v_v;
PyObject *__pyx_v_workers;
};
6201: self,
+6202: comm=None,
values[1] = ((PyObject *)((PyObject *)Py_None));
+6203: workers=None,
values[2] = ((PyObject *)((PyObject *)Py_None));
+6204: merge_workers=True,
values[3] = ((PyObject *)((PyObject *)Py_True));
+6205: start=None,
values[4] = ((PyObject *)((PyObject *)Py_None));
+6206: stop=None,
values[5] = ((PyObject *)((PyObject *)Py_None));
+6207: profile_cycle_interval=None,
values[6] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_workers);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_merge_workers);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stop);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_profile_cycle_interval);
if (value) { values[6] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_profile_metadata") < 0)) __PYX_ERR(0, 6200, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_workers = values[2];
__pyx_v_merge_workers = values[3];
__pyx_v_start = values[4];
__pyx_v_stop = values[5];
__pyx_v_profile_cycle_interval = values[6];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("get_profile_metadata", 0, 1, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6200, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_profile_metadata", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_198get_profile_metadata(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_workers, __pyx_v_merge_workers, __pyx_v_start, __pyx_v_stop, __pyx_v_profile_cycle_interval);
6208: ):
+6209: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_cur_scope->__pyx_v_self; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1); __pyx_t_1 = 0;
+6210: dt = profile_cycle_interval or dask.config.get(
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_profile_cycle_interval); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6210, __pyx_L1_error) if (!__pyx_t_2) { } else { __Pyx_INCREF(__pyx_cur_scope->__pyx_v_profile_cycle_interval); __pyx_t_1 = __pyx_cur_scope->__pyx_v_profile_cycle_interval; goto __pyx_L4_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_dask); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_config); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_get); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_kp_u_distributed_worker_profile_cycle) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_u_distributed_worker_profile_cycle); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = __pyx_t_3; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_L4_bool_binop_done:; __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_dt = __pyx_t_1; __pyx_t_1 = 0;
6211: "distributed.worker.profile.cycle"
6212: )
+6213: dt = parse_timedelta(dt, default="ms")
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_parse_timedelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_dt); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_dt); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_cur_scope->__pyx_v_dt); __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_default, __pyx_n_u_ms) < 0) __PYX_ERR(0, 6213, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_dt); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_dt, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0;
6214:
+6215: if workers is None:
__pyx_t_2 = (__pyx_cur_scope->__pyx_v_workers == Py_None);
__pyx_t_6 = (__pyx_t_2 != 0);
if (__pyx_t_6) {
/* … */
goto __pyx_L6;
}
+6216: workers = parent._workers_dv
__pyx_t_5 = __pyx_cur_scope->__pyx_v_parent->_workers_dv;
__Pyx_INCREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_cur_scope->__pyx_v_workers);
__Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_workers, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
6217: else:
+6218: workers = set(parent._workers_dv) & set(workers)
/*else*/ {
__pyx_t_5 = PySet_New(__pyx_cur_scope->__pyx_v_parent->_workers_dv); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6218, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = PySet_New(__pyx_cur_scope->__pyx_v_workers); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6218, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = PyNumber_And(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6218, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_cur_scope->__pyx_v_workers);
__Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_workers, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
}
__pyx_L6:;
+6219: results = await asyncio.gather(
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_gather); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L7_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 6219, __pyx_L1_error) __pyx_t_1 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_1); } else { __pyx_t_1 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_1) < 0) __PYX_ERR(0, 6219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_results = __pyx_t_1; __pyx_t_1 = 0;
+6220: *(self.rpc(w).profile_metadata(start=start, stop=stop) for w in workers),
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_20get_profile_metadata_genexpr(PyObject *__pyx_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_51_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_51_genexpr *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_51_genexpr(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_51_genexpr, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_51_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 6220, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_50_get_profile_metadata *) __pyx_self;
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_20get_profile_metadata_2generator44, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_Scheduler_get_profile_metadata_l, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 6220, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_profile_metadata.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_20get_profile_metadata_2generator44(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 6220, __pyx_L1_error)
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_workers)) { __Pyx_RaiseClosureNameError("workers"); __PYX_ERR(0, 6220, __pyx_L1_error) }
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_workers)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_workers)) {
__pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_workers; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
__pyx_t_3 = NULL;
} else {
__pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_workers); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6220, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_3)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 6220, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
} else {
if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 6220, __pyx_L1_error)
#else
__pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
}
} else {
__pyx_t_4 = __pyx_t_3(__pyx_t_1);
if (unlikely(!__pyx_t_4)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 6220, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_4);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_w);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_w, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(0, 6220, __pyx_L1_error) }
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_self, __pyx_n_s_rpc); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
if (likely(__pyx_t_6)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_5, function);
}
}
__pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_cur_scope->__pyx_v_w) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_cur_scope->__pyx_v_w);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_profile_metadata); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_start)) { __Pyx_RaiseClosureNameError("start"); __PYX_ERR(0, 6220, __pyx_L1_error) }
if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_start, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_start) < 0) __PYX_ERR(0, 6220, __pyx_L1_error)
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_stop)) { __Pyx_RaiseClosureNameError("stop"); __PYX_ERR(0, 6220, __pyx_L1_error) }
if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_stop, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_stop) < 0) __PYX_ERR(0, 6220, __pyx_L1_error)
__pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_r = __pyx_t_6;
__pyx_t_6 = 0;
__Pyx_XGIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, yielding value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L6_resume_from_yield:;
__pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
__pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 6220, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_3 = __pyx_pf_11distributed_9scheduler_9Scheduler_20get_profile_metadata_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_51_genexpr {
PyObject_HEAD
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_50_get_profile_metadata *__pyx_outer_scope;
PyObject *__pyx_v_w;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
PyObject *(*__pyx_t_2)(PyObject *);
};
+6221: return_exceptions=True,
__pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_return_exceptions, Py_True) < 0) __PYX_ERR(0, 6221, __pyx_L1_error)
6222: )
6223:
+6224: results = [r for r in results if not isinstance(r, Exception)]
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6224, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_results)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_results)) {
__pyx_t_3 = __pyx_cur_scope->__pyx_v_results; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
} else {
__pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_results); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6224, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6224, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_8)) {
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 6224, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6224, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 6224, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6224, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
}
} else {
__pyx_t_5 = __pyx_t_8(__pyx_t_3);
if (unlikely(!__pyx_t_5)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 6224, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_5);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_10genexpr138__pyx_v_r);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_10genexpr138__pyx_v_r, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
__pyx_t_6 = __Pyx_PyException_Check(__pyx_cur_scope->__pyx_10genexpr138__pyx_v_r);
__pyx_t_2 = ((!(__pyx_t_6 != 0)) != 0);
if (__pyx_t_2) {
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_cur_scope->__pyx_10genexpr138__pyx_v_r))) __PYX_ERR(0, 6224, __pyx_L1_error)
}
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} /* exit inner scope */
__Pyx_GOTREF(__pyx_cur_scope->__pyx_v_results);
__Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_results, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
+6225: counts = [v["counts"] for v in results]
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6225, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_results)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_results)) {
__pyx_t_3 = __pyx_cur_scope->__pyx_v_results; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
} else {
__pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_results); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6225, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6225, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_8)) {
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 6225, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6225, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 6225, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6225, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
}
} else {
__pyx_t_5 = __pyx_t_8(__pyx_t_3);
if (unlikely(!__pyx_t_5)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 6225, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_5);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_10genexpr139__pyx_v_v);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_10genexpr139__pyx_v_v, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_cur_scope->__pyx_10genexpr139__pyx_v_v, __pyx_n_u_counts); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6225, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 6225, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_v_counts = __pyx_t_1;
__pyx_t_1 = 0;
+6226: counts = itertools.groupby(merge_sorted(*counts), lambda t: t[0] // dt * dt)
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_20get_profile_metadata_3lambda24(PyObject *__pyx_self, PyObject *__pyx_v_t); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_20get_profile_metadata_3lambda24 = {"lambda24", (PyCFunction)__pyx_pw_11distributed_9scheduler_9Scheduler_20get_profile_metadata_3lambda24, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_20get_profile_metadata_3lambda24(PyObject *__pyx_self, PyObject *__pyx_v_t) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("lambda24 (wrapper)", 0);
__pyx_r = __pyx_lambda_funcdef_lambda24(__pyx_self, ((PyObject *)__pyx_v_t));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_lambda_funcdef_lambda24(PyObject *__pyx_self, PyObject *__pyx_v_t) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_50_get_profile_metadata *__pyx_cur_scope;
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_50_get_profile_metadata *__pyx_outer_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("lambda24", 0);
__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_50_get_profile_metadata *) __Pyx_CyFunction_GetClosure(__pyx_self);
__pyx_cur_scope = __pyx_outer_scope;
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_t, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6226, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(!__pyx_cur_scope->__pyx_v_dt)) { __Pyx_RaiseClosureNameError("dt"); __PYX_ERR(0, 6226, __pyx_L1_error) }
__pyx_t_2 = PyNumber_FloorDivide(__pyx_t_1, __pyx_cur_scope->__pyx_v_dt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6226, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_cur_scope->__pyx_v_dt)) { __Pyx_RaiseClosureNameError("dt"); __PYX_ERR(0, 6226, __pyx_L1_error) }
__pyx_t_1 = PyNumber_Multiply(__pyx_t_2, __pyx_cur_scope->__pyx_v_dt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6226, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_profile_metadata.lambda24", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_itertools); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6226, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_groupby); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6226, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_merge_sorted); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6226, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_cur_scope->__pyx_v_counts); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6226, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6226, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_20get_profile_metadata_3lambda24, 0, __pyx_n_s_Scheduler_get_profile_metadata_l_2, ((PyObject*)__pyx_cur_scope), __pyx_n_s_distributed_scheduler, __pyx_d, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6226, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = NULL;
__pyx_t_10 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_5, function);
__pyx_t_10 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_5)) {
PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_9, __pyx_t_4};
__pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6226, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_9, __pyx_t_4};
__pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6226, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
} else
#endif
{
__pyx_t_11 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6226, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
if (__pyx_t_3) {
__Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_3); __pyx_t_3 = NULL;
}
__Pyx_GIVEREF(__pyx_t_9);
PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_t_9);
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_t_4);
__pyx_t_9 = 0;
__pyx_t_4 = 0;
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6226, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_cur_scope->__pyx_v_counts);
__Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_counts, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
+6227: counts = [(time, sum(pluck(1, group))) for time, group in counts]
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6227, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_counts)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_counts)) {
__pyx_t_5 = __pyx_cur_scope->__pyx_v_counts; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
} else {
__pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_counts); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6227, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_8 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6227, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_8)) {
if (likely(PyList_CheckExact(__pyx_t_5))) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_11 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_11); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 6227, __pyx_L1_error)
#else
__pyx_t_11 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6227, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
#endif
} else {
if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_11); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 6227, __pyx_L1_error)
#else
__pyx_t_11 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6227, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
#endif
}
} else {
__pyx_t_11 = __pyx_t_8(__pyx_t_5);
if (unlikely(!__pyx_t_11)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 6227, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_11);
}
if ((likely(PyTuple_CheckExact(__pyx_t_11))) || (PyList_CheckExact(__pyx_t_11))) {
PyObject* sequence = __pyx_t_11;
Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
__PYX_ERR(0, 6227, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__pyx_t_4 = PyTuple_GET_ITEM(sequence, 0);
__pyx_t_9 = PyTuple_GET_ITEM(sequence, 1);
} else {
__pyx_t_4 = PyList_GET_ITEM(sequence, 0);
__pyx_t_9 = PyList_GET_ITEM(sequence, 1);
}
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(__pyx_t_9);
#else
__pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6227, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6227, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
} else {
Py_ssize_t index = -1;
__pyx_t_3 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6227, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_12 = Py_TYPE(__pyx_t_3)->tp_iternext;
index = 0; __pyx_t_4 = __pyx_t_12(__pyx_t_3); if (unlikely(!__pyx_t_4)) goto __pyx_L15_unpacking_failed;
__Pyx_GOTREF(__pyx_t_4);
index = 1; __pyx_t_9 = __pyx_t_12(__pyx_t_3); if (unlikely(!__pyx_t_9)) goto __pyx_L15_unpacking_failed;
__Pyx_GOTREF(__pyx_t_9);
if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_3), 2) < 0) __PYX_ERR(0, 6227, __pyx_L1_error)
__pyx_t_12 = NULL;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
goto __pyx_L16_unpacking_done;
__pyx_L15_unpacking_failed:;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_12 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
__PYX_ERR(0, 6227, __pyx_L1_error)
__pyx_L16_unpacking_done:;
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_10genexpr140__pyx_v_time);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_10genexpr140__pyx_v_time, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_10genexpr140__pyx_v_group);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_10genexpr140__pyx_v_group, __pyx_t_9);
__Pyx_GIVEREF(__pyx_t_9);
__pyx_t_9 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_pluck); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6227, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_4 = NULL;
__pyx_t_10 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_9);
if (likely(__pyx_t_4)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_9, function);
__pyx_t_10 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_9)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_int_1, __pyx_cur_scope->__pyx_10genexpr140__pyx_v_group};
__pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6227, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_11);
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_int_1, __pyx_cur_scope->__pyx_10genexpr140__pyx_v_group};
__pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6227, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_11);
} else
#endif
{
__pyx_t_3 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6227, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (__pyx_t_4) {
__Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL;
}
__Pyx_INCREF(__pyx_int_1);
__Pyx_GIVEREF(__pyx_int_1);
PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_10, __pyx_int_1);
__Pyx_INCREF(__pyx_cur_scope->__pyx_10genexpr140__pyx_v_group);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_10genexpr140__pyx_v_group);
PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_10, __pyx_cur_scope->__pyx_10genexpr140__pyx_v_group);
__pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_3, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6227, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6227, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6227, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_INCREF(__pyx_cur_scope->__pyx_10genexpr140__pyx_v_time);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_10genexpr140__pyx_v_time);
PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_cur_scope->__pyx_10genexpr140__pyx_v_time);
__Pyx_GIVEREF(__pyx_t_9);
PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_9);
__pyx_t_9 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_11))) __PYX_ERR(0, 6227, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
} /* exit inner scope */
__Pyx_GOTREF(__pyx_cur_scope->__pyx_v_counts);
__Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_counts, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
6228:
+6229: keys = set()
__pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_keys = __pyx_t_1; __pyx_t_1 = 0;
+6230: for v in results:
__pyx_t_1 = __pyx_cur_scope->__pyx_v_results; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0; for (;;) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 6230, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_v); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_v, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+6231: for t, d in v["keys"]:
__pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_cur_scope->__pyx_v_v, __pyx_n_u_keys); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) { __pyx_t_11 = __pyx_t_5; __Pyx_INCREF(__pyx_t_11); __pyx_t_13 = 0; __pyx_t_8 = NULL; } else { __pyx_t_13 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_8 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6231, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; for (;;) { if (likely(!__pyx_t_8)) { if (likely(PyList_CheckExact(__pyx_t_11))) { if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_11)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 6231, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_11, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_11)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 6231, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_11, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } } else { __pyx_t_5 = __pyx_t_8(__pyx_t_11); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 6231, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_5); } if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { PyObject* sequence = __pyx_t_5; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 6231, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_9 = PyList_GET_ITEM(sequence, 0); __pyx_t_3 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_3); #else __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { Py_ssize_t index = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_12 = Py_TYPE(__pyx_t_4)->tp_iternext; index = 0; __pyx_t_9 = __pyx_t_12(__pyx_t_4); if (unlikely(!__pyx_t_9)) goto __pyx_L21_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); index = 1; __pyx_t_3 = __pyx_t_12(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L21_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_4), 2) < 0) __PYX_ERR(0, 6231, __pyx_L1_error) __pyx_t_12 = NULL; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L22_unpacking_done; __pyx_L21_unpacking_failed:; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_12 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 6231, __pyx_L1_error) __pyx_L22_unpacking_done:; } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_d); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_d, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+6232: for k in d:
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_d)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_d)) { __pyx_t_5 = __pyx_cur_scope->__pyx_v_d; __Pyx_INCREF(__pyx_t_5); __pyx_t_14 = 0; __pyx_t_15 = NULL; } else { __pyx_t_14 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_d); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_15 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 6232, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_15)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_14); __Pyx_INCREF(__pyx_t_3); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 6232, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_14); __Pyx_INCREF(__pyx_t_3); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 6232, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_15(__pyx_t_5); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 6232, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_k); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_k, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6233: keys.add(k)
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_keys, __pyx_n_s_add); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_4, __pyx_cur_scope->__pyx_v_k) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_cur_scope->__pyx_v_k); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+6234: keys = {k: [] for k in keys}
{ /* enter inner scope */
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_keys)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_keys)) {
__pyx_t_11 = __pyx_cur_scope->__pyx_v_keys; __Pyx_INCREF(__pyx_t_11); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
} else {
__pyx_t_7 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_keys); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_8 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6234, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_8)) {
if (likely(PyList_CheckExact(__pyx_t_11))) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_11)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 6234, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_11, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 6234, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_11, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
}
} else {
__pyx_t_5 = __pyx_t_8(__pyx_t_11);
if (unlikely(!__pyx_t_5)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 6234, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_5);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_10genexpr141__pyx_v_k);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_10genexpr141__pyx_v_k, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
__pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_cur_scope->__pyx_10genexpr141__pyx_v_k, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 6234, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
} /* exit inner scope */
__Pyx_GOTREF(__pyx_cur_scope->__pyx_v_keys);
__Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_keys, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
6235:
+6236: groups1 = [v["keys"] for v in results]
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6236, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_results)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_results)) {
__pyx_t_11 = __pyx_cur_scope->__pyx_v_results; __Pyx_INCREF(__pyx_t_11); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
} else {
__pyx_t_7 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_results); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6236, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_8 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6236, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_8)) {
if (likely(PyList_CheckExact(__pyx_t_11))) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_11)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 6236, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_11, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6236, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 6236, __pyx_L1_error)
#else
__pyx_t_5 = PySequence_ITEM(__pyx_t_11, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6236, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
}
} else {
__pyx_t_5 = __pyx_t_8(__pyx_t_11);
if (unlikely(!__pyx_t_5)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 6236, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_5);
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_10genexpr142__pyx_v_v);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_10genexpr142__pyx_v_v, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_cur_scope->__pyx_10genexpr142__pyx_v_v, __pyx_n_u_keys); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6236, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 6236, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
} /* exit inner scope */
__Pyx_GIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_v_groups1 = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+6237: groups2 = list(merge_sorted(*groups1, key=first))
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_merge_sorted); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_11 = PySequence_Tuple(__pyx_cur_scope->__pyx_v_groups1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_first); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_key, __pyx_t_3) < 0) __PYX_ERR(0, 6237, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_11, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PySequence_List(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_groups2 = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0;
6238:
+6239: last = 0
__Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __pyx_cur_scope->__pyx_v_last = __pyx_int_0;
+6240: for t, d in groups2:
__pyx_t_5 = __pyx_cur_scope->__pyx_v_groups2; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0; for (;;) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 6240, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { PyObject* sequence = __pyx_t_3; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 6240, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_11 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_11 = PyList_GET_ITEM(sequence, 0); __pyx_t_1 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(__pyx_t_1); #else __pyx_t_11 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_12 = Py_TYPE(__pyx_t_9)->tp_iternext; index = 0; __pyx_t_11 = __pyx_t_12(__pyx_t_9); if (unlikely(!__pyx_t_11)) goto __pyx_L31_unpacking_failed; __Pyx_GOTREF(__pyx_t_11); index = 1; __pyx_t_1 = __pyx_t_12(__pyx_t_9); if (unlikely(!__pyx_t_1)) goto __pyx_L31_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_9), 2) < 0) __PYX_ERR(0, 6240, __pyx_L1_error) __pyx_t_12 = NULL; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L32_unpacking_done; __pyx_L31_unpacking_failed:; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_12 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 6240, __pyx_L1_error) __pyx_L32_unpacking_done:; } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_d); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_d, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6241: tt = t // dt * dt
__pyx_t_3 = PyNumber_FloorDivide(__pyx_cur_scope->__pyx_v_t, __pyx_cur_scope->__pyx_v_dt); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyNumber_Multiply(__pyx_t_3, __pyx_cur_scope->__pyx_v_dt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_tt); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_tt, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0;
+6242: if tt > last:
__pyx_t_1 = PyObject_RichCompare(__pyx_cur_scope->__pyx_v_tt, __pyx_cur_scope->__pyx_v_last, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6242, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6242, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+6243: last = tt
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_tt); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_last); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_last, __pyx_cur_scope->__pyx_v_tt); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_tt);
+6244: for k, v in keys.items():
__pyx_t_13 = 0;
__pyx_t_3 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_keys, 1, __pyx_n_s_items, (&__pyx_t_14), (&__pyx_t_10)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6244, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_3;
__pyx_t_3 = 0;
while (1) {
__pyx_t_16 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_14, &__pyx_t_13, &__pyx_t_3, &__pyx_t_11, NULL, __pyx_t_10);
if (unlikely(__pyx_t_16 == 0)) break;
if (unlikely(__pyx_t_16 == -1)) __PYX_ERR(0, 6244, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_t_11);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_k);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_k, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_v);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_v, __pyx_t_11);
__Pyx_GIVEREF(__pyx_t_11);
__pyx_t_11 = 0;
+6245: v.append([tt, 0])
__pyx_t_11 = PyList_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_tt); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_tt); PyList_SET_ITEM(__pyx_t_11, 0, __pyx_cur_scope->__pyx_v_tt); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_11, 1, __pyx_int_0); __pyx_t_17 = __Pyx_PyObject_Append(__pyx_cur_scope->__pyx_v_v, __pyx_t_11); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 6245, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+6246: for k, v in d.items():
__pyx_t_14 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_d == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 6246, __pyx_L1_error)
}
__pyx_t_11 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_d, 0, __pyx_n_s_items, (&__pyx_t_13), (&__pyx_t_10)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6246, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_11;
__pyx_t_11 = 0;
while (1) {
__pyx_t_16 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_13, &__pyx_t_14, &__pyx_t_11, &__pyx_t_3, NULL, __pyx_t_10);
if (unlikely(__pyx_t_16 == 0)) break;
if (unlikely(__pyx_t_16 == -1)) __PYX_ERR(0, 6246, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_k);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_k, __pyx_t_11);
__Pyx_GIVEREF(__pyx_t_11);
__pyx_t_11 = 0;
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_v);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_v, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
+6247: keys[k][-1][1] += v
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_keys, __pyx_cur_scope->__pyx_v_k); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_3, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_18 = 1; __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_11, __pyx_t_18, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_cur_scope->__pyx_v_v); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_t_11, __pyx_t_18, __pyx_t_9, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 6247, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6248:
+6249: return {"counts": counts, "keys": keys}
__Pyx_XDECREF(__pyx_r); __pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_counts, __pyx_cur_scope->__pyx_v_counts) < 0) __PYX_ERR(0, 6249, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_keys, __pyx_cur_scope->__pyx_v_keys) < 0) __PYX_ERR(0, 6249, __pyx_L1_error) __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
6250:
+6251: async def performance_report(self, comm=None, start=None, code=""):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_202performance_report(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_202performance_report = {"performance_report", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_202performance_report, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_202performance_report(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_start = 0;
PyObject *__pyx_v_code = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("performance_report (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_start,&__pyx_n_s_code,0};
PyObject* values[4] = {0,0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject*)__pyx_kp_u__50));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_code);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "performance_report") < 0)) __PYX_ERR(0, 6251, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_start = values[2];
__pyx_v_code = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("performance_report", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6251, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.performance_report", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_201performance_report(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_start, __pyx_v_code);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_201performance_report(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_start, PyObject *__pyx_v_code) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_52_performance_report *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("performance_report", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_52_performance_report *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_52_performance_report(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_52_performance_report, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_52_performance_report *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 6251, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_comm = __pyx_v_comm;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm);
__pyx_cur_scope->__pyx_v_start = __pyx_v_start;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_start);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_start);
__pyx_cur_scope->__pyx_v_code = __pyx_v_code;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_code);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_code);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_203generator22, __pyx_codeobj__89, (PyObject *) __pyx_cur_scope, __pyx_n_s_performance_report, __pyx_n_s_Scheduler_performance_report, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 6251, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.performance_report", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_203generator22(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("performance_report", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 6251, __pyx_L1_error)
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_21);
__Pyx_AddTraceback("performance_report", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_206generator23(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__380 = PyTuple_Pack(45, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_start, __pyx_n_s_code, __pyx_n_s_parent, __pyx_n_s_stop, __pyx_n_s_compute, __pyx_n_s_scheduler, __pyx_n_s_workers, __pyx_n_s_profile, __pyx_n_s_profile_to_figure, __pyx_n_s_profile_to_figure, __pyx_n_s_task_stream, __pyx_n_s_total_tasks, __pyx_n_s_timespent, __pyx_n_s_d, __pyx_n_s_x, __pyx_n_s_tasks_timings, __pyx_n_s_k, __pyx_n_s_rectangles, __pyx_n_s_task_stream_figure, __pyx_n_s_rects, __pyx_n_s_source, __pyx_n_s_BandwidthWorkers, __pyx_n_s_BandwidthTypes, __pyx_n_s_bandwidth_workers, __pyx_n_s_bandwidth_types, __pyx_n_s_Panel, __pyx_n_s_Tabs, __pyx_n_s_Div, __pyx_n_s_distributed, __pyx_n_s_ws, __pyx_n_s_html_2, __pyx_n_s_tabs, __pyx_n_s_save, __pyx_n_s_output_file, __pyx_n_s_get_env, __pyx_n_s_fn, __pyx_n_s_template_directory, __pyx_n_s_template_environment, __pyx_n_s_template, __pyx_n_s_f, __pyx_n_s_data, __pyx_n_s_ws, __pyx_n_s_ws); if (unlikely(!__pyx_tuple__380)) __PYX_ERR(0, 6251, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__380);
__Pyx_GIVEREF(__pyx_tuple__380);
__pyx_codeobj__89 = (PyObject*)__Pyx_PyCode_New(4, 0, 45, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__380, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_performance_report, 6251, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__89)) __PYX_ERR(0, 6251, __pyx_L1_error)
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_202performance_report, 0, __pyx_n_s_Scheduler_performance_report, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__89)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6251, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__381);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_performance_report, __pyx_t_2) < 0) __PYX_ERR(0, 6251, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__381 = PyTuple_Pack(3, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject*)__pyx_kp_u__50)); if (unlikely(!__pyx_tuple__381)) __PYX_ERR(0, 6251, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__381);
__Pyx_GIVEREF(__pyx_tuple__381);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_52_performance_report {
PyObject_HEAD
PyObject *__pyx_v_BandwidthTypes;
PyObject *__pyx_v_BandwidthWorkers;
PyObject *__pyx_v_Div;
PyObject *__pyx_v_Panel;
PyObject *__pyx_v_Tabs;
PyObject *__pyx_v_bandwidth_types;
PyObject *__pyx_v_bandwidth_workers;
PyObject *__pyx_v_code;
PyObject *__pyx_v_comm;
PyObject *__pyx_v_compute;
PyObject *__pyx_v_d;
PyObject *__pyx_v_data;
PyObject *__pyx_v_distributed;
PyObject *__pyx_v_f;
PyObject *__pyx_v_fn;
PyObject *__pyx_v_get_env;
PyObject *__pyx_v_html;
PyObject *__pyx_v_k;
PyObject *__pyx_v_output_file;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent;
PyObject *__pyx_v_profile;
PyObject *__pyx_v_profile_to_figure;
PyObject *__pyx_v_rectangles;
PyObject *__pyx_v_rects;
PyObject *__pyx_v_save;
PyObject *__pyx_v_scheduler;
PyObject *__pyx_v_self;
PyObject *__pyx_v_source;
PyObject *__pyx_v_start;
PyObject *__pyx_v_stop;
PyObject *__pyx_v_tabs;
PyObject *__pyx_v_task_stream;
PyObject *__pyx_v_task_stream_figure;
PyObject *__pyx_v_tasks_timings;
PyObject *__pyx_v_template;
PyObject *__pyx_v_template_directory;
PyObject *__pyx_v_template_environment;
PyObject *__pyx_v_timespent;
Py_ssize_t __pyx_v_total_tasks;
PyObject *__pyx_v_workers;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_10genexpr143__pyx_v_ws;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_10genexpr144__pyx_v_ws;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws;
PyObject *__pyx_v_x;
};
+6252: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_cur_scope->__pyx_v_self; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1); __pyx_t_1 = 0;
+6253: stop = time()
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_time); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_stop = __pyx_t_1; __pyx_t_1 = 0;
6254: # Profiles
+6255: compute, scheduler, workers = await asyncio.gather(
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_asyncio); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_gather); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_t_6 = PySequence_Tuple(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L4_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 6255, __pyx_L1_error) __pyx_t_3 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_3); } else { __pyx_t_3 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_3) < 0) __PYX_ERR(0, 6255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { PyObject* sequence = __pyx_t_3; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 6255, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 2); } else { __pyx_t_6 = PyList_GET_ITEM(sequence, 0); __pyx_t_2 = PyList_GET_ITEM(sequence, 1); __pyx_t_5 = PyList_GET_ITEM(sequence, 2); } __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); #else __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; index = 0; __pyx_t_6 = __pyx_t_7(__pyx_t_4); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); index = 1; __pyx_t_2 = __pyx_t_7(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_2); index = 2; __pyx_t_5 = __pyx_t_7(__pyx_t_4); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_5); if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_4), 3) < 0) __PYX_ERR(0, 6255, __pyx_L1_error) __pyx_t_7 = NULL; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L6_unpacking_done; __pyx_L5_unpacking_failed:; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_7 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 6255, __pyx_L1_error) __pyx_L6_unpacking_done:; } __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_compute = __pyx_t_6; __pyx_t_6 = 0; __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_scheduler = __pyx_t_2; __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_workers = __pyx_t_5; __pyx_t_5 = 0;
+6256: *[
__pyx_t_3 = PyList_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_3, 2, __pyx_t_6); __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0;
+6257: self.get_profile(start=start),
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_get_profile); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_start, __pyx_cur_scope->__pyx_v_start) < 0) __PYX_ERR(0, 6257, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+6258: self.get_profile(scheduler=True, start=start),
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_get_profile); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_scheduler, Py_True) < 0) __PYX_ERR(0, 6258, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_start, __pyx_cur_scope->__pyx_v_start) < 0) __PYX_ERR(0, 6258, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+6259: self.get_profile(server=True, start=start),
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_get_profile); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_server, Py_True) < 0) __PYX_ERR(0, 6259, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_start, __pyx_cur_scope->__pyx_v_start) < 0) __PYX_ERR(0, 6259, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6260: ]
6261: )
+6262: from . import profile
__pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_n_s_profile); __Pyx_GIVEREF(__pyx_n_s_profile); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_profile); __pyx_t_5 = __Pyx_Import(__pyx_n_s__50, __pyx_t_3, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_5, __pyx_n_s_profile); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_v_profile = __pyx_t_3; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
6263:
+6264: def profile_to_figure(state):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_18performance_report_1profile_to_figure(PyObject *__pyx_self, PyObject *__pyx_v_state); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_18performance_report_1profile_to_figure = {"profile_to_figure", (PyCFunction)__pyx_pw_11distributed_9scheduler_9Scheduler_18performance_report_1profile_to_figure, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_18performance_report_1profile_to_figure(PyObject *__pyx_self, PyObject *__pyx_v_state) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("profile_to_figure (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_18performance_report_profile_to_figure(__pyx_self, ((PyObject *)__pyx_v_state));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_18performance_report_profile_to_figure(PyObject *__pyx_self, PyObject *__pyx_v_state) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_52_performance_report *__pyx_cur_scope;
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_52_performance_report *__pyx_outer_scope;
PyObject *__pyx_v_data = NULL;
PyObject *__pyx_v_figure = NULL;
CYTHON_UNUSED PyObject *__pyx_v_source = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("profile_to_figure", 0);
__pyx_outer_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_52_performance_report *) __Pyx_CyFunction_GetClosure(__pyx_self);
__pyx_cur_scope = __pyx_outer_scope;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.performance_report.profile_to_figure", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_data);
__Pyx_XDECREF(__pyx_v_figure);
__Pyx_XDECREF(__pyx_v_source);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__90 = PyTuple_Pack(4, __pyx_n_s_state, __pyx_n_s_data, __pyx_n_s_figure, __pyx_n_s_source); if (unlikely(!__pyx_tuple__90)) __PYX_ERR(0, 6264, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__90);
__Pyx_GIVEREF(__pyx_tuple__90);
/* … */
__pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_18performance_report_1profile_to_figure, 0, __pyx_n_s_Scheduler_performance_report_loc, ((PyObject*)__pyx_cur_scope), __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__91)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6264, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_cur_scope->__pyx_v_profile_to_figure = __pyx_t_5;
__pyx_t_5 = 0;
__pyx_codeobj__91 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__90, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_profile_to_figure, 6264, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__91)) __PYX_ERR(0, 6264, __pyx_L1_error)
+6265: data = profile.plot_data(state)
if (unlikely(!__pyx_cur_scope->__pyx_v_profile)) { __Pyx_RaiseClosureNameError("profile"); __PYX_ERR(0, 6265, __pyx_L1_error) }
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_profile, __pyx_n_s_plot_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6265, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
}
}
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_state) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_state);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6265, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_data = __pyx_t_1;
__pyx_t_1 = 0;
+6266: figure, source = profile.plot_figure(data, sizing_mode="stretch_both")
if (unlikely(!__pyx_cur_scope->__pyx_v_profile)) { __Pyx_RaiseClosureNameError("profile"); __PYX_ERR(0, 6266, __pyx_L1_error) }
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_profile, __pyx_n_s_plot_figure); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6266, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6266, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__pyx_v_data);
__Pyx_GIVEREF(__pyx_v_data);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_data);
__pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6266, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_sizing_mode, __pyx_n_u_stretch_both) < 0) __PYX_ERR(0, 6266, __pyx_L1_error)
__pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6266, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
PyObject* sequence = __pyx_t_4;
Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
__PYX_ERR(0, 6266, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__pyx_t_3 = PyTuple_GET_ITEM(sequence, 0);
__pyx_t_2 = PyTuple_GET_ITEM(sequence, 1);
} else {
__pyx_t_3 = PyList_GET_ITEM(sequence, 0);
__pyx_t_2 = PyList_GET_ITEM(sequence, 1);
}
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(__pyx_t_2);
#else
__pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6266, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6266, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
} else {
Py_ssize_t index = -1;
__pyx_t_1 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6266, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext;
index = 0; __pyx_t_3 = __pyx_t_5(__pyx_t_1); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
__Pyx_GOTREF(__pyx_t_3);
index = 1; __pyx_t_2 = __pyx_t_5(__pyx_t_1); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
__Pyx_GOTREF(__pyx_t_2);
if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_1), 2) < 0) __PYX_ERR(0, 6266, __pyx_L1_error)
__pyx_t_5 = NULL;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L4_unpacking_done;
__pyx_L3_unpacking_failed:;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_5 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
__PYX_ERR(0, 6266, __pyx_L1_error)
__pyx_L4_unpacking_done:;
}
__pyx_v_figure = __pyx_t_3;
__pyx_t_3 = 0;
__pyx_v_source = __pyx_t_2;
__pyx_t_2 = 0;
+6267: return figure
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_figure); __pyx_r = __pyx_v_figure; goto __pyx_L0;
6268:
+6269: compute, scheduler, workers = map(
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_profile_to_figure); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_profile_to_figure); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_cur_scope->__pyx_v_profile_to_figure); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_map, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { PyObject* sequence = __pyx_t_5; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 6269, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); } else { __pyx_t_3 = PyList_GET_ITEM(sequence, 0); __pyx_t_2 = PyList_GET_ITEM(sequence, 1); __pyx_t_6 = PyList_GET_ITEM(sequence, 2); } __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_6); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { Py_ssize_t index = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; index = 0; __pyx_t_3 = __pyx_t_7(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_2 = __pyx_t_7(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(__pyx_t_2); index = 2; __pyx_t_6 = __pyx_t_7(__pyx_t_4); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_4), 3) < 0) __PYX_ERR(0, 6269, __pyx_L1_error) __pyx_t_7 = NULL; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L8_unpacking_done; __pyx_L7_unpacking_failed:; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_7 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 6269, __pyx_L1_error) __pyx_L8_unpacking_done:; } __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_compute); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_compute, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_scheduler); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_scheduler, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_workers); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_workers, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0;
+6270: profile_to_figure, (compute, scheduler, workers)
__pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_compute); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_compute); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_cur_scope->__pyx_v_compute); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_scheduler); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_scheduler); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_cur_scope->__pyx_v_scheduler); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_workers); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_workers); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_cur_scope->__pyx_v_workers);
6271: )
6272:
6273: # Task stream
+6274: task_stream = self.get_task_stream(start=start)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_get_task_stream); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_start, __pyx_cur_scope->__pyx_v_start) < 0) __PYX_ERR(0, 6274, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_task_stream = __pyx_t_2; __pyx_t_2 = 0;
+6275: total_tasks = len(task_stream)
__pyx_t_8 = PyObject_Length(__pyx_cur_scope->__pyx_v_task_stream); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6275, __pyx_L1_error) __pyx_cur_scope->__pyx_v_total_tasks = __pyx_t_8;
+6276: timespent = defaultdict(int)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_defaultdict); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, ((PyObject *)(&PyInt_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)(&PyInt_Type))); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_timespent = __pyx_t_2; __pyx_t_2 = 0;
+6277: for d in task_stream:
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_task_stream)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_task_stream)) { __pyx_t_2 = __pyx_cur_scope->__pyx_v_task_stream; __Pyx_INCREF(__pyx_t_2); __pyx_t_8 = 0; __pyx_t_9 = NULL; } else { __pyx_t_8 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_task_stream); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6277, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 6277, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif } else { if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 6277, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif } } else { __pyx_t_6 = __pyx_t_9(__pyx_t_2); if (unlikely(!__pyx_t_6)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 6277, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_6); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_d); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_d, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6278: for x in d.get("startstops", []):
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_d, __pyx_n_s_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_n_u_startstops, __pyx_t_3}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6278, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_n_u_startstops, __pyx_t_3}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6278, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_1 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_n_u_startstops); __Pyx_GIVEREF(__pyx_n_u_startstops); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_10, __pyx_n_u_startstops); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_10, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) { __pyx_t_5 = __pyx_t_6; __Pyx_INCREF(__pyx_t_5); __pyx_t_11 = 0; __pyx_t_12 = NULL; } else { __pyx_t_11 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_12 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6278, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; for (;;) { if (likely(!__pyx_t_12)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_11); __Pyx_INCREF(__pyx_t_6); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 6278, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif } else { if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_11); __Pyx_INCREF(__pyx_t_6); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 6278, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif } } else { __pyx_t_6 = __pyx_t_12(__pyx_t_5); if (unlikely(!__pyx_t_6)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 6278, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_6); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_x); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_x, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6279: timespent[x["action"]] += x["stop"] - x["start"]
__pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_cur_scope->__pyx_v_x, __pyx_n_u_action); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_timespent, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_cur_scope->__pyx_v_x, __pyx_n_u_stop); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_cur_scope->__pyx_v_x, __pyx_n_u_start); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_13 = PyNumber_Subtract(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 6279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(PyObject_SetItem(__pyx_cur_scope->__pyx_v_timespent, __pyx_t_6, __pyx_t_4) < 0)) __PYX_ERR(0, 6279, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+6280: tasks_timings = ""
__Pyx_INCREF(__pyx_kp_u__50); __Pyx_GIVEREF(__pyx_kp_u__50); __pyx_cur_scope->__pyx_v_tasks_timings = __pyx_kp_u__50;
+6281: for k in sorted(timespent.keys()):
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_timespent, __pyx_n_s_keys); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_6); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PySequence_List(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; __pyx_t_14 = PyList_Sort(__pyx_t_2); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 6281, __pyx_L1_error) if (unlikely(__pyx_t_2 == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 6281, __pyx_L1_error) } __pyx_t_6 = __pyx_t_2; __Pyx_INCREF(__pyx_t_6); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 6281, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_k); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_k, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+6282: tasks_timings += f"\n<li> {k} time: {format_time(timespent[k])} </li>"
__pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_11 = 0; __pyx_t_15 = 127; __Pyx_INCREF(__pyx_kp_u_li); __pyx_t_11 += 6; __Pyx_GIVEREF(__pyx_kp_u_li); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u_li); __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_cur_scope->__pyx_v_k, __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_15 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_15) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_15; __pyx_t_11 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_time_2); __pyx_t_11 += 7; __Pyx_GIVEREF(__pyx_kp_u_time_2); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_kp_u_time_2); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_format_time); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_timespent, __pyx_cur_scope->__pyx_v_k); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 6282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_1, __pyx_t_13) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_13); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_15 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_15) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_15; __pyx_t_11 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_kp_u_li_2); __pyx_t_11 += 6; __Pyx_GIVEREF(__pyx_kp_u_li_2); PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_kp_u_li_2); __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_2, 5, __pyx_t_11, __pyx_t_15); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_cur_scope->__pyx_v_tasks_timings, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_tasks_timings); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_tasks_timings, ((PyObject*)__pyx_t_2)); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
6283:
+6284: from .diagnostics.task_stream import rectangles
__pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_n_s_rectangles); __Pyx_GIVEREF(__pyx_n_s_rectangles); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_n_s_rectangles); __pyx_t_2 = __Pyx_Import(__pyx_n_s_diagnostics_task_stream, __pyx_t_6, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_rectangles); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_rectangles = __pyx_t_6; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6285: from .dashboard.components.scheduler import task_stream_figure
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_task_stream_figure); __Pyx_GIVEREF(__pyx_n_s_task_stream_figure); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_task_stream_figure); __pyx_t_6 = __Pyx_Import(__pyx_n_s_dashboard_components_scheduler, __pyx_t_2, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_6, __pyx_n_s_task_stream_figure); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_task_stream_figure = __pyx_t_2; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6286:
+6287: rects = rectangles(task_stream)
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_rectangles); __pyx_t_2 = __pyx_cur_scope->__pyx_v_rectangles; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_6 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_cur_scope->__pyx_v_task_stream) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_cur_scope->__pyx_v_task_stream); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_rects = __pyx_t_6; __pyx_t_6 = 0;
+6288: source, task_stream = task_stream_figure(sizing_mode="stretch_both")
__pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_sizing_mode, __pyx_n_u_stretch_both) < 0) __PYX_ERR(0, 6288, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_task_stream_figure, __pyx_empty_tuple, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 6288, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_6 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_4); #else __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; index = 0; __pyx_t_6 = __pyx_t_7(__pyx_t_5); if (unlikely(!__pyx_t_6)) goto __pyx_L15_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); index = 1; __pyx_t_4 = __pyx_t_7(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L15_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_5), 2) < 0) __PYX_ERR(0, 6288, __pyx_L1_error) __pyx_t_7 = NULL; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L16_unpacking_done; __pyx_L15_unpacking_failed:; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 6288, __pyx_L1_error) __pyx_L16_unpacking_done:; } __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_source = __pyx_t_6; __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_task_stream); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_task_stream, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0;
+6289: source.data.update(rects)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_source, __pyx_n_s_data); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_update); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_4, __pyx_cur_scope->__pyx_v_rects) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_cur_scope->__pyx_v_rects); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6290:
+6291: from distributed.dashboard.components.scheduler import (
__pyx_t_6 = __Pyx_Import(__pyx_n_s_distributed_dashboard_components, __pyx_t_2, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_6, __pyx_n_s_BandwidthWorkers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_BandwidthWorkers = __pyx_t_2; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_6, __pyx_n_s_BandwidthTypes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_BandwidthTypes = __pyx_t_2; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+6292: BandwidthWorkers,
__pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_BandwidthWorkers); __Pyx_GIVEREF(__pyx_n_s_BandwidthWorkers); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_BandwidthWorkers); __Pyx_INCREF(__pyx_n_s_BandwidthTypes); __Pyx_GIVEREF(__pyx_n_s_BandwidthTypes); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_BandwidthTypes);
6293: BandwidthTypes,
6294: )
6295:
+6296: bandwidth_workers = BandwidthWorkers(self, sizing_mode="stretch_both")
__pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_cur_scope->__pyx_v_self); __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_sizing_mode, __pyx_n_u_stretch_both) < 0) __PYX_ERR(0, 6296, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_BandwidthWorkers, __pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_v_bandwidth_workers = __pyx_t_4; __pyx_t_4 = 0;
+6297: bandwidth_workers.update()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_bandwidth_workers, __pyx_n_s_update); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+6298: bandwidth_types = BandwidthTypes(self, sizing_mode="stretch_both")
__pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_cur_scope->__pyx_v_self); __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_sizing_mode, __pyx_n_u_stretch_both) < 0) __PYX_ERR(0, 6298, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_BandwidthTypes, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_bandwidth_types = __pyx_t_6; __pyx_t_6 = 0;
+6299: bandwidth_types.update()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_bandwidth_types, __pyx_n_s_update); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_6 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6300:
+6301: from bokeh.models import Panel, Tabs, Div
__pyx_t_6 = PyList_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_n_s_Panel); __Pyx_GIVEREF(__pyx_n_s_Panel); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_n_s_Panel); __Pyx_INCREF(__pyx_n_s_Tabs); __Pyx_GIVEREF(__pyx_n_s_Tabs); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_Tabs); __Pyx_INCREF(__pyx_n_s_Div); __Pyx_GIVEREF(__pyx_n_s_Div); PyList_SET_ITEM(__pyx_t_6, 2, __pyx_n_s_Div); __pyx_t_2 = __Pyx_Import(__pyx_n_s_bokeh_models, __pyx_t_6, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Panel); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_Panel = __pyx_t_6; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Tabs); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_Tabs = __pyx_t_6; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Div); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_Div = __pyx_t_6; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6302: import distributed
__pyx_t_2 = __Pyx_Import(__pyx_n_s_distributed, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_distributed = __pyx_t_2; __pyx_t_2 = 0;
6303:
6304: # HTML
6305: ws: WorkerState
6306: html = """
6307: <h1> Dask Performance Report </h1>
6308:
6309: <i> Select different tabs on the top for additional information </i>
6310:
6311: <h2> Duration: {time} </h2>
6312: <h2> Tasks Information </h2>
6313: <ul>
6314: <li> number of tasks: {ntasks} </li>
6315: {tasks_timings}
6316: </ul>
6317:
6318: <h2> Scheduler Information </h2>
6319: <ul>
6320: <li> Address: {address} </li>
6321: <li> Workers: {nworkers} </li>
6322: <li> Threads: {threads} </li>
6323: <li> Memory: {memory} </li>
6324: <li> Dask Version: {dask_version} </li>
6325: <li> Dask.Distributed Version: {distributed_version} </li>
6326: </ul>
6327:
6328: <h2> Calling Code </h2>
6329: <pre>
6330: {code}
6331: </pre>
+6332: """.format(
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_h1_Dask_Performance_Report_h1_i, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); /* … */ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_v_html = __pyx_t_4; __pyx_t_4 = 0;
+6333: time=format_time(stop - start),
__pyx_t_6 = __Pyx_PyDict_NewPresized(10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_format_time); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_13 = PyNumber_Subtract(__pyx_cur_scope->__pyx_v_stop, __pyx_cur_scope->__pyx_v_start); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 6333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_1, __pyx_t_13) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_13); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_time, __pyx_t_4) < 0) __PYX_ERR(0, 6333, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+6334: ntasks=total_tasks,
__pyx_t_4 = PyInt_FromSsize_t(__pyx_cur_scope->__pyx_v_total_tasks); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6334, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_ntasks, __pyx_t_4) < 0) __PYX_ERR(0, 6333, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+6335: tasks_timings=tasks_timings,
if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_tasks_timings, __pyx_cur_scope->__pyx_v_tasks_timings) < 0) __PYX_ERR(0, 6333, __pyx_L1_error)
+6336: address=self.address,
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_address); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_address, __pyx_t_4) < 0) __PYX_ERR(0, 6333, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+6337: nworkers=len(parent._workers_dv),
__pyx_t_4 = __pyx_cur_scope->__pyx_v_parent->_workers_dv; __Pyx_INCREF(__pyx_t_4); if (unlikely(__pyx_t_4 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 6337, __pyx_L1_error) } __pyx_t_8 = PyDict_Size(__pyx_t_4); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6337, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_nworkers, __pyx_t_4) < 0) __PYX_ERR(0, 6333, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+6338: threads=sum([ws._nthreads for ws in parent._workers_dv.values()]),
{ /* enter inner scope */
__pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6338, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_8 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
__PYX_ERR(0, 6338, __pyx_L1_error)
}
__pyx_t_13 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_parent->_workers_dv, 1, __pyx_n_s_values, (&__pyx_t_11), (&__pyx_t_10)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 6338, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_5);
__pyx_t_5 = __pyx_t_13;
__pyx_t_13 = 0;
while (1) {
__pyx_t_16 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_11, &__pyx_t_8, NULL, &__pyx_t_13, NULL, __pyx_t_10);
if (unlikely(__pyx_t_16 == 0)) break;
if (unlikely(__pyx_t_16 == -1)) __PYX_ERR(0, 6338, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 6338, __pyx_L1_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_10genexpr143__pyx_v_ws));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_10genexpr143__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_13));
__Pyx_GIVEREF(__pyx_t_13);
__pyx_t_13 = 0;
__pyx_t_13 = PyInt_FromSsize_t(__pyx_cur_scope->__pyx_10genexpr143__pyx_v_ws->_nthreads); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 6338, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_13))) __PYX_ERR(0, 6338, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
} /* exit inner scope */
__pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6338, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_threads, __pyx_t_5) < 0) __PYX_ERR(0, 6333, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6339: memory=format_bytes(
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_format_bytes); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
+6340: sum([ws._memory_limit for ws in parent._workers_dv.values()])
{ /* enter inner scope */
__pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 6340, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_11 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
__PYX_ERR(0, 6340, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_parent->_workers_dv, 1, __pyx_n_s_values, (&__pyx_t_8), (&__pyx_t_10)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6340, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_3;
__pyx_t_3 = 0;
while (1) {
__pyx_t_16 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_8, &__pyx_t_11, NULL, &__pyx_t_3, NULL, __pyx_t_10);
if (unlikely(__pyx_t_16 == 0)) break;
if (unlikely(__pyx_t_16 == -1)) __PYX_ERR(0, 6340, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 6340, __pyx_L1_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_10genexpr144__pyx_v_ws));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_10genexpr144__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_3));
__Pyx_GIVEREF(__pyx_t_3);
__pyx_t_3 = 0;
__pyx_t_3 = PyInt_FromSsize_t(__pyx_cur_scope->__pyx_10genexpr144__pyx_v_ws->_memory_limit); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6340, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_13, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 6340, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
} /* exit inner scope */
__pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_13); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6340, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_13 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
__pyx_t_13 = PyMethod_GET_SELF(__pyx_t_4);
if (likely(__pyx_t_13)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
__Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_4, function);
}
}
__pyx_t_5 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_13, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1);
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6339, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_memory_2, __pyx_t_5) < 0) __PYX_ERR(0, 6333, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
6341: ),
+6342: code=code,
if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_code, __pyx_cur_scope->__pyx_v_code) < 0) __PYX_ERR(0, 6333, __pyx_L1_error)
+6343: dask_version=dask.__version__,
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_dask); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_version); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dask_version, __pyx_t_4) < 0) __PYX_ERR(0, 6333, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+6344: distributed_version=distributed.__version__,
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_distributed, __pyx_n_s_version); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_distributed_version, __pyx_t_4) < 0) __PYX_ERR(0, 6333, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
6345: )
+6346: html = Div(text=html)
__pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_text, __pyx_cur_scope->__pyx_v_html) < 0) __PYX_ERR(0, 6346, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_Div, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_html); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_html, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0;
6347:
+6348: html = Panel(child=html, title="Summary")
__pyx_t_6 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_child, __pyx_cur_scope->__pyx_v_html) < 0) __PYX_ERR(0, 6348, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_title, __pyx_n_u_Summary) < 0) __PYX_ERR(0, 6348, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_Panel, __pyx_empty_tuple, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_html); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_html, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0;
+6349: compute = Panel(child=compute, title="Worker Profile (compute)")
__pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_child, __pyx_cur_scope->__pyx_v_compute) < 0) __PYX_ERR(0, 6349, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_title, __pyx_kp_u_Worker_Profile_compute) < 0) __PYX_ERR(0, 6349, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_Panel, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_compute); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_compute, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0;
+6350: workers = Panel(child=workers, title="Worker Profile (administrative)")
__pyx_t_6 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_child, __pyx_cur_scope->__pyx_v_workers) < 0) __PYX_ERR(0, 6350, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_title, __pyx_kp_u_Worker_Profile_administrative) < 0) __PYX_ERR(0, 6350, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_Panel, __pyx_empty_tuple, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_workers); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_workers, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0;
+6351: scheduler = Panel(child=scheduler, title="Scheduler Profile (administrative)")
__pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_child, __pyx_cur_scope->__pyx_v_scheduler) < 0) __PYX_ERR(0, 6351, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_title, __pyx_kp_u_Scheduler_Profile_administrative) < 0) __PYX_ERR(0, 6351, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_Panel, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_scheduler); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_scheduler, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0;
+6352: task_stream = Panel(child=task_stream, title="Task Stream")
__pyx_t_6 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_child, __pyx_cur_scope->__pyx_v_task_stream) < 0) __PYX_ERR(0, 6352, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_title, __pyx_kp_u_Task_Stream) < 0) __PYX_ERR(0, 6352, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_Panel, __pyx_empty_tuple, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_task_stream); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_task_stream, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0;
+6353: bandwidth_workers = Panel(
__pyx_t_6 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_Panel, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_bandwidth_workers); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_bandwidth_workers, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = 0;
+6354: child=bandwidth_workers.fig, title="Bandwidth (Workers)"
__pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_bandwidth_workers, __pyx_n_s_fig); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_child, __pyx_t_6) < 0) __PYX_ERR(0, 6354, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_title, __pyx_kp_u_Bandwidth_Workers) < 0) __PYX_ERR(0, 6354, __pyx_L1_error)
6355: )
+6356: bandwidth_types = Panel(child=bandwidth_types.fig, title="Bandwidth (Types)")
__pyx_t_6 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_bandwidth_types, __pyx_n_s_fig); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_child, __pyx_t_4) < 0) __PYX_ERR(0, 6356, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_title, __pyx_kp_u_Bandwidth_Types) < 0) __PYX_ERR(0, 6356, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_Panel, __pyx_empty_tuple, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_bandwidth_types); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_bandwidth_types, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0;
6357:
+6358: tabs = Tabs(
__pyx_t_6 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_Tabs, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_tabs = __pyx_t_6; __pyx_t_6 = 0;
+6359: tabs=[
__pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6359, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); /* … */ __pyx_t_6 = PyList_New(7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6359, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_html); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_html); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_cur_scope->__pyx_v_html); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_task_stream); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_task_stream); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_cur_scope->__pyx_v_task_stream); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_compute); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_compute); PyList_SET_ITEM(__pyx_t_6, 2, __pyx_cur_scope->__pyx_v_compute); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_workers); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_workers); PyList_SET_ITEM(__pyx_t_6, 3, __pyx_cur_scope->__pyx_v_workers); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_scheduler); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_scheduler); PyList_SET_ITEM(__pyx_t_6, 4, __pyx_cur_scope->__pyx_v_scheduler); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_bandwidth_workers); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_bandwidth_workers); PyList_SET_ITEM(__pyx_t_6, 5, __pyx_cur_scope->__pyx_v_bandwidth_workers); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_bandwidth_types); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_bandwidth_types); PyList_SET_ITEM(__pyx_t_6, 6, __pyx_cur_scope->__pyx_v_bandwidth_types); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_tabs, __pyx_t_6) < 0) __PYX_ERR(0, 6359, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6360: html,
6361: task_stream,
6362: compute,
6363: workers,
6364: scheduler,
6365: bandwidth_workers,
6366: bandwidth_types,
6367: ]
6368: )
6369:
+6370: from bokeh.plotting import save, output_file
__pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_n_s_save); __Pyx_GIVEREF(__pyx_n_s_save); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_n_s_save); __Pyx_INCREF(__pyx_n_s_output_file); __Pyx_GIVEREF(__pyx_n_s_output_file); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_output_file); __pyx_t_4 = __Pyx_Import(__pyx_n_s_bokeh_plotting, __pyx_t_6, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_save); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_save = __pyx_t_6; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_output_file); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_output_file = __pyx_t_6; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+6371: from bokeh.core.templates import get_env
__pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_n_s_get_env); __Pyx_GIVEREF(__pyx_n_s_get_env); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_n_s_get_env); __pyx_t_6 = __Pyx_Import(__pyx_n_s_bokeh_core_templates, __pyx_t_4, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_6, __pyx_n_s_get_env); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_v_get_env = __pyx_t_4; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6372:
+6373: with tmpfile(extension=".html") as fn:
/*with:*/ {
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_tmpfile); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6373, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6373, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_extension, __pyx_kp_u_html) < 0) __PYX_ERR(0, 6373, __pyx_L1_error)
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6373, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_17 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_n_s_exit); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 6373, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_2, __pyx_n_s_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6373, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_6, function);
}
}
__pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6373, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __pyx_t_4;
__pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/*try:*/ {
{
/*try:*/ {
__Pyx_GIVEREF(__pyx_t_6);
__pyx_cur_scope->__pyx_v_fn = __pyx_t_6;
__pyx_t_6 = 0;
/* … */
}
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
goto __pyx_L30_try_end;
__pyx_L25_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.performance_report", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_6) < 0) __PYX_ERR(0, 6373, __pyx_L27_except_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_4 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6373, __pyx_L27_except_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_4, NULL);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 6373, __pyx_L27_except_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_28 = __Pyx_PyObject_IsTrue(__pyx_t_22);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
if (__pyx_t_28 < 0) __PYX_ERR(0, 6373, __pyx_L27_except_error)
__pyx_t_27 = ((!(__pyx_t_28 != 0)) != 0);
if (__pyx_t_27) {
__Pyx_GIVEREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_1, __pyx_t_6);
__pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_6 = 0;
__PYX_ERR(0, 6373, __pyx_L27_except_error)
}
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
goto __pyx_L26_exception_handled;
}
__pyx_L27_except_error:;
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
goto __pyx_L1_error;
__pyx_L26_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
__pyx_L30_try_end:;
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_17) {
__pyx_t_20 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 6373, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
}
goto __pyx_L24;
}
__pyx_L24:;
}
goto __pyx_L48;
__pyx_L21_error:;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
goto __pyx_L1_error;
__pyx_L48:;
}
+6374: output_file(filename=fn, title="Dask Performance Report")
__pyx_t_6 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6374, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_filename, __pyx_cur_scope->__pyx_v_fn) < 0) __PYX_ERR(0, 6374, __pyx_L25_error) if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_title, __pyx_kp_u_Dask_Performance_Report) < 0) __PYX_ERR(0, 6374, __pyx_L25_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_output_file, __pyx_empty_tuple, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6374, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6375: template_directory = os.path.join(
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_os); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6375, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_path); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6375, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_join); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6375, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+6376: os.path.dirname(os.path.abspath(__file__)), "dashboard", "templates"
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_os); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6376, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6376, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_dirname); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6376, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_os); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 6376, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6376, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_abspath); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 6376, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_file); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6376, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_21 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_1 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_21, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_3); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6376, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_4 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_13, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6376, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_t_4, __pyx_n_u_dashboard, __pyx_n_u_templates}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6375, __pyx_L25_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_t_4, __pyx_n_u_dashboard, __pyx_n_u_templates}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6375, __pyx_L25_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { __pyx_t_1 = PyTuple_New(3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6375, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_10, __pyx_t_4); __Pyx_INCREF(__pyx_n_u_dashboard); __Pyx_GIVEREF(__pyx_n_u_dashboard); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_10, __pyx_n_u_dashboard); __Pyx_INCREF(__pyx_n_u_templates); __Pyx_GIVEREF(__pyx_n_u_templates); PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_10, __pyx_n_u_templates); __pyx_t_4 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6375, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_template_directory = __pyx_t_2; __pyx_t_2 = 0;
6377: )
+6378: template_environment = get_env()
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_get_env); __pyx_t_6 = __pyx_cur_scope->__pyx_v_get_env; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_6); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6378, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_template_environment = __pyx_t_2; __pyx_t_2 = 0;
+6379: template_environment.loader.searchpath.append(template_directory)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_template_environment, __pyx_n_s_loader); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6379, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_searchpath); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6379, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_14 = __Pyx_PyObject_Append(__pyx_t_6, __pyx_cur_scope->__pyx_v_template_directory); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 6379, __pyx_L25_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+6380: template = template_environment.get_template("performance_report.html")
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_template_environment, __pyx_n_s_get_template); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6380, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_6 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_kp_u_performance_report_html) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_u_performance_report_html); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6380, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_template = __pyx_t_6; __pyx_t_6 = 0;
+6381: save(tabs, filename=fn, template=template)
__pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6381, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_tabs); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_tabs); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_cur_scope->__pyx_v_tabs); __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6381, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_filename, __pyx_cur_scope->__pyx_v_fn) < 0) __PYX_ERR(0, 6381, __pyx_L25_error) if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_template, __pyx_cur_scope->__pyx_v_template) < 0) __PYX_ERR(0, 6381, __pyx_L25_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_save, __pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6381, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6382:
+6383: with open(fn) as f:
/*with:*/ {
__pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_open, __pyx_cur_scope->__pyx_v_fn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6383, __pyx_L25_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_22 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 6383, __pyx_L25_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_6 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6383, __pyx_L31_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
if (likely(__pyx_t_4)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_6, function);
}
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6383, __pyx_L31_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __pyx_t_2;
__pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/*try:*/ {
{
/*try:*/ {
__Pyx_GIVEREF(__pyx_t_6);
__pyx_cur_scope->__pyx_v_f = __pyx_t_6;
__pyx_t_6 = 0;
/* … */
}
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
__Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
__Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
goto __pyx_L40_try_end;
__pyx_L35_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
/*except:*/ {
__Pyx_AddTraceback("distributed.scheduler.Scheduler.performance_report", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(0, 6383, __pyx_L37_except_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = PyTuple_Pack(3, __pyx_t_6, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6383, __pyx_L37_except_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_26 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_4, NULL);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 6383, __pyx_L37_except_error)
__Pyx_GOTREF(__pyx_t_26);
__pyx_t_27 = __Pyx_PyObject_IsTrue(__pyx_t_26);
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
if (__pyx_t_27 < 0) __PYX_ERR(0, 6383, __pyx_L37_except_error)
__pyx_t_28 = ((!(__pyx_t_27 != 0)) != 0);
if (__pyx_t_28) {
__Pyx_GIVEREF(__pyx_t_6);
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_ErrRestoreWithState(__pyx_t_6, __pyx_t_1, __pyx_t_2);
__pyx_t_6 = 0; __pyx_t_1 = 0; __pyx_t_2 = 0;
__PYX_ERR(0, 6383, __pyx_L37_except_error)
}
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
goto __pyx_L36_exception_handled;
}
__pyx_L37_except_error:;
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_24);
__Pyx_XGIVEREF(__pyx_t_25);
__Pyx_ExceptionReset(__pyx_t_23, __pyx_t_24, __pyx_t_25);
goto __pyx_L25_error;
__pyx_L36_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_24);
__Pyx_XGIVEREF(__pyx_t_25);
__Pyx_ExceptionReset(__pyx_t_23, __pyx_t_24, __pyx_t_25);
__pyx_L40_try_end:;
}
}
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_22) {
__pyx_t_25 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_tuple__12, NULL);
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 6383, __pyx_L25_error)
__Pyx_GOTREF(__pyx_t_25);
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
}
goto __pyx_L34;
}
__pyx_L34:;
}
goto __pyx_L44;
__pyx_L31_error:;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
goto __pyx_L25_error;
__pyx_L44:;
}
+6384: data = f.read()
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_f, __pyx_n_s_read); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6384, __pyx_L35_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_6 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6384, __pyx_L35_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_v_data = __pyx_t_6; __pyx_t_6 = 0;
6385:
+6386: return data
__Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_cur_scope->__pyx_v_data)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 6386, __pyx_L1_error) } __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_cur_scope->__pyx_v_data); goto __pyx_L0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
6387:
+6388: async def get_worker_logs(self, comm=None, n=None, workers=None, nanny=False):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_205get_worker_logs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_205get_worker_logs = {"get_worker_logs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_205get_worker_logs, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_205get_worker_logs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_n = 0;
PyObject *__pyx_v_workers = 0;
PyObject *__pyx_v_nanny = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_worker_logs (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_n,&__pyx_n_s_workers,&__pyx_n_s_nanny,0};
PyObject* values[5] = {0,0,0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject *)Py_None));
values[4] = ((PyObject *)((PyObject *)Py_False));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_workers);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nanny);
if (value) { values[4] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_worker_logs") < 0)) __PYX_ERR(0, 6388, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_n = values[2];
__pyx_v_workers = values[3];
__pyx_v_nanny = values[4];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("get_worker_logs", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6388, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_worker_logs", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_204get_worker_logs(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_n, __pyx_v_workers, __pyx_v_nanny);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_204get_worker_logs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_n, PyObject *__pyx_v_workers, PyObject *__pyx_v_nanny) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_53_get_worker_logs *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_worker_logs", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_53_get_worker_logs *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_53_get_worker_logs(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_53_get_worker_logs, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_53_get_worker_logs *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 6388, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
__pyx_cur_scope->__pyx_v_comm = __pyx_v_comm;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_comm);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_comm);
__pyx_cur_scope->__pyx_v_n = __pyx_v_n;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_n);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_n);
__pyx_cur_scope->__pyx_v_workers = __pyx_v_workers;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_workers);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_workers);
__pyx_cur_scope->__pyx_v_nanny = __pyx_v_nanny;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_nanny);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_nanny);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_206generator23, __pyx_codeobj__92, (PyObject *) __pyx_cur_scope, __pyx_n_s_get_worker_logs, __pyx_n_s_Scheduler_get_worker_logs, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 6388, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_worker_logs", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_206generator23(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_worker_logs", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 6388, __pyx_L1_error)
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("get_worker_logs", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__382 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_n, __pyx_n_s_workers, __pyx_n_s_nanny, __pyx_n_s_results); if (unlikely(!__pyx_tuple__382)) __PYX_ERR(0, 6388, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__382);
__Pyx_GIVEREF(__pyx_tuple__382);
__pyx_codeobj__92 = (PyObject*)__Pyx_PyCode_New(5, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__382, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_get_worker_logs, 6388, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__92)) __PYX_ERR(0, 6388, __pyx_L1_error)
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_205get_worker_logs, 0, __pyx_n_s_Scheduler_get_worker_logs, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__92)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6388, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__383);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_get_worker_logs, __pyx_t_2) < 0) __PYX_ERR(0, 6388, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__383 = PyTuple_Pack(4, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_False)); if (unlikely(!__pyx_tuple__383)) __PYX_ERR(0, 6388, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__383);
__Pyx_GIVEREF(__pyx_tuple__383);
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_53_get_worker_logs {
PyObject_HEAD
PyObject *__pyx_v_comm;
PyObject *__pyx_v_n;
PyObject *__pyx_v_nanny;
PyObject *__pyx_v_results;
PyObject *__pyx_v_self;
PyObject *__pyx_v_workers;
};
+6389: results = await self.broadcast(
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_broadcast); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L4_resume_from_await:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 6389, __pyx_L1_error) __pyx_t_3 = __pyx_sent_value; __Pyx_INCREF(__pyx_t_3); } else { __pyx_t_3 = NULL; if (__Pyx_PyGen_FetchStopIterationValue(&__pyx_t_3) < 0) __PYX_ERR(0, 6389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_GIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_v_results = __pyx_t_3; __pyx_t_3 = 0;
+6390: msg={"op": "get_logs", "n": n}, workers=workers, nanny=nanny
__pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_op, __pyx_n_u_get_logs) < 0) __PYX_ERR(0, 6390, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_n, __pyx_cur_scope->__pyx_v_n) < 0) __PYX_ERR(0, 6390, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_msg, __pyx_t_3) < 0) __PYX_ERR(0, 6390, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_workers, __pyx_cur_scope->__pyx_v_workers) < 0) __PYX_ERR(0, 6390, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_nanny, __pyx_cur_scope->__pyx_v_nanny) < 0) __PYX_ERR(0, 6390, __pyx_L1_error)
6391: )
+6392: return results
__Pyx_XDECREF(__pyx_r); __pyx_r = NULL; __Pyx_ReturnWithStopIteration(__pyx_cur_scope->__pyx_v_results); goto __pyx_L0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
6393:
+6394: def log_event(self, name, msg):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_208log_event(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_208log_event = {"log_event", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_208log_event, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_208log_event(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_name = 0;
PyObject *__pyx_v_msg = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("log_event (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_name,&__pyx_n_s_msg,0};
PyObject* values[3] = {0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("log_event", 1, 3, 3, 1); __PYX_ERR(0, 6394, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_msg)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("log_event", 1, 3, 3, 2); __PYX_ERR(0, 6394, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "log_event") < 0)) __PYX_ERR(0, 6394, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
}
__pyx_v_self = values[0];
__pyx_v_name = values[1];
__pyx_v_msg = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("log_event", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6394, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.log_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_207log_event(__pyx_self, __pyx_v_self, __pyx_v_name, __pyx_v_msg);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_207log_event(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_msg) {
PyObject *__pyx_v_event = NULL;
PyObject *__pyx_v_n = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("log_event", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.log_event", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_event);
__Pyx_XDECREF(__pyx_v_n);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__384 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_name, __pyx_n_s_msg, __pyx_n_s_event, __pyx_n_s_n); if (unlikely(!__pyx_tuple__384)) __PYX_ERR(0, 6394, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__384);
__Pyx_GIVEREF(__pyx_tuple__384);
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_208log_event, 0, __pyx_n_s_Scheduler_log_event, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__385)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6394, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_log_event_2, __pyx_t_2) < 0) __PYX_ERR(0, 6394, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__385 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__384, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_log_event_2, 6394, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__385)) __PYX_ERR(0, 6394, __pyx_L1_error)
+6395: event = (time(), msg)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_time); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_INCREF(__pyx_v_msg); __Pyx_GIVEREF(__pyx_v_msg); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_msg); __pyx_t_1 = 0; __pyx_v_event = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+6396: if isinstance(name, list):
__pyx_t_4 = PyList_Check(__pyx_v_name);
__pyx_t_5 = (__pyx_t_4 != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L3;
}
+6397: for n in name:
if (likely(PyList_CheckExact(__pyx_v_name)) || PyTuple_CheckExact(__pyx_v_name)) { __pyx_t_2 = __pyx_v_name; __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6397, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_7)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 6397, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 6397, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_7(__pyx_t_2); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 6397, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_n, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6398: self.events[n].append(event)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_events); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_n); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_8 = __Pyx_PyObject_Append(__pyx_t_3, __pyx_v_event); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 6398, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+6399: self.event_counts[n] += 1
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_event_counts); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_n); __pyx_t_1 = __pyx_v_n; __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyInt_AddObjC(__pyx_t_9, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 6399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_t_1, __pyx_t_10) < 0)) __PYX_ERR(0, 6399, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6400: else:
+6401: self.events[name].append(event)
/*else*/ {
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_events); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6401, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6401, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_8 = __Pyx_PyObject_Append(__pyx_t_3, __pyx_v_event); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 6401, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+6402: self.event_counts[name] += 1
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_event_counts); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_name); __pyx_t_2 = __pyx_v_name; __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 6402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_t_2, __pyx_t_10) < 0)) __PYX_ERR(0, 6402, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_L3:;
6403:
+6404: def get_events(self, comm=None, topic=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_210get_events(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_210get_events = {"get_events", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_210get_events, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_210get_events(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_topic = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_events (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_topic,0};
PyObject* values[3] = {0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_topic);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_events") < 0)) __PYX_ERR(0, 6404, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_topic = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("get_events", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6404, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_events", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_209get_events(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_topic);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_209get_events(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_topic) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_events", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.get_events", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__386 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_topic); if (unlikely(!__pyx_tuple__386)) __PYX_ERR(0, 6404, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__386);
__Pyx_GIVEREF(__pyx_tuple__386);
__pyx_codeobj__387 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__386, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_get_events, 6404, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__387)) __PYX_ERR(0, 6404, __pyx_L1_error)
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_210get_events, 0, __pyx_n_s_Scheduler_get_events, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__387)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6404, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__388);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_get_events, __pyx_t_2) < 0) __PYX_ERR(0, 6404, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_tuple__388 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__388)) __PYX_ERR(0, 6404, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__388);
__Pyx_GIVEREF(__pyx_tuple__388);
+6405: if topic is not None:
__pyx_t_1 = (__pyx_v_topic != Py_None);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+6406: return tuple(self.events[topic])
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_events); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_topic); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PySequence_Tuple(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
6407: else:
+6408: return valmap(tuple, self.events)
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_valmap); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6408, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_events); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6408, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
__pyx_t_7 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
if (likely(__pyx_t_6)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_4, function);
__pyx_t_7 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[3] = {__pyx_t_6, ((PyObject *)(&PyTuple_Type)), __pyx_t_5};
__pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6408, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[3] = {__pyx_t_6, ((PyObject *)(&PyTuple_Type)), __pyx_t_5};
__pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6408, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
} else
#endif
{
__pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6408, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (__pyx_t_6) {
__Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
}
__Pyx_INCREF(((PyObject *)(&PyTuple_Type)));
__Pyx_GIVEREF(((PyObject *)(&PyTuple_Type)));
PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, ((PyObject *)(&PyTuple_Type)));
__Pyx_GIVEREF(__pyx_t_5);
PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_5);
__pyx_t_5 = 0;
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6408, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
}
6409:
6410: ###########
6411: # Cleanup #
6412: ###########
6413:
+6414: def reevaluate_occupancy(self, worker_index: Py_ssize_t = 0):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_212reevaluate_occupancy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_211reevaluate_occupancy[] = "Periodically reassess task duration time\n\n The expected duration of a task can change over time. Unfortunately we\n don't have a good constant-time way to propagate the effects of these\n changes out to the summaries that they affect, like the total expected\n runtime of each of the workers, or what tasks are stealable.\n\n In this coroutine we walk through all of the workers and re-align their\n estimates with the current state of tasks. We do this periodically\n rather than at every transition, and we only do it if the scheduler\n process isn't under load (using psutil.Process.cpu_percent()). This\n lets us avoid this fringe optimization when we have better things to\n think about.\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_212reevaluate_occupancy = {"reevaluate_occupancy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_212reevaluate_occupancy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_211reevaluate_occupancy};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_212reevaluate_occupancy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
Py_ssize_t __pyx_v_worker_index;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("reevaluate_occupancy (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_worker_index,0};
PyObject* values[2] = {0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker_index);
if (value) { values[1] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "reevaluate_occupancy") < 0)) __PYX_ERR(0, 6414, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
if (values[1]) {
__pyx_v_worker_index = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_worker_index == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 6414, __pyx_L3_error)
} else {
__pyx_v_worker_index = ((Py_ssize_t)((Py_ssize_t)0));
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("reevaluate_occupancy", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6414, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.reevaluate_occupancy", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_211reevaluate_occupancy(__pyx_self, __pyx_v_self, __pyx_v_worker_index);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_211reevaluate_occupancy(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, Py_ssize_t __pyx_v_worker_index) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_v_last = NULL;
PyObject *__pyx_v_next_time = NULL;
PyObject *__pyx_v_workers = 0;
Py_ssize_t __pyx_v_nworkers;
CYTHON_UNUSED Py_ssize_t __pyx_v_i;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_v_duration = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("reevaluate_occupancy", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_23);
__Pyx_XDECREF(__pyx_t_24);
__Pyx_XDECREF(__pyx_t_25);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.reevaluate_occupancy", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_v_last);
__Pyx_XDECREF(__pyx_v_next_time);
__Pyx_XDECREF(__pyx_v_workers);
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF(__pyx_v_duration);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_215generator24(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_tuple__389 = PyTuple_Pack(10, __pyx_n_s_self, __pyx_n_s_worker_index, __pyx_n_s_parent, __pyx_n_s_last, __pyx_n_s_next_time, __pyx_n_s_workers, __pyx_n_s_nworkers, __pyx_n_s_i, __pyx_n_s_ws, __pyx_n_s_duration); if (unlikely(!__pyx_tuple__389)) __PYX_ERR(0, 6414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__389);
__Pyx_GIVEREF(__pyx_tuple__389);
/* … */
__pyx_t_2 = PyInt_FromSsize_t(((Py_ssize_t)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_2);
__pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_worker_index, __pyx_n_u_Py_ssize_t) < 0) __PYX_ERR(0, 6414, __pyx_L1_error)
__pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_212reevaluate_occupancy, 0, __pyx_n_s_Scheduler_reevaluate_occupancy, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__390)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_12);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_9, __pyx_t_2);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_reevaluate_occupancy, __pyx_t_9) < 0) __PYX_ERR(0, 6414, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_codeobj__390 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__389, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_reevaluate_occupancy, 6414, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__390)) __PYX_ERR(0, 6414, __pyx_L1_error)
6415: """Periodically reassess task duration time
6416:
6417: The expected duration of a task can change over time. Unfortunately we
6418: don't have a good constant-time way to propagate the effects of these
6419: changes out to the summaries that they affect, like the total expected
6420: runtime of each of the workers, or what tasks are stealable.
6421:
6422: In this coroutine we walk through all of the workers and re-align their
6423: estimates with the current state of tasks. We do this periodically
6424: rather than at every transition, and we only do it if the scheduler
6425: process isn't under load (using psutil.Process.cpu_percent()). This
6426: lets us avoid this fringe optimization when we have better things to
6427: think about.
6428: """
+6429: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+6430: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L8_try_end;
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L1_error;
__pyx_L7_try_return:;
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L0;
__pyx_L8_try_end:;
}
+6431: if self.status == Status.closed:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6431, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_Status); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6431, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_closed); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6431, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6431, __pyx_L3_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 6431, __pyx_L3_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_7) { /* … */ }
+6432: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L7_try_return;
6433:
+6434: last = time()
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_time); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6434, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_6); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6434, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_last = __pyx_t_5; __pyx_t_5 = 0;
+6435: next_time = timedelta(seconds=0.1)
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_timedelta); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6435, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6435, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_seconds, __pyx_float_0_1) < 0) __PYX_ERR(0, 6435, __pyx_L3_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6435, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_next_time = __pyx_t_1; __pyx_t_1 = 0;
6436:
+6437: if self.proc.cpu_percent() < 50:
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_proc); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6437, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_cpu_percent); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6437, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6437, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_int_50, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6437, __pyx_L3_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 6437, __pyx_L3_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_7) { /* … */ }
+6438: workers: list = list(parent._workers.values())
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent->_workers, __pyx_n_s_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6438, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6438, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PySequence_List(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6438, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_workers = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+6439: nworkers: Py_ssize_t = len(workers)
__pyx_t_8 = PyList_GET_SIZE(__pyx_v_workers); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6439, __pyx_L3_error) __pyx_v_nworkers = __pyx_t_8;
6440: i: Py_ssize_t
+6441: for i in range(nworkers):
__pyx_t_8 = __pyx_v_nworkers;
__pyx_t_9 = __pyx_t_8;
for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) {
__pyx_v_i = __pyx_t_10;
+6442: ws: WorkerState = workers[worker_index % nworkers]
if (unlikely(__pyx_v_nworkers == 0)) {
PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
__PYX_ERR(0, 6442, __pyx_L3_error)
}
__pyx_t_11 = __Pyx_mod_Py_ssize_t(__pyx_v_worker_index, __pyx_v_nworkers);
__pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_workers, __pyx_t_11, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6442, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 6442, __pyx_L3_error)
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1);
__pyx_t_1 = 0;
+6443: worker_index += 1
__pyx_v_worker_index = (__pyx_v_worker_index + 1);
+6444: try:
/*try:*/ {
+6445: if ws is None or not ws._processing:
__pyx_t_12 = (((PyObject *)__pyx_v_ws) == Py_None);
__pyx_t_13 = (__pyx_t_12 != 0);
if (!__pyx_t_13) {
} else {
__pyx_t_7 = __pyx_t_13;
goto __pyx_L19_bool_binop_done;
}
__pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_v_ws->_processing); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 6445, __pyx_L16_error)
__pyx_t_12 = ((!__pyx_t_13) != 0);
__pyx_t_7 = __pyx_t_12;
__pyx_L19_bool_binop_done:;
if (__pyx_t_7) {
/* … */
}
+6446: continue
goto __pyx_L13_continue;
+6447: _reevaluate_occupancy_worker(parent, ws)
__pyx_t_1 = __pyx_f_11distributed_9scheduler__reevaluate_occupancy_worker(__pyx_v_parent, __pyx_v_ws); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6447, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; }
6448: finally:
+6449: del ws # lose ref
/*finally:*/ {
/*normal exit:*/{
__Pyx_DECREF(((PyObject *)__pyx_v_ws));
__pyx_v_ws = NULL;
goto __pyx_L17;
}
__pyx_L16_error:;
/*exception exit:*/{
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22);
if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19) < 0)) __Pyx_ErrFetch(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19);
__Pyx_XGOTREF(__pyx_t_17);
__Pyx_XGOTREF(__pyx_t_18);
__Pyx_XGOTREF(__pyx_t_19);
__Pyx_XGOTREF(__pyx_t_20);
__Pyx_XGOTREF(__pyx_t_21);
__Pyx_XGOTREF(__pyx_t_22);
__pyx_t_14 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_16 = __pyx_filename;
{
__Pyx_DECREF(((PyObject *)__pyx_v_ws));
__pyx_v_ws = NULL;
}
if (PY_MAJOR_VERSION >= 3) {
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22);
}
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_ErrRestore(__pyx_t_17, __pyx_t_18, __pyx_t_19);
__pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0;
__pyx_lineno = __pyx_t_14; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_16;
goto __pyx_L3_error;
}
__pyx_L13_continue: {
__Pyx_DECREF(((PyObject *)__pyx_v_ws));
__pyx_v_ws = NULL;
goto __pyx_L11_continue;
}
__pyx_L17:;
}
6450:
+6451: duration = time() - last
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_time); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6451, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6451, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Subtract(__pyx_t_1, __pyx_v_last); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6451, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_duration, __pyx_t_5); __pyx_t_5 = 0;
+6452: if duration > 0.005: # 5ms since last release
__pyx_t_5 = PyObject_RichCompare(__pyx_v_duration, __pyx_float_0_005, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6452, __pyx_L3_error) __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 6452, __pyx_L3_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_7) { /* … */ } __pyx_L11_continue:; } __pyx_L12_break:;
+6453: next_time = timedelta(seconds=duration * 5) # 25ms gap
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_timedelta); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6453, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6453, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyNumber_Multiply(__pyx_v_duration, __pyx_int_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6453, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_seconds, __pyx_t_6) < 0) __PYX_ERR(0, 6453, __pyx_L3_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6453, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_next_time, __pyx_t_6); __pyx_t_6 = 0;
+6454: break
goto __pyx_L12_break;
6455:
+6456: self.loop.add_timeout(
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_loop); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6456, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_add_timeout); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6456, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* … */ __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6456, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_next_time); __Pyx_GIVEREF(__pyx_v_next_time); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_next_time); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6); __pyx_t_6 = 0; /* … */ __pyx_t_23 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 6456, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+6457: next_time, self.reevaluate_occupancy, worker_index=worker_index
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reevaluate_occupancy); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6457, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); /* … */ __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6457, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_23 = PyInt_FromSsize_t(__pyx_v_worker_index); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 6457, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_23); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_worker_index, __pyx_t_23) < 0) __PYX_ERR(0, 6457, __pyx_L3_error) __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
6458: )
6459:
+6460: except Exception:
__pyx_t_15 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_15) { __Pyx_AddTraceback("distributed.scheduler.Scheduler.reevaluate_occupancy", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_23, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(0, 6460, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_5);
+6461: logger.error("Error in reevaluate occupancy", exc_info=True)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_logger); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6461, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_error); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 6461, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_24); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6461, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_exc_info, Py_True) < 0) __PYX_ERR(0, 6461, __pyx_L5_except_error) __pyx_t_25 = __Pyx_PyObject_Call(__pyx_t_24, __pyx_tuple__93, __pyx_t_1); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 6461, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; /* … */ __pyx_tuple__93 = PyTuple_Pack(1, __pyx_kp_u_Error_in_reevaluate_occupancy); if (unlikely(!__pyx_tuple__93)) __PYX_ERR(0, 6461, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__93); __Pyx_GIVEREF(__pyx_tuple__93);
+6462: raise
__Pyx_GIVEREF(__pyx_t_23); __Pyx_GIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ErrRestoreWithState(__pyx_t_23, __pyx_t_6, __pyx_t_5); __pyx_t_23 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __PYX_ERR(0, 6462, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:;
6463:
+6464: async def check_worker_ttl(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_214check_worker_ttl(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_214check_worker_ttl = {"check_worker_ttl", (PyCFunction)__pyx_pw_11distributed_9scheduler_9Scheduler_214check_worker_ttl, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_214check_worker_ttl(PyObject *__pyx_self, PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("check_worker_ttl (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_213check_worker_ttl(__pyx_self, ((PyObject *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_213check_worker_ttl(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_54_check_worker_ttl *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("check_worker_ttl", 0);
__pyx_cur_scope = (struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_54_check_worker_ttl *)__pyx_tp_new_11distributed_9scheduler___pyx_scope_struct_54_check_worker_ttl(__pyx_ptype_11distributed_9scheduler___pyx_scope_struct_54_check_worker_ttl, __pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_54_check_worker_ttl *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 6464, __pyx_L1_error)
} else {
__Pyx_GOTREF(__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_self = __pyx_v_self;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
{
__pyx_CoroutineObject *gen = __Pyx_Coroutine_New((__pyx_coroutine_body_t) __pyx_gb_11distributed_9scheduler_9Scheduler_215generator24, __pyx_codeobj__94, (PyObject *) __pyx_cur_scope, __pyx_n_s_check_worker_ttl, __pyx_n_s_Scheduler_check_worker_ttl, __pyx_n_s_distributed_scheduler); if (unlikely(!gen)) __PYX_ERR(0, 6464, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.check_worker_ttl", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF(((PyObject *)__pyx_cur_scope));
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_11distributed_9scheduler_9Scheduler_215generator24(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("check_worker_ttl", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 6464, __pyx_L1_error)
/* … */
/* function exit code */
PyErr_SetNone(PyExc_StopIteration);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_AddTraceback("check_worker_ttl", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L0:;
__Pyx_XDECREF(__pyx_r); __pyx_r = 0;
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__391 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_parent, __pyx_n_s_ws, __pyx_n_s_now); if (unlikely(!__pyx_tuple__391)) __PYX_ERR(0, 6464, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__391);
__Pyx_GIVEREF(__pyx_tuple__391);
/* … */
__pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_214check_worker_ttl, 0, __pyx_n_s_Scheduler_check_worker_ttl, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__94)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6464, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_check_worker_ttl, __pyx_t_9) < 0) __PYX_ERR(0, 6464, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_codeobj__94 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__391, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_check_worker_ttl, 6464, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__94)) __PYX_ERR(0, 6464, __pyx_L1_error)
/* … */
struct __pyx_obj_11distributed_9scheduler___pyx_scope_struct_54_check_worker_ttl {
PyObject_HEAD
PyObject *__pyx_v_now;
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent;
PyObject *__pyx_v_self;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
Py_ssize_t __pyx_t_2;
int __pyx_t_3;
};
+6465: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_cur_scope->__pyx_v_self; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1); __pyx_t_1 = 0;
6466: ws: WorkerState
+6467: now = time()
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_time); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_now = __pyx_t_1; __pyx_t_1 = 0;
+6468: for ws in parent._workers_dv.values():
__pyx_t_4 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
__PYX_ERR(0, 6468, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_parent->_workers_dv, 1, __pyx_n_s_values, (&__pyx_t_5), (&__pyx_t_6)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6468, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_2;
__pyx_t_2 = 0;
while (1) {
__pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_5, &__pyx_t_4, NULL, &__pyx_t_2, NULL, __pyx_t_6);
if (unlikely(__pyx_t_7 == 0)) break;
if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 6468, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 6468, __pyx_L1_error)
__Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_ws));
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_2));
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
+6469: if (ws._last_seen < now - self.worker_ttl) and (
__pyx_t_2 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_ws->_last_seen); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_worker_ttl); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = PyNumber_Subtract(__pyx_cur_scope->__pyx_v_now, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_9, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6469, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 6469, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_10) { } else { __pyx_t_8 = __pyx_t_10; goto __pyx_L7_bool_binop_done; } /* … */ if (__pyx_t_8) { /* … */ } } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
+6470: ws._last_seen < now - 10 * heartbeat_interval(len(parent._workers_dv))
__pyx_t_3 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_ws->_last_seen); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_heartbeat_interval_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_11 = __pyx_cur_scope->__pyx_v_parent->_workers_dv; __Pyx_INCREF(__pyx_t_11); if (unlikely(__pyx_t_11 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 6470, __pyx_L1_error) } __pyx_t_12 = PyDict_Size(__pyx_t_11); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6470, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyInt_FromSsize_t(__pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_9 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_13, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_11); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Multiply(__pyx_int_10, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_Subtract(__pyx_cur_scope->__pyx_v_now, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_t_3, __pyx_t_9, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6470, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 6470, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_8 = __pyx_t_10; __pyx_L7_bool_binop_done:;
6471: ):
+6472: logger.warning(
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_logger); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_warning); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
6473: "Worker failed to heartbeat within %s seconds. Closing: %s",
+6474: self.worker_ttl,
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_worker_ttl); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9);
+6475: ws,
__pyx_t_11 = NULL;
__pyx_t_7 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_11 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_11)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_11);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_7 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[4] = {__pyx_t_11, __pyx_kp_u_Worker_failed_to_heartbeat_withi, __pyx_t_9, ((PyObject *)__pyx_cur_scope->__pyx_v_ws)};
__pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6472, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[4] = {__pyx_t_11, __pyx_kp_u_Worker_failed_to_heartbeat_withi, __pyx_t_9, ((PyObject *)__pyx_cur_scope->__pyx_v_ws)};
__pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6472, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
} else
#endif
{
__pyx_t_13 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 6472, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (__pyx_t_11) {
__Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_11); __pyx_t_11 = NULL;
}
__Pyx_INCREF(__pyx_kp_u_Worker_failed_to_heartbeat_withi);
__Pyx_GIVEREF(__pyx_kp_u_Worker_failed_to_heartbeat_withi);
PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_7, __pyx_kp_u_Worker_failed_to_heartbeat_withi);
__Pyx_GIVEREF(__pyx_t_9);
PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_7, __pyx_t_9);
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_ws));
__Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_ws));
PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_7, ((PyObject *)__pyx_cur_scope->__pyx_v_ws));
__pyx_t_9 = 0;
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_13, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6472, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6476: )
+6477: await self.remove_worker(address=ws._address)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_remove_worker); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_address, __pyx_cur_scope->__pyx_v_ws->_address) < 0) __PYX_ERR(0, 6477, __pyx_L1_error) __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 6477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __Pyx_Coroutine_Yield_From(__pyx_generator, __pyx_t_13); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XGOTREF(__pyx_r); if (likely(__pyx_r)) { __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __pyx_cur_scope->__pyx_t_1 = __pyx_t_4; __pyx_cur_scope->__pyx_t_2 = __pyx_t_5; __pyx_cur_scope->__pyx_t_3 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, awaiting value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L9_resume_from_await:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_4 = __pyx_cur_scope->__pyx_t_1; __pyx_t_5 = __pyx_cur_scope->__pyx_t_2; __pyx_t_6 = __pyx_cur_scope->__pyx_t_3; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 6477, __pyx_L1_error) } else { PyObject* exc_type = __Pyx_PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || (exc_type != PyExc_GeneratorExit && __Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))) PyErr_Clear(); else __PYX_ERR(0, 6477, __pyx_L1_error) } }
6478:
+6479: def check_idle(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_217check_idle(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_217check_idle = {"check_idle", (PyCFunction)__pyx_pw_11distributed_9scheduler_9Scheduler_217check_idle, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_217check_idle(PyObject *__pyx_self, PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("check_idle (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_216check_idle(__pyx_self, ((PyObject *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_216check_idle(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_10genexpr145__pyx_v_ws = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("check_idle", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.check_idle", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr145__pyx_v_ws);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__392 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_parent, __pyx_n_s_ws, __pyx_n_s_ws); if (unlikely(!__pyx_tuple__392)) __PYX_ERR(0, 6479, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__392);
__Pyx_GIVEREF(__pyx_tuple__392);
/* … */
__pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_217check_idle, 0, __pyx_n_s_Scheduler_check_idle, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__393)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6479, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_check_idle, __pyx_t_9) < 0) __PYX_ERR(0, 6479, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_codeobj__393 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__392, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_check_idle, 6479, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__393)) __PYX_ERR(0, 6479, __pyx_L1_error)
+6480: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
6481: ws: WorkerState
+6482: if (
if (__pyx_t_2) {
/* … */
}
+6483: any([ws._processing for ws in parent._workers_dv.values()])
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6483, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = 0;
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
__PYX_ERR(0, 6483, __pyx_L8_error)
}
__pyx_t_7 = __Pyx_dict_iterator(__pyx_v_parent->_workers_dv, 1, __pyx_n_s_values, (&__pyx_t_5), (&__pyx_t_6)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6483, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_3);
__pyx_t_3 = __pyx_t_7;
__pyx_t_7 = 0;
while (1) {
__pyx_t_8 = __Pyx_dict_iter_next(__pyx_t_3, __pyx_t_5, &__pyx_t_4, NULL, &__pyx_t_7, NULL, __pyx_t_6);
if (unlikely(__pyx_t_8 == 0)) break;
if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(0, 6483, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_7);
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 6483, __pyx_L8_error)
__Pyx_XDECREF_SET(__pyx_10genexpr145__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_7));
__pyx_t_7 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_10genexpr145__pyx_v_ws->_processing))) __PYX_ERR(0, 6483, __pyx_L8_error)
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr145__pyx_v_ws); __pyx_10genexpr145__pyx_v_ws = 0;
goto __pyx_L11_exit_scope;
__pyx_L8_error:;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr145__pyx_v_ws); __pyx_10genexpr145__pyx_v_ws = 0;
goto __pyx_L1_error;
__pyx_L11_exit_scope:;
} /* exit inner scope */
__pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_any, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6483, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 6483, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (!__pyx_t_9) {
} else {
__pyx_t_2 = __pyx_t_9;
goto __pyx_L4_bool_binop_done;
}
+6484: or parent._unrunnable
__pyx_t_9 = (__pyx_v_parent->_unrunnable != Py_None)&&(PySet_GET_SIZE(__pyx_v_parent->_unrunnable) != 0);
__pyx_t_2 = __pyx_t_9;
__pyx_L4_bool_binop_done:;
6485: ):
+6486: self.idle_since = None
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_idle_since, Py_None) < 0) __PYX_ERR(0, 6486, __pyx_L1_error)
+6487: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
+6488: elif not self.idle_since:
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_idle_since); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6488, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_9 = ((!__pyx_t_2) != 0); if (__pyx_t_9) { /* … */ }
+6489: self.idle_since = time()
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_time); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_idle_since, __pyx_t_3) < 0) __PYX_ERR(0, 6489, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
6490:
+6491: if time() > self.idle_since + self.idle_timeout:
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_time); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_1); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_idle_since); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_idle_timeout); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = PyNumber_Add(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 6491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, __pyx_t_10, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6491, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 6491, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_9) { /* … */ }
+6492: logger.info(
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_logger); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 6492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
6493: "Scheduler closing after being idle for %s",
+6494: format_time(self.idle_timeout),
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_format_time); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_idle_timeout); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_12, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_11); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 6494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_6 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_kp_u_Scheduler_closing_after_being_id, __pyx_t_10}; __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6492, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_kp_u_Scheduler_closing_after_being_id, __pyx_t_10}; __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6492, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif { __pyx_t_11 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_kp_u_Scheduler_closing_after_being_id); __Pyx_GIVEREF(__pyx_kp_u_Scheduler_closing_after_being_id); PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_6, __pyx_kp_u_Scheduler_closing_after_being_id); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_6, __pyx_t_10); __pyx_t_10 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_11, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
6495: )
+6496: self.loop.add_callback(self.close)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_loop); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_add_callback); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_close); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_7 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_3); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
6497:
+6498: def adaptive_target(self, comm=None, target_duration=None):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_219adaptive_target(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_9Scheduler_218adaptive_target[] = "Desired number of workers based on the current workload\n\n This looks at the current running tasks and memory use, and returns a\n number of desired workers. This is often used by adaptive scheduling.\n\n Parameters\n ----------\n target_duration : str\n A desired duration of time for computations to take. This affects\n how rapidly the scheduler will ask to scale.\n\n See Also\n --------\n distributed.deploy.Adaptive\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_9Scheduler_219adaptive_target = {"adaptive_target", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_9Scheduler_219adaptive_target, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_9Scheduler_218adaptive_target};
static PyObject *__pyx_pw_11distributed_9scheduler_9Scheduler_219adaptive_target(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_comm = 0;
PyObject *__pyx_v_target_duration = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("adaptive_target (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_comm,&__pyx_n_s_target_duration,0};
PyObject* values[3] = {0,0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_target_duration);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "adaptive_target") < 0)) __PYX_ERR(0, 6498, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_comm = values[1];
__pyx_v_target_duration = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("adaptive_target", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6498, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.Scheduler.adaptive_target", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_9Scheduler_218adaptive_target(__pyx_self, __pyx_v_self, __pyx_v_comm, __pyx_v_target_duration);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_9Scheduler_218adaptive_target(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_comm, PyObject *__pyx_v_target_duration) {
struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_parent = 0;
PyObject *__pyx_v_cpu = NULL;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_v_tasks_processing = NULL;
PyObject *__pyx_v_limit_bytes = NULL;
PyObject *__pyx_v_worker_bytes = NULL;
PyObject *__pyx_v_limit = NULL;
PyObject *__pyx_v_total = NULL;
Py_ssize_t __pyx_v_memory;
PyObject *__pyx_v_target = NULL;
PyObject *__pyx_v_to_close = NULL;
PyObject *__pyx_10genexpr146__pyx_v_addr = NULL;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_10genexpr146__pyx_v_ws = NULL;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_10genexpr147__pyx_v_ws = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("adaptive_target", 0);
__Pyx_INCREF(__pyx_v_target_duration);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_AddTraceback("distributed.scheduler.Scheduler.adaptive_target", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_parent);
__Pyx_XDECREF(__pyx_v_cpu);
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF(__pyx_v_tasks_processing);
__Pyx_XDECREF(__pyx_v_limit_bytes);
__Pyx_XDECREF(__pyx_v_worker_bytes);
__Pyx_XDECREF(__pyx_v_limit);
__Pyx_XDECREF(__pyx_v_total);
__Pyx_XDECREF(__pyx_v_target);
__Pyx_XDECREF(__pyx_v_to_close);
__Pyx_XDECREF(__pyx_10genexpr146__pyx_v_addr);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr146__pyx_v_ws);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr147__pyx_v_ws);
__Pyx_XDECREF(__pyx_v_target_duration);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__394 = PyTuple_Pack(17, __pyx_n_s_self, __pyx_n_s_comm, __pyx_n_s_target_duration, __pyx_n_s_parent, __pyx_n_s_cpu, __pyx_n_s_ws, __pyx_n_s_tasks_processing, __pyx_n_s_limit_bytes, __pyx_n_s_worker_bytes, __pyx_n_s_limit, __pyx_n_s_total, __pyx_n_s_memory_2, __pyx_n_s_target, __pyx_n_s_to_close, __pyx_n_s_addr, __pyx_n_s_ws, __pyx_n_s_ws); if (unlikely(!__pyx_tuple__394)) __PYX_ERR(0, 6498, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__394);
__Pyx_GIVEREF(__pyx_tuple__394);
__pyx_codeobj__395 = (PyObject*)__Pyx_PyCode_New(3, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__394, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_adaptive_target, 6498, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__395)) __PYX_ERR(0, 6498, __pyx_L1_error)
/* … */
__pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_9Scheduler_219adaptive_target, 0, __pyx_n_s_Scheduler_adaptive_target, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__395)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6498, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_tuple__396);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_adaptive_target, __pyx_t_9) < 0) __PYX_ERR(0, 6498, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_tuple__396 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__396)) __PYX_ERR(0, 6498, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__396);
__Pyx_GIVEREF(__pyx_tuple__396);
6499: """Desired number of workers based on the current workload
6500:
6501: This looks at the current running tasks and memory use, and returns a
6502: number of desired workers. This is often used by adaptive scheduling.
6503:
6504: Parameters
6505: ----------
6506: target_duration : str
6507: A desired duration of time for computations to take. This affects
6508: how rapidly the scheduler will ask to scale.
6509:
6510: See Also
6511: --------
6512: distributed.deploy.Adaptive
6513: """
+6514: parent: SchedulerState = cast(SchedulerState, self)
__pyx_t_1 = __pyx_v_self;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_parent = ((struct __pyx_obj_11distributed_9scheduler_SchedulerState *)__pyx_t_1);
__pyx_t_1 = 0;
+6515: if target_duration is None:
__pyx_t_2 = (__pyx_v_target_duration == Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
}
+6516: target_duration = dask.config.get("distributed.adaptive.target-duration")
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_dask); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_config); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_get); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_kp_u_distributed_adaptive_target_dura) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_u_distributed_adaptive_target_dura); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_target_duration, __pyx_t_1); __pyx_t_1 = 0;
+6517: target_duration = parse_timedelta(target_duration)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_parse_timedelta); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_target_duration) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_target_duration); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_target_duration, __pyx_t_1); __pyx_t_1 = 0;
6518:
6519: # CPU
+6520: cpu = math.ceil(
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_math); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_ceil); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+6521: parent._total_occupancy / target_duration
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_parent->_total_occupancy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_v_target_duration); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_cpu = __pyx_t_1; __pyx_t_1 = 0;
6522: ) # TODO: threads per worker
6523:
6524: # Avoid a few long tasks from asking for many cores
6525: ws: WorkerState
+6526: tasks_processing = 0
__Pyx_INCREF(__pyx_int_0);
__pyx_v_tasks_processing = __pyx_int_0;
+6527: for ws in parent._workers_dv.values():
__pyx_t_7 = 0;
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
__PYX_ERR(0, 6527, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_dict_iterator(__pyx_v_parent->_workers_dv, 1, __pyx_n_s_values, (&__pyx_t_8), (&__pyx_t_9)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6527, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_5;
__pyx_t_5 = 0;
while (1) {
__pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_8, &__pyx_t_7, NULL, &__pyx_t_5, NULL, __pyx_t_9);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 6527, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 6527, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_5));
__pyx_t_5 = 0;
+6528: tasks_processing += len(ws._processing)
__pyx_t_5 = __pyx_v_ws->_processing;
__Pyx_INCREF(__pyx_t_5);
if (unlikely(__pyx_t_5 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 6528, __pyx_L1_error)
}
__pyx_t_11 = PyDict_Size(__pyx_t_5); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6528, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyInt_FromSsize_t(__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6528, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_tasks_processing, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6528, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF_SET(__pyx_v_tasks_processing, __pyx_t_6);
__pyx_t_6 = 0;
6529:
+6530: if tasks_processing > cpu:
__pyx_t_6 = PyObject_RichCompare(__pyx_v_tasks_processing, __pyx_v_cpu, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6530, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6530, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_3) { /* … */ } }
+6531: break
goto __pyx_L5_break;
6532: else:
+6533: cpu = min(tasks_processing, cpu)
/*else*/ {
__Pyx_INCREF(__pyx_v_cpu);
__pyx_t_6 = __pyx_v_cpu;
__Pyx_INCREF(__pyx_v_tasks_processing);
__pyx_t_5 = __pyx_v_tasks_processing;
__pyx_t_12 = PyObject_RichCompare(__pyx_t_6, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6533, __pyx_L1_error)
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6533, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (__pyx_t_3) {
__Pyx_INCREF(__pyx_t_6);
__pyx_t_4 = __pyx_t_6;
} else {
__Pyx_INCREF(__pyx_t_5);
__pyx_t_4 = __pyx_t_5;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __pyx_t_4;
__Pyx_INCREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF_SET(__pyx_v_cpu, __pyx_t_6);
__pyx_t_6 = 0;
}
__pyx_L5_break:;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6534:
+6535: if parent._unrunnable and not parent._workers_dv:
__pyx_t_2 = (__pyx_v_parent->_unrunnable != Py_None)&&(PySet_GET_SIZE(__pyx_v_parent->_unrunnable) != 0); if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L8_bool_binop_done; } __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_parent->_workers_dv); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6535, __pyx_L1_error) __pyx_t_13 = ((!__pyx_t_2) != 0); __pyx_t_3 = __pyx_t_13; __pyx_L8_bool_binop_done:; if (__pyx_t_3) { /* … */ }
+6536: cpu = max(1, cpu)
__Pyx_INCREF(__pyx_v_cpu); __pyx_t_1 = __pyx_v_cpu; __pyx_t_14 = 1; __pyx_t_4 = __Pyx_PyInt_From_long(__pyx_t_14); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6536, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6536, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_3) { __Pyx_INCREF(__pyx_t_1); __pyx_t_6 = __pyx_t_1; } else { __pyx_t_5 = __Pyx_PyInt_From_long(__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __pyx_t_5; __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_t_6; __Pyx_INCREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF_SET(__pyx_v_cpu, __pyx_t_1); __pyx_t_1 = 0;
6537:
6538: # Memory
+6539: limit_bytes = {
{ /* enter inner scope */
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6539, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_1);
+6540: addr: ws._memory_limit for addr, ws in parent._workers_dv.items()
__pyx_t_8 = 0;
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
__PYX_ERR(0, 6540, __pyx_L12_error)
}
__pyx_t_5 = __Pyx_dict_iterator(__pyx_v_parent->_workers_dv, 1, __pyx_n_s_items, (&__pyx_t_7), (&__pyx_t_9)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6540, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__pyx_t_6 = __pyx_t_5;
__pyx_t_5 = 0;
while (1) {
__pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_8, &__pyx_t_5, &__pyx_t_4, NULL, __pyx_t_9);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 6540, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 6540, __pyx_L12_error)
__Pyx_XDECREF_SET(__pyx_10genexpr146__pyx_v_addr, __pyx_t_5);
__pyx_t_5 = 0;
__Pyx_XDECREF_SET(__pyx_10genexpr146__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_4));
__pyx_t_4 = 0;
__pyx_t_4 = PyInt_FromSsize_t(__pyx_10genexpr146__pyx_v_ws->_memory_limit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6540, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_10genexpr146__pyx_v_addr, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 6540, __pyx_L12_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_10genexpr146__pyx_v_addr); __pyx_10genexpr146__pyx_v_addr = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr146__pyx_v_ws); __pyx_10genexpr146__pyx_v_ws = 0;
goto __pyx_L15_exit_scope;
__pyx_L12_error:;
__Pyx_XDECREF(__pyx_10genexpr146__pyx_v_addr); __pyx_10genexpr146__pyx_v_addr = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr146__pyx_v_ws); __pyx_10genexpr146__pyx_v_ws = 0;
goto __pyx_L1_error;
__pyx_L15_exit_scope:;
} /* exit inner scope */
__pyx_v_limit_bytes = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
6541: }
+6542: worker_bytes = [ws._nbytes for ws in parent._workers_dv.values()]
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6542, __pyx_L18_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = 0;
if (unlikely(__pyx_v_parent->_workers_dv == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
__PYX_ERR(0, 6542, __pyx_L18_error)
}
__pyx_t_4 = __Pyx_dict_iterator(__pyx_v_parent->_workers_dv, 1, __pyx_n_s_values, (&__pyx_t_8), (&__pyx_t_9)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6542, __pyx_L18_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__pyx_t_6 = __pyx_t_4;
__pyx_t_4 = 0;
while (1) {
__pyx_t_10 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_8, &__pyx_t_7, NULL, &__pyx_t_4, NULL, __pyx_t_9);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 6542, __pyx_L18_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 6542, __pyx_L18_error)
__Pyx_XDECREF_SET(__pyx_10genexpr147__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_4));
__pyx_t_4 = 0;
__pyx_t_4 = PyInt_FromSsize_t(__pyx_10genexpr147__pyx_v_ws->_nbytes); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6542, __pyx_L18_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 6542, __pyx_L18_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr147__pyx_v_ws); __pyx_10genexpr147__pyx_v_ws = 0;
goto __pyx_L21_exit_scope;
__pyx_L18_error:;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr147__pyx_v_ws); __pyx_10genexpr147__pyx_v_ws = 0;
goto __pyx_L1_error;
__pyx_L21_exit_scope:;
} /* exit inner scope */
__pyx_v_worker_bytes = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+6543: limit = sum(limit_bytes.values())
__pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_limit_bytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_limit = __pyx_t_6; __pyx_t_6 = 0;
+6544: total = sum(worker_bytes)
__pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_v_worker_bytes); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_total = __pyx_t_6; __pyx_t_6 = 0;
+6545: if total > 0.6 * limit:
__pyx_t_6 = PyNumber_Multiply(__pyx_float_0_6, __pyx_v_limit); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = PyObject_RichCompare(__pyx_v_total, __pyx_t_6, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6545, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6545, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L22; }
+6546: memory = 2 * len(parent._workers_dv)
__pyx_t_1 = __pyx_v_parent->_workers_dv;
__Pyx_INCREF(__pyx_t_1);
if (unlikely(__pyx_t_1 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 6546, __pyx_L1_error)
}
__pyx_t_8 = PyDict_Size(__pyx_t_1); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6546, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_memory = (2 * __pyx_t_8);
6547: else:
+6548: memory = 0
/*else*/ {
__pyx_v_memory = 0;
}
__pyx_L22:;
6549:
+6550: target = max(memory, cpu)
__Pyx_INCREF(__pyx_v_cpu); __pyx_t_1 = __pyx_v_cpu; __pyx_t_8 = __pyx_v_memory; __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6550, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6550, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_3) { __Pyx_INCREF(__pyx_t_1); __pyx_t_6 = __pyx_t_1; } else { __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __pyx_t_5; __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_t_6; __Pyx_INCREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_target = __pyx_t_1; __pyx_t_1 = 0;
+6551: if target >= len(parent._workers_dv):
__pyx_t_1 = __pyx_v_parent->_workers_dv; __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 6551, __pyx_L1_error) } __pyx_t_8 = PyDict_Size(__pyx_t_1); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6551, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyObject_RichCompare(__pyx_v_target, __pyx_t_1, Py_GE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6551, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6551, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_3) { /* … */ }
+6552: return target
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_target); __pyx_r = __pyx_v_target; goto __pyx_L0;
6553: else: # Scale down?
+6554: to_close = self.workers_to_close()
/*else*/ {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_workers_to_close); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6554, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_1, function);
}
}
__pyx_t_6 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6554, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_to_close = __pyx_t_6;
__pyx_t_6 = 0;
+6555: return len(parent._workers_dv) - len(to_close)
__Pyx_XDECREF(__pyx_r); __pyx_t_6 = __pyx_v_parent->_workers_dv; __Pyx_INCREF(__pyx_t_6); if (unlikely(__pyx_t_6 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 6555, __pyx_L1_error) } __pyx_t_8 = PyDict_Size(__pyx_t_6); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6555, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = PyObject_Length(__pyx_v_to_close); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6555, __pyx_L1_error) __pyx_t_6 = PyInt_FromSsize_t((__pyx_t_8 - __pyx_t_7)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; }
6556:
6557:
6558: @cfunc
6559: @exceptval(check=False)
+6560: def _remove_from_processing(state: SchedulerState, ts: TaskState) -> str:
static PyObject *__pyx_f_11distributed_9scheduler__remove_from_processing(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_state, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts) {
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_v_w = 0;
PyObject *__pyx_v_duration = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_remove_from_processing", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("distributed.scheduler._remove_from_processing", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF(__pyx_v_w);
__Pyx_XDECREF(__pyx_v_duration);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
6561: """
6562: Remove *ts* from the set of processing tasks.
6563: """
+6564: ws: WorkerState = ts._processing_on
__pyx_t_1 = ((PyObject *)__pyx_v_ts->_processing_on);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1);
__pyx_t_1 = 0;
+6565: ts._processing_on = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_ts->_processing_on); __Pyx_DECREF(((PyObject *)__pyx_v_ts->_processing_on)); __pyx_v_ts->_processing_on = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)Py_None);
+6566: w: str = ws._address
__pyx_t_1 = __pyx_v_ws->_address;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_w = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+6567: if w in state._workers_dv: # may have been removed
if (unlikely(__pyx_v_state->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 6567, __pyx_L1_error)
}
__pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_w, __pyx_v_state->_workers_dv, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6567, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
}
+6568: duration = ws._processing.pop(ts)
if (unlikely(__pyx_v_ws->_processing == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "pop");
__PYX_ERR(0, 6568, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_Pop(__pyx_v_ws->_processing, ((PyObject *)__pyx_v_ts), ((PyObject *)NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6568, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_duration = __pyx_t_1;
__pyx_t_1 = 0;
+6569: if not ws._processing:
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_ws->_processing); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6569, __pyx_L1_error) __pyx_t_2 = ((!__pyx_t_3) != 0); if (__pyx_t_2) { /* … */ goto __pyx_L4; }
+6570: state._total_occupancy -= ws._occupancy
__pyx_v_state->_total_occupancy = (__pyx_v_state->_total_occupancy - __pyx_v_ws->_occupancy);
+6571: ws._occupancy = 0
__pyx_v_ws->_occupancy = 0.0;
6572: else:
+6573: state._total_occupancy -= duration
/*else*/ {
__pyx_t_1 = PyFloat_FromDouble(__pyx_v_state->_total_occupancy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6573, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = PyNumber_InPlaceSubtract(__pyx_t_1, __pyx_v_duration); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6573, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6573, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_v_state->_total_occupancy = __pyx_t_5;
+6574: ws._occupancy -= duration
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_ws->_occupancy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyNumber_InPlaceSubtract(__pyx_t_4, __pyx_v_duration); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6574, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_ws->_occupancy = __pyx_t_5; } __pyx_L4:;
+6575: state.check_idle_saturated(ws)
__pyx_t_1 = ((struct __pyx_vtabstruct_11distributed_9scheduler_SchedulerState *)__pyx_v_state->__pyx_vtab)->check_idle_saturated(__pyx_v_state, __pyx_v_ws, 0, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+6576: state.release_resources(ts, ws)
__pyx_t_1 = ((struct __pyx_vtabstruct_11distributed_9scheduler_SchedulerState *)__pyx_v_state->__pyx_vtab)->release_resources(__pyx_v_state, __pyx_v_ts, __pyx_v_ws, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+6577: return w
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_w); __pyx_r = __pyx_v_w; goto __pyx_L0;
6578: else:
+6579: return None
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__pyx_r = ((PyObject*)Py_None); __Pyx_INCREF(Py_None);
goto __pyx_L0;
}
6580:
6581:
6582: @cfunc
6583: @exceptval(check=False)
+6584: def _add_to_memory(
static PyObject *__pyx_f_11distributed_9scheduler__add_to_memory(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_state, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts, struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws, PyObject *__pyx_v_recommendations, PyObject *__pyx_v_client_msgs, struct __pyx_opt_args_11distributed_9scheduler__add_to_memory *__pyx_optional_args) {
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_AddTraceback("distributed.scheduler._add_to_memory", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_deps);
__Pyx_XDECREF((PyObject *)__pyx_v_dts);
__Pyx_XDECREF(__pyx_v_s);
__Pyx_XDECREF(__pyx_v_report_msg);
__Pyx_XDECREF((PyObject *)__pyx_v_cs);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
struct __pyx_opt_args_11distributed_9scheduler__add_to_memory {
int __pyx_n;
PyObject *type;
PyObject *typename;
};
6585: state: SchedulerState,
6586: ts: TaskState,
6587: ws: WorkerState,
6588: recommendations: dict,
6589: client_msgs: dict,
+6590: type=None,
PyObject *__pyx_v_type = ((PyObject *)Py_None);
+6591: typename: str = None,
PyObject *__pyx_v_typename = ((PyObject*)Py_None); PyObject *__pyx_v_deps = 0; struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_dts = 0; PyObject *__pyx_v_s = 0; PyObject *__pyx_v_report_msg = 0; struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_cs = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_add_to_memory", 0); if (__pyx_optional_args) { if (__pyx_optional_args->__pyx_n > 0) { __pyx_v_type = __pyx_optional_args->type; if (__pyx_optional_args->__pyx_n > 1) { __pyx_v_typename = __pyx_optional_args->typename; } } }
6592: ):
6593: """
6594: Add *ts* to the set of in-memory tasks.
6595: """
+6596: if state._validate:
__pyx_t_1 = (__pyx_v_state->_validate != 0);
if (__pyx_t_1) {
/* … */
}
+6597: assert ts not in ws._has_what
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_ws->_has_what == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 6597, __pyx_L1_error)
}
__pyx_t_1 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_ws->_has_what, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 6597, __pyx_L1_error)
if (unlikely(!(__pyx_t_1 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 6597, __pyx_L1_error)
}
}
#endif
6598:
+6599: ts._who_has.add(ws)
if (unlikely(__pyx_v_ts->_who_has == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 6599, __pyx_L1_error)
}
__pyx_t_2 = PySet_Add(__pyx_v_ts->_who_has, ((PyObject *)__pyx_v_ws)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 6599, __pyx_L1_error)
+6600: ws._has_what.add(ts)
if (unlikely(__pyx_v_ws->_has_what == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 6600, __pyx_L1_error)
}
__pyx_t_2 = PySet_Add(__pyx_v_ws->_has_what, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 6600, __pyx_L1_error)
+6601: ws._nbytes += ts.get_nbytes()
__pyx_t_3 = __pyx_f_11distributed_9scheduler_9TaskState_get_nbytes(__pyx_v_ts, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 6601, __pyx_L1_error)
__pyx_v_ws->_nbytes = (__pyx_v_ws->_nbytes + __pyx_t_3);
6602:
+6603: deps: list = list(ts._dependents)
__pyx_t_4 = PySequence_List(__pyx_v_ts->_dependents); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_deps = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+6604: if len(deps) > 1:
__pyx_t_3 = PyList_GET_SIZE(__pyx_v_deps); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6604, __pyx_L1_error) __pyx_t_1 = ((__pyx_t_3 > 1) != 0); if (__pyx_t_1) { /* … */ }
+6605: deps.sort(key=operator.attrgetter("priority"), reverse=True)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_deps, __pyx_n_s_sort); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_operator); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_attrgetter); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_7, __pyx_n_u_priority) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_n_u_priority); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_key, __pyx_t_6) < 0) __PYX_ERR(0, 6605, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_reverse, Py_True) < 0) __PYX_ERR(0, 6605, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_empty_tuple, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6606:
6607: dts: TaskState
6608: s: set
+6609: for dts in deps:
__pyx_t_6 = __pyx_v_deps; __Pyx_INCREF(__pyx_t_6); __pyx_t_3 = 0; for (;;) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 6609, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 6609, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_5)); __pyx_t_5 = 0; /* … */ } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+6610: s = dts._waiting_on
__pyx_t_5 = __pyx_v_dts->_waiting_on;
__Pyx_INCREF(__pyx_t_5);
__Pyx_XDECREF_SET(__pyx_v_s, ((PyObject*)__pyx_t_5));
__pyx_t_5 = 0;
+6611: if ts in s:
if (unlikely(__pyx_v_s == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 6611, __pyx_L1_error)
}
__pyx_t_1 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_s, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 6611, __pyx_L1_error)
__pyx_t_9 = (__pyx_t_1 != 0);
if (__pyx_t_9) {
/* … */
}
+6612: s.discard(ts)
if (unlikely(__pyx_v_s == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "discard");
__PYX_ERR(0, 6612, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PySet_Discard(__pyx_v_s, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 6612, __pyx_L1_error)
+6613: if not s: # new task ready to run
__pyx_t_9 = (__pyx_v_s != Py_None)&&(PySet_GET_SIZE(__pyx_v_s) != 0);
__pyx_t_1 = ((!__pyx_t_9) != 0);
if (__pyx_t_1) {
/* … */
}
+6614: recommendations[dts._key] = "processing"
if (unlikely(__pyx_v_recommendations == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6614, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_dts->_key, __pyx_n_u_processing_2) < 0)) __PYX_ERR(0, 6614, __pyx_L1_error)
6615:
+6616: for dts in ts._dependencies:
__pyx_t_3 = 0; __pyx_t_5 = __Pyx_set_iterator(__pyx_v_ts->_dependencies, 1, (&__pyx_t_10), (&__pyx_t_11)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = __pyx_t_5; __pyx_t_5 = 0; while (1) { __pyx_t_12 = __Pyx_set_iter_next(__pyx_t_6, __pyx_t_10, &__pyx_t_3, &__pyx_t_5, __pyx_t_11); if (unlikely(__pyx_t_12 == 0)) break; if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 6616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 6616, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_5)); __pyx_t_5 = 0;
+6617: s = dts._waiters
__pyx_t_5 = __pyx_v_dts->_waiters;
__Pyx_INCREF(__pyx_t_5);
__Pyx_XDECREF_SET(__pyx_v_s, ((PyObject*)__pyx_t_5));
__pyx_t_5 = 0;
+6618: s.discard(ts)
if (unlikely(__pyx_v_s == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "discard");
__PYX_ERR(0, 6618, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PySet_Discard(__pyx_v_s, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 6618, __pyx_L1_error)
+6619: if not s and not dts._who_wants:
__pyx_t_9 = (__pyx_v_s != Py_None)&&(PySet_GET_SIZE(__pyx_v_s) != 0); __pyx_t_13 = ((!__pyx_t_9) != 0); if (__pyx_t_13) { } else { __pyx_t_1 = __pyx_t_13; goto __pyx_L12_bool_binop_done; } __pyx_t_13 = (__pyx_v_dts->_who_wants != Py_None)&&(PySet_GET_SIZE(__pyx_v_dts->_who_wants) != 0); __pyx_t_9 = ((!__pyx_t_13) != 0); __pyx_t_1 = __pyx_t_9; __pyx_L12_bool_binop_done:; if (__pyx_t_1) { /* … */ } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+6620: recommendations[dts._key] = "released"
if (unlikely(__pyx_v_recommendations == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6620, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_dts->_key, __pyx_n_u_released) < 0)) __PYX_ERR(0, 6620, __pyx_L1_error)
6621:
+6622: report_msg: dict = {}
__pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_report_msg = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0;
6623: cs: ClientState
+6624: if not ts._waiters and not ts._who_wants:
__pyx_t_9 = (__pyx_v_ts->_waiters != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiters) != 0); __pyx_t_13 = ((!__pyx_t_9) != 0); if (__pyx_t_13) { } else { __pyx_t_1 = __pyx_t_13; goto __pyx_L15_bool_binop_done; } __pyx_t_13 = (__pyx_v_ts->_who_wants != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_wants) != 0); __pyx_t_9 = ((!__pyx_t_13) != 0); __pyx_t_1 = __pyx_t_9; __pyx_L15_bool_binop_done:; if (__pyx_t_1) { /* … */ goto __pyx_L14; }
+6625: recommendations[ts._key] = "released"
if (unlikely(__pyx_v_recommendations == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6625, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_ts->_key, __pyx_n_u_released) < 0)) __PYX_ERR(0, 6625, __pyx_L1_error)
6626: else:
+6627: report_msg["op"] = "key-in-memory"
/*else*/ {
if (unlikely(PyDict_SetItem(__pyx_v_report_msg, __pyx_n_u_op, __pyx_kp_u_key_in_memory) < 0)) __PYX_ERR(0, 6627, __pyx_L1_error)
+6628: report_msg["key"] = ts._key
__pyx_t_6 = __pyx_v_ts->_key;
__Pyx_INCREF(__pyx_t_6);
if (unlikely(PyDict_SetItem(__pyx_v_report_msg, __pyx_n_u_key, __pyx_t_6) < 0)) __PYX_ERR(0, 6628, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+6629: if type is not None:
__pyx_t_1 = (__pyx_v_type != Py_None);
__pyx_t_9 = (__pyx_t_1 != 0);
if (__pyx_t_9) {
/* … */
}
+6630: report_msg["type"] = type
if (unlikely(PyDict_SetItem(__pyx_v_report_msg, __pyx_n_u_type, __pyx_v_type) < 0)) __PYX_ERR(0, 6630, __pyx_L1_error)
6631:
+6632: for cs in ts._who_wants:
__pyx_t_10 = 0;
__pyx_t_5 = __Pyx_set_iterator(__pyx_v_ts->_who_wants, 1, (&__pyx_t_3), (&__pyx_t_11)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6632, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__pyx_t_6 = __pyx_t_5;
__pyx_t_5 = 0;
while (1) {
__pyx_t_12 = __Pyx_set_iter_next(__pyx_t_6, __pyx_t_3, &__pyx_t_10, &__pyx_t_5, __pyx_t_11);
if (unlikely(__pyx_t_12 == 0)) break;
if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 6632, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 6632, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_cs, ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_5));
__pyx_t_5 = 0;
+6633: client_msgs[cs._client_key] = [report_msg]
__pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_report_msg); __Pyx_GIVEREF(__pyx_v_report_msg); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_v_report_msg); if (unlikely(__pyx_v_client_msgs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 6633, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_client_msgs, __pyx_v_cs->_client_key, __pyx_t_5) < 0)) __PYX_ERR(0, 6633, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_L14:;
6634:
+6635: ts.state = "memory"
if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_ts), __pyx_n_s_state, __pyx_n_u_memory_2) < 0) __PYX_ERR(0, 6635, __pyx_L1_error)
+6636: ts._type = typename
__Pyx_INCREF(__pyx_v_typename); __Pyx_GIVEREF(__pyx_v_typename); __Pyx_GOTREF(__pyx_v_ts->_type); __Pyx_DECREF(__pyx_v_ts->_type); __pyx_v_ts->_type = __pyx_v_typename;
+6637: ts._group._types.add(typename)
if (unlikely(__pyx_v_ts->_group->_types == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
__PYX_ERR(0, 6637, __pyx_L1_error)
}
__pyx_t_2 = PySet_Add(__pyx_v_ts->_group->_types, __pyx_v_typename); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 6637, __pyx_L1_error)
6638:
+6639: cs = state._clients["fire-and-forget"]
if (unlikely(__pyx_v_state->_clients == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6639, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_state->_clients, __pyx_kp_u_fire_and_forget); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6639, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 6639, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_cs, ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_6));
__pyx_t_6 = 0;
+6640: if ts in cs._wants_what:
if (unlikely(__pyx_v_cs->_wants_what == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 6640, __pyx_L1_error)
}
__pyx_t_9 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_cs->_wants_what, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 6640, __pyx_L1_error)
__pyx_t_1 = (__pyx_t_9 != 0);
if (__pyx_t_1) {
/* … */
}
+6641: _client_releases_keys(
__pyx_t_4 = __pyx_f_11distributed_9scheduler__client_releases_keys(__pyx_v_state, ((PyObject*)__pyx_t_5), __pyx_v_cs, __pyx_v_recommendations); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; (void)(__pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
6642: state,
6643: cs=cs,
+6644: keys=[ts._key],
__pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_v_ts->_key); __Pyx_GIVEREF(__pyx_v_ts->_key); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_v_ts->_key); /* … */ __pyx_t_5 = __pyx_t_6; __Pyx_INCREF(__pyx_t_5);
6645: recommendations=recommendations,
6646: )
6647:
6648:
6649: @cfunc
6650: @exceptval(check=False)
+6651: def _propagate_forgotten(
static PyObject *__pyx_f_11distributed_9scheduler__propagate_forgotten(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_state, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts, PyObject *__pyx_v_recommendations, PyObject *__pyx_v_worker_msgs) {
PyObject *__pyx_v_key = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_dts = 0;
PyObject *__pyx_v_s = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_v_w = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_propagate_forgotten", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(((PyObject *)__pyx_t_12));
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("distributed.scheduler._propagate_forgotten", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_key);
__Pyx_XDECREF((PyObject *)__pyx_v_dts);
__Pyx_XDECREF(__pyx_v_s);
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF(__pyx_v_w);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
6652: state: SchedulerState, ts: TaskState, recommendations: dict, worker_msgs: dict
6653: ):
+6654: ts.state = "forgotten"
if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_ts), __pyx_n_s_state, __pyx_n_u_forgotten) < 0) __PYX_ERR(0, 6654, __pyx_L1_error)
+6655: key: str = ts._key
__pyx_t_1 = __pyx_v_ts->_key;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_key = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
6656: dts: TaskState
+6657: for dts in ts._dependents:
__pyx_t_2 = 0; __pyx_t_5 = __Pyx_set_iterator(__pyx_v_ts->_dependents, 1, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_5; __pyx_t_5 = 0; while (1) { __pyx_t_6 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, __pyx_t_4); if (unlikely(__pyx_t_6 == 0)) break; if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 6657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 6657, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_5)); __pyx_t_5 = 0;
+6658: dts._has_lost_dependencies = True
__pyx_v_dts->_has_lost_dependencies = 1;
+6659: dts._dependencies.remove(ts)
if (unlikely(__pyx_v_dts->_dependencies == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
__PYX_ERR(0, 6659, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PySet_Remove(__pyx_v_dts->_dependencies, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 6659, __pyx_L1_error)
+6660: dts._waiting_on.discard(ts)
if (unlikely(__pyx_v_dts->_waiting_on == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "discard");
__PYX_ERR(0, 6660, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PySet_Discard(__pyx_v_dts->_waiting_on, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 6660, __pyx_L1_error)
+6661: if dts._state not in ("memory", "erred"):
__Pyx_INCREF(__pyx_v_dts->_state); __pyx_t_8 = __pyx_v_dts->_state; __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_8, __pyx_n_u_memory_2, Py_NE)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 6661, __pyx_L1_error) __pyx_t_11 = (__pyx_t_10 != 0); if (__pyx_t_11) { } else { __pyx_t_9 = __pyx_t_11; goto __pyx_L6_bool_binop_done; } __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_t_8, __pyx_n_u_erred, Py_NE)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 6661, __pyx_L1_error) __pyx_t_10 = (__pyx_t_11 != 0); __pyx_t_9 = __pyx_t_10; __pyx_L6_bool_binop_done:; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_10 = (__pyx_t_9 != 0); if (__pyx_t_10) { /* … */ } } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6662: # Cannot compute task anymore
+6663: recommendations[dts._key] = "forgotten"
if (unlikely(__pyx_v_recommendations == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6663, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_dts->_key, __pyx_n_u_forgotten) < 0)) __PYX_ERR(0, 6663, __pyx_L1_error)
+6664: ts._dependents.clear()
if (unlikely(__pyx_v_ts->_dependents == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear");
__PYX_ERR(0, 6664, __pyx_L1_error)
}
__pyx_t_7 = PySet_Clear(__pyx_v_ts->_dependents); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 6664, __pyx_L1_error)
+6665: ts._waiters.clear()
if (unlikely(__pyx_v_ts->_waiters == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear");
__PYX_ERR(0, 6665, __pyx_L1_error)
}
__pyx_t_7 = PySet_Clear(__pyx_v_ts->_waiters); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 6665, __pyx_L1_error)
6666:
+6667: for dts in ts._dependencies:
__pyx_t_3 = 0; __pyx_t_5 = __Pyx_set_iterator(__pyx_v_ts->_dependencies, 1, (&__pyx_t_2), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_5; __pyx_t_5 = 0; while (1) { __pyx_t_6 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_2, &__pyx_t_3, &__pyx_t_5, __pyx_t_4); if (unlikely(__pyx_t_6 == 0)) break; if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 6667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 6667, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_5)); __pyx_t_5 = 0;
+6668: dts._dependents.remove(ts)
if (unlikely(__pyx_v_dts->_dependents == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
__PYX_ERR(0, 6668, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PySet_Remove(__pyx_v_dts->_dependents, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 6668, __pyx_L1_error)
+6669: s: set = dts._waiters
__pyx_t_5 = __pyx_v_dts->_waiters;
__Pyx_INCREF(__pyx_t_5);
__Pyx_XDECREF_SET(__pyx_v_s, ((PyObject*)__pyx_t_5));
__pyx_t_5 = 0;
+6670: s.discard(ts)
if (unlikely(__pyx_v_s == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "discard");
__PYX_ERR(0, 6670, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PySet_Discard(__pyx_v_s, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 6670, __pyx_L1_error)
+6671: if not dts._dependents and not dts._who_wants:
__pyx_t_9 = (__pyx_v_dts->_dependents != Py_None)&&(PySet_GET_SIZE(__pyx_v_dts->_dependents) != 0); __pyx_t_11 = ((!__pyx_t_9) != 0); if (__pyx_t_11) { } else { __pyx_t_10 = __pyx_t_11; goto __pyx_L11_bool_binop_done; } __pyx_t_11 = (__pyx_v_dts->_who_wants != Py_None)&&(PySet_GET_SIZE(__pyx_v_dts->_who_wants) != 0); __pyx_t_9 = ((!__pyx_t_11) != 0); __pyx_t_10 = __pyx_t_9; __pyx_L11_bool_binop_done:; if (__pyx_t_10) { /* … */ } } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6672: # Task not needed anymore
+6673: assert dts is not ts
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_10 = (__pyx_v_dts != __pyx_v_ts);
if (unlikely(!(__pyx_t_10 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 6673, __pyx_L1_error)
}
}
#endif
+6674: recommendations[dts._key] = "forgotten"
if (unlikely(__pyx_v_recommendations == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6674, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_dts->_key, __pyx_n_u_forgotten) < 0)) __PYX_ERR(0, 6674, __pyx_L1_error)
+6675: ts._dependencies.clear()
if (unlikely(__pyx_v_ts->_dependencies == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear");
__PYX_ERR(0, 6675, __pyx_L1_error)
}
__pyx_t_7 = PySet_Clear(__pyx_v_ts->_dependencies); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 6675, __pyx_L1_error)
+6676: ts._waiting_on.clear()
if (unlikely(__pyx_v_ts->_waiting_on == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear");
__PYX_ERR(0, 6676, __pyx_L1_error)
}
__pyx_t_7 = PySet_Clear(__pyx_v_ts->_waiting_on); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 6676, __pyx_L1_error)
6677:
+6678: if ts._who_has:
__pyx_t_10 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
if (__pyx_t_10) {
/* … */
}
+6679: ts._group._nbytes_in_memory -= ts.get_nbytes()
__Pyx_INCREF(((PyObject *)__pyx_v_ts->_group)); __pyx_t_12 = __pyx_v_ts->_group; __pyx_t_2 = __pyx_f_11distributed_9scheduler_9TaskState_get_nbytes(__pyx_v_ts, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 6679, __pyx_L1_error) __pyx_t_12->_nbytes_in_memory = (__pyx_t_12->_nbytes_in_memory - __pyx_t_2); __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
6680:
6681: ws: WorkerState
+6682: for ws in ts._who_has:
__pyx_t_2 = 0; __pyx_t_5 = __Pyx_set_iterator(__pyx_v_ts->_who_has, 1, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_5; __pyx_t_5 = 0; while (1) { __pyx_t_6 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, __pyx_t_4); if (unlikely(__pyx_t_6 == 0)) break; if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 6682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 6682, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_5)); __pyx_t_5 = 0;
+6683: ws._has_what.remove(ts)
if (unlikely(__pyx_v_ws->_has_what == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
__PYX_ERR(0, 6683, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PySet_Remove(__pyx_v_ws->_has_what, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 6683, __pyx_L1_error)
+6684: ws._nbytes -= ts.get_nbytes()
__pyx_t_13 = __pyx_f_11distributed_9scheduler_9TaskState_get_nbytes(__pyx_v_ts, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 6684, __pyx_L1_error)
__pyx_v_ws->_nbytes = (__pyx_v_ws->_nbytes - __pyx_t_13);
+6685: w: str = ws._address
__pyx_t_5 = __pyx_v_ws->_address;
__Pyx_INCREF(__pyx_t_5);
__Pyx_XDECREF_SET(__pyx_v_w, ((PyObject*)__pyx_t_5));
__pyx_t_5 = 0;
+6686: if w in state._workers_dv: # in case worker has died
if (unlikely(__pyx_v_state->_workers_dv == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 6686, __pyx_L1_error)
}
__pyx_t_10 = (__Pyx_PyDict_ContainsTF(__pyx_v_w, __pyx_v_state->_workers_dv, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 6686, __pyx_L1_error)
__pyx_t_9 = (__pyx_t_10 != 0);
if (__pyx_t_9) {
/* … */
}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+6687: worker_msgs[w] = [{"op": "delete-data", "keys": [key], "report": False}]
__pyx_t_5 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_op, __pyx_kp_u_delete_data) < 0) __PYX_ERR(0, 6687, __pyx_L1_error) __pyx_t_14 = PyList_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 6687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyList_SET_ITEM(__pyx_t_14, 0, __pyx_v_key); if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_keys, __pyx_t_14) < 0) __PYX_ERR(0, 6687, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_report, Py_False) < 0) __PYX_ERR(0, 6687, __pyx_L1_error) __pyx_t_14 = PyList_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 6687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_14, 0, __pyx_t_5); __pyx_t_5 = 0; if (unlikely(__pyx_v_worker_msgs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 6687, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_worker_msgs, __pyx_v_w, __pyx_t_14) < 0)) __PYX_ERR(0, 6687, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+6688: ts._who_has.clear()
if (unlikely(__pyx_v_ts->_who_has == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear");
__PYX_ERR(0, 6688, __pyx_L1_error)
}
__pyx_t_7 = PySet_Clear(__pyx_v_ts->_who_has); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 6688, __pyx_L1_error)
6689:
6690:
6691: @cfunc
6692: @exceptval(check=False)
+6693: def _client_releases_keys(
static PyObject *__pyx_f_11distributed_9scheduler__client_releases_keys(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_state, PyObject *__pyx_v_keys, struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_cs, PyObject *__pyx_v_recommendations) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_v_tasks2 = 0;
PyObject *__pyx_v_key = NULL;
PyObject *__pyx_v_s = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_client_releases_keys", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler._client_releases_keys", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF(__pyx_v_tasks2);
__Pyx_XDECREF(__pyx_v_key);
__Pyx_XDECREF(__pyx_v_s);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
6694: state: SchedulerState, keys: list, cs: ClientState, recommendations: dict
6695: ):
6696: """ Remove keys from client desired list """
+6697: logger.debug("Client %s releases keys: %s", cs._client_key, keys)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_logger); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_debug); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_kp_u_Client_s_releases_keys_s, __pyx_v_cs->_client_key, __pyx_v_keys}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6697, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_kp_u_Client_s_releases_keys_s, __pyx_v_cs->_client_key, __pyx_v_keys}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6697, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_5 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_kp_u_Client_s_releases_keys_s); __Pyx_GIVEREF(__pyx_kp_u_Client_s_releases_keys_s); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_kp_u_Client_s_releases_keys_s); __Pyx_INCREF(__pyx_v_cs->_client_key); __Pyx_GIVEREF(__pyx_v_cs->_client_key); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_cs->_client_key); __Pyx_INCREF(__pyx_v_keys); __Pyx_GIVEREF(__pyx_v_keys); PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_4, __pyx_v_keys); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6698: ts: TaskState
+6699: tasks2: set = set()
__pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_tasks2 = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+6700: for key in keys:
if (unlikely(__pyx_v_keys == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 6700, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_keys; __Pyx_INCREF(__pyx_t_1); __pyx_t_6 = 0;
for (;;) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 6700, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6700, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
__Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_3);
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+6701: ts = state._tasks.get(key)
if (unlikely(__pyx_v_state->_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 6701, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_state->_tasks, __pyx_v_key, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6701, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 6701, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_3));
__pyx_t_3 = 0;
+6702: if ts is not None and ts in cs._wants_what:
__pyx_t_8 = (((PyObject *)__pyx_v_ts) != Py_None);
__pyx_t_9 = (__pyx_t_8 != 0);
if (__pyx_t_9) {
} else {
__pyx_t_7 = __pyx_t_9;
goto __pyx_L6_bool_binop_done;
}
if (unlikely(__pyx_v_cs->_wants_what == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 6702, __pyx_L1_error)
}
__pyx_t_9 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_cs->_wants_what, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 6702, __pyx_L1_error)
__pyx_t_8 = (__pyx_t_9 != 0);
__pyx_t_7 = __pyx_t_8;
__pyx_L6_bool_binop_done:;
if (__pyx_t_7) {
/* … */
}
+6703: cs._wants_what.remove(ts)
if (unlikely(__pyx_v_cs->_wants_what == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
__PYX_ERR(0, 6703, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PySet_Remove(__pyx_v_cs->_wants_what, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 6703, __pyx_L1_error)
+6704: s: set = ts._who_wants
__pyx_t_3 = __pyx_v_ts->_who_wants;
__Pyx_INCREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_s, ((PyObject*)__pyx_t_3));
__pyx_t_3 = 0;
+6705: s.remove(cs)
if (unlikely(__pyx_v_s == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "remove");
__PYX_ERR(0, 6705, __pyx_L1_error)
}
__pyx_t_10 = __Pyx_PySet_Remove(__pyx_v_s, ((PyObject *)__pyx_v_cs)); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 6705, __pyx_L1_error)
+6706: if not s:
__pyx_t_7 = (__pyx_v_s != Py_None)&&(PySet_GET_SIZE(__pyx_v_s) != 0);
__pyx_t_8 = ((!__pyx_t_7) != 0);
if (__pyx_t_8) {
/* … */
}
+6707: tasks2.add(ts)
__pyx_t_10 = PySet_Add(__pyx_v_tasks2, ((PyObject *)__pyx_v_ts)); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 6707, __pyx_L1_error)
6708:
+6709: for ts in tasks2:
__pyx_t_6 = 0; __pyx_t_3 = __Pyx_set_iterator(__pyx_v_tasks2, 1, (&__pyx_t_11), (&__pyx_t_4)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_3; __pyx_t_3 = 0; while (1) { __pyx_t_12 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_11, &__pyx_t_6, &__pyx_t_3, __pyx_t_4); if (unlikely(__pyx_t_12 == 0)) break; if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 6709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 6709, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_3)); __pyx_t_3 = 0;
+6710: if not ts._dependents:
__pyx_t_8 = (__pyx_v_ts->_dependents != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_dependents) != 0);
__pyx_t_7 = ((!__pyx_t_8) != 0);
if (__pyx_t_7) {
/* … */
goto __pyx_L11;
}
6711: # No live dependents, can forget
+6712: recommendations[ts._key] = "forgotten"
if (unlikely(__pyx_v_recommendations == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6712, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_ts->_key, __pyx_n_u_forgotten) < 0)) __PYX_ERR(0, 6712, __pyx_L1_error)
+6713: elif ts._state != "erred" and not ts._waiters:
__pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_erred, Py_NE)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 6713, __pyx_L1_error) __pyx_t_9 = (__pyx_t_8 != 0); if (__pyx_t_9) { } else { __pyx_t_7 = __pyx_t_9; goto __pyx_L12_bool_binop_done; } __pyx_t_9 = (__pyx_v_ts->_waiters != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiters) != 0); __pyx_t_8 = ((!__pyx_t_9) != 0); __pyx_t_7 = __pyx_t_8; __pyx_L12_bool_binop_done:; if (__pyx_t_7) { /* … */ } __pyx_L11:; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+6714: recommendations[ts._key] = "released"
if (unlikely(__pyx_v_recommendations == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 6714, __pyx_L1_error)
}
if (unlikely(PyDict_SetItem(__pyx_v_recommendations, __pyx_v_ts->_key, __pyx_n_u_released) < 0)) __PYX_ERR(0, 6714, __pyx_L1_error)
6715:
6716:
6717: @cfunc
6718: @exceptval(check=False)
+6719: def _task_to_msg(state: SchedulerState, ts: TaskState, duration=None) -> dict:
static PyObject *__pyx_f_11distributed_9scheduler__task_to_msg(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_state, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts, struct __pyx_opt_args_11distributed_9scheduler__task_to_msg *__pyx_optional_args) {
PyObject *__pyx_v_duration = ((PyObject *)Py_None);
PyObject *__pyx_v_msg = 0;
PyObject *__pyx_v_deps = 0;
PyObject *__pyx_v_task = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_10genexpr148__pyx_v_dts = NULL;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_10genexpr149__pyx_v_ws = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_10genexpr150__pyx_v_dts = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_task_to_msg", 0);
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v_duration = __pyx_optional_args->duration;
}
}
__Pyx_INCREF(__pyx_v_duration);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("distributed.scheduler._task_to_msg", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_msg);
__Pyx_XDECREF(__pyx_v_deps);
__Pyx_XDECREF(__pyx_v_task);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr148__pyx_v_dts);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr149__pyx_v_ws);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr150__pyx_v_dts);
__Pyx_XDECREF(__pyx_v_duration);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
struct __pyx_opt_args_11distributed_9scheduler__task_to_msg {
int __pyx_n;
PyObject *duration;
};
6720: """ Convert a single computational task to a message """
6721: ws: WorkerState
6722: dts: TaskState
6723:
+6724: if duration is None:
__pyx_t_1 = (__pyx_v_duration == Py_None);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+6725: duration = state.get_task_duration(ts)
__pyx_t_3 = ((struct __pyx_vtabstruct_11distributed_9scheduler_SchedulerState *)__pyx_v_state->__pyx_vtab)->get_task_duration(__pyx_v_state, __pyx_v_ts, 0, NULL); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 6725, __pyx_L1_error) __pyx_t_4 = PyFloat_FromDouble(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF_SET(__pyx_v_duration, __pyx_t_4); __pyx_t_4 = 0;
6726:
6727: msg: dict = {
+6728: "op": "compute-task",
__pyx_t_4 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_u_op, __pyx_kp_u_compute_task) < 0) __PYX_ERR(0, 6728, __pyx_L1_error)
+6729: "key": ts._key,
if (PyDict_SetItem(__pyx_t_4, __pyx_n_u_key, __pyx_v_ts->_key) < 0) __PYX_ERR(0, 6728, __pyx_L1_error)
+6730: "priority": ts._priority,
if (PyDict_SetItem(__pyx_t_4, __pyx_n_u_priority, __pyx_v_ts->_priority) < 0) __PYX_ERR(0, 6728, __pyx_L1_error)
+6731: "duration": duration,
if (PyDict_SetItem(__pyx_t_4, __pyx_n_u_duration, __pyx_v_duration) < 0) __PYX_ERR(0, 6728, __pyx_L1_error) __pyx_v_msg = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
6732: }
+6733: if ts._resource_restrictions:
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_ts->_resource_restrictions); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6733, __pyx_L1_error) if (__pyx_t_2) { /* … */ }
+6734: msg["resource_restrictions"] = ts._resource_restrictions
__pyx_t_4 = __pyx_v_ts->_resource_restrictions;
__Pyx_INCREF(__pyx_t_4);
if (unlikely(PyDict_SetItem(__pyx_v_msg, __pyx_n_u_resource_restrictions, __pyx_t_4) < 0)) __PYX_ERR(0, 6734, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+6735: if ts._actor:
__pyx_t_2 = (__pyx_v_ts->_actor != 0);
if (__pyx_t_2) {
/* … */
}
+6736: msg["actor"] = True
if (unlikely(PyDict_SetItem(__pyx_v_msg, __pyx_n_u_actor, Py_True) < 0)) __PYX_ERR(0, 6736, __pyx_L1_error)
6737:
+6738: deps: set = ts._dependencies
__pyx_t_4 = __pyx_v_ts->_dependencies;
__Pyx_INCREF(__pyx_t_4);
__pyx_v_deps = ((PyObject*)__pyx_t_4);
__pyx_t_4 = 0;
+6739: if deps:
__pyx_t_2 = (__pyx_v_deps != Py_None)&&(PySet_GET_SIZE(__pyx_v_deps) != 0);
if (__pyx_t_2) {
/* … */
}
+6740: msg["who_has"] = {
{ /* enter inner scope */
__pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6740, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_4);
/* … */
if (unlikely(PyDict_SetItem(__pyx_v_msg, __pyx_n_u_who_has, __pyx_t_4) < 0)) __PYX_ERR(0, 6740, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+6741: dts._key: [ws._address for ws in dts._who_has] for dts in deps
__pyx_t_6 = 0;
__pyx_t_9 = __Pyx_set_iterator(__pyx_v_deps, 1, (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6741, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_5);
__pyx_t_5 = __pyx_t_9;
__pyx_t_9 = 0;
while (1) {
__pyx_t_10 = __Pyx_set_iter_next(__pyx_t_5, __pyx_t_7, &__pyx_t_6, &__pyx_t_9, __pyx_t_8);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 6741, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_9);
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 6741, __pyx_L9_error)
__Pyx_XDECREF_SET(__pyx_10genexpr148__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_9));
__pyx_t_9 = 0;
{ /* enter inner scope */
__pyx_t_9 = PyList_New(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6741, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_12 = 0;
__pyx_t_14 = __Pyx_set_iterator(__pyx_10genexpr148__pyx_v_dts->_who_has, 1, (&__pyx_t_13), (&__pyx_t_10)); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 6741, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_11);
__pyx_t_11 = __pyx_t_14;
__pyx_t_14 = 0;
while (1) {
__pyx_t_15 = __Pyx_set_iter_next(__pyx_t_11, __pyx_t_13, &__pyx_t_12, &__pyx_t_14, __pyx_t_10);
if (unlikely(__pyx_t_15 == 0)) break;
if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 6741, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_14);
if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 6741, __pyx_L14_error)
__Pyx_XDECREF_SET(__pyx_10genexpr149__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_14));
__pyx_t_14 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_9, (PyObject*)__pyx_10genexpr149__pyx_v_ws->_address))) __PYX_ERR(0, 6741, __pyx_L14_error)
}
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr149__pyx_v_ws); __pyx_10genexpr149__pyx_v_ws = 0;
goto __pyx_L17_exit_scope;
__pyx_L14_error:;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr149__pyx_v_ws); __pyx_10genexpr149__pyx_v_ws = 0;
goto __pyx_L9_error;
__pyx_L17_exit_scope:;
} /* exit inner scope */
if (unlikely(PyDict_SetItem(__pyx_t_4, (PyObject*)__pyx_10genexpr148__pyx_v_dts->_key, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 6741, __pyx_L9_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr148__pyx_v_dts); __pyx_10genexpr148__pyx_v_dts = 0;
goto __pyx_L18_exit_scope;
__pyx_L9_error:;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr148__pyx_v_dts); __pyx_10genexpr148__pyx_v_dts = 0;
goto __pyx_L1_error;
__pyx_L18_exit_scope:;
} /* exit inner scope */
6742: }
+6743: msg["nbytes"] = {dts._key: dts._nbytes for dts in deps}
{ /* enter inner scope */
__pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6743, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_7 = 0;
__pyx_t_9 = __Pyx_set_iterator(__pyx_v_deps, 1, (&__pyx_t_6), (&__pyx_t_8)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6743, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_5);
__pyx_t_5 = __pyx_t_9;
__pyx_t_9 = 0;
while (1) {
__pyx_t_10 = __Pyx_set_iter_next(__pyx_t_5, __pyx_t_6, &__pyx_t_7, &__pyx_t_9, __pyx_t_8);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 6743, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_9);
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 6743, __pyx_L21_error)
__Pyx_XDECREF_SET(__pyx_10genexpr150__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_9));
__pyx_t_9 = 0;
__pyx_t_9 = PyInt_FromSsize_t(__pyx_10genexpr150__pyx_v_dts->_nbytes); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6743, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_9);
if (unlikely(PyDict_SetItem(__pyx_t_4, (PyObject*)__pyx_10genexpr150__pyx_v_dts->_key, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 6743, __pyx_L21_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr150__pyx_v_dts); __pyx_10genexpr150__pyx_v_dts = 0;
goto __pyx_L24_exit_scope;
__pyx_L21_error:;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr150__pyx_v_dts); __pyx_10genexpr150__pyx_v_dts = 0;
goto __pyx_L1_error;
__pyx_L24_exit_scope:;
} /* exit inner scope */
if (unlikely(PyDict_SetItem(__pyx_v_msg, __pyx_n_u_nbytes, __pyx_t_4) < 0)) __PYX_ERR(0, 6743, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
6744:
+6745: if state._validate:
__pyx_t_2 = (__pyx_v_state->_validate != 0);
if (__pyx_t_2) {
/* … */
}
+6746: assert all(msg["who_has"].values())
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_msg, __pyx_n_u_who_has); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6746, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_values); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6746, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_9);
if (likely(__pyx_t_5)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_9, function);
}
}
__pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6746, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6746, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6746, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_2)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 6746, __pyx_L1_error)
}
}
#endif
6747:
+6748: task = ts._run_spec
__pyx_t_9 = __pyx_v_ts->_run_spec;
__Pyx_INCREF(__pyx_t_9);
__pyx_v_task = __pyx_t_9;
__pyx_t_9 = 0;
+6749: if type(task) is dict:
__pyx_t_2 = (((PyObject *)Py_TYPE(__pyx_v_task)) == ((PyObject *)(&PyDict_Type)));
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L26;
}
+6750: msg.update(task)
__pyx_t_9 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyDict_Type_update, __pyx_v_msg, __pyx_v_task); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
6751: else:
+6752: msg["task"] = task
/*else*/ {
if (unlikely(PyDict_SetItem(__pyx_v_msg, __pyx_n_u_task, __pyx_v_task) < 0)) __PYX_ERR(0, 6752, __pyx_L1_error)
}
__pyx_L26:;
6753:
+6754: return msg
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_msg); __pyx_r = __pyx_v_msg; goto __pyx_L0;
6755:
6756:
6757: @cfunc
6758: @exceptval(check=False)
+6759: def _task_to_report_msg(state: SchedulerState, ts: TaskState) -> dict:
static PyObject *__pyx_f_11distributed_9scheduler__task_to_report_msg(CYTHON_UNUSED struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_state, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_failing_ts = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_task_to_report_msg", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("distributed.scheduler._task_to_report_msg", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_failing_ts);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+6760: if ts is None:
__pyx_t_1 = (((PyObject *)__pyx_v_ts) == Py_None);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+6761: return {"op": "cancelled-key", "key": ts._key}
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_op, __pyx_kp_u_cancelled_key) < 0) __PYX_ERR(0, 6761, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_key, __pyx_v_ts->_key) < 0) __PYX_ERR(0, 6761, __pyx_L1_error) __pyx_r = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0;
+6762: elif ts._state == "forgotten":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_forgotten, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6762, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ }
+6763: return {"op": "cancelled-key", "key": ts._key}
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_op, __pyx_kp_u_cancelled_key) < 0) __PYX_ERR(0, 6763, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_key, __pyx_v_ts->_key) < 0) __PYX_ERR(0, 6763, __pyx_L1_error) __pyx_r = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0;
+6764: elif ts._state == "memory":
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_memory_2, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 6764, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ }
+6765: return {"op": "key-in-memory", "key": ts._key}
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_op, __pyx_kp_u_key_in_memory) < 0) __PYX_ERR(0, 6765, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_key, __pyx_v_ts->_key) < 0) __PYX_ERR(0, 6765, __pyx_L1_error) __pyx_r = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0;
+6766: elif ts._state == "erred":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_erred, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6766, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ }
+6767: failing_ts: TaskState = ts._exception_blame
if (!(likely(((__pyx_v_ts->_exception_blame) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_ts->_exception_blame, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 6767, __pyx_L1_error) __pyx_t_3 = __pyx_v_ts->_exception_blame; __Pyx_INCREF(__pyx_t_3); __pyx_v_failing_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_3); __pyx_t_3 = 0;
+6768: return {
__Pyx_XDECREF(__pyx_r);
+6769: "op": "task-erred",
__pyx_t_3 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_op, __pyx_kp_u_task_erred) < 0) __PYX_ERR(0, 6769, __pyx_L1_error)
+6770: "key": ts._key,
if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_key, __pyx_v_ts->_key) < 0) __PYX_ERR(0, 6769, __pyx_L1_error)
+6771: "exception": failing_ts._exception,
if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_exception, __pyx_v_failing_ts->_exception) < 0) __PYX_ERR(0, 6769, __pyx_L1_error)
+6772: "traceback": failing_ts._traceback,
if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_traceback, __pyx_v_failing_ts->_traceback) < 0) __PYX_ERR(0, 6769, __pyx_L1_error) __pyx_r = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0;
6773: }
6774: else:
+6775: return None
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__pyx_r = ((PyObject*)Py_None); __Pyx_INCREF(Py_None);
goto __pyx_L0;
}
6776:
6777:
6778: @cfunc
6779: @exceptval(check=False)
+6780: def _task_to_client_msgs(state: SchedulerState, ts: TaskState) -> dict:
static PyObject *__pyx_f_11distributed_9scheduler__task_to_client_msgs(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_state, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts) {
PyObject *__pyx_v_client_keys = 0;
PyObject *__pyx_v_report_msg = 0;
PyObject *__pyx_v_client_msgs = 0;
PyObject *__pyx_v_k = NULL;
struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_10genexpr151__pyx_v_cs = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_task_to_client_msgs", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_AddTraceback("distributed.scheduler._task_to_client_msgs", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_client_keys);
__Pyx_XDECREF(__pyx_v_report_msg);
__Pyx_XDECREF(__pyx_v_client_msgs);
__Pyx_XDECREF(__pyx_v_k);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr151__pyx_v_cs);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
6781: cs: ClientState
6782: client_keys: list
+6783: if ts is None:
__pyx_t_1 = (((PyObject *)__pyx_v_ts) == Py_None);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L3;
}
6784: # Notify all clients
+6785: client_keys = list(state._clients)
__pyx_t_3 = PySequence_List(__pyx_v_state->_clients); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_client_keys = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
6786: else:
6787: # Notify clients interested in key
+6788: client_keys = [cs._client_key for cs in ts._who_wants]
/*else*/ {
{ /* enter inner scope */
__pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6788, __pyx_L6_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = 0;
__pyx_t_8 = __Pyx_set_iterator(__pyx_v_ts->_who_wants, 1, (&__pyx_t_6), (&__pyx_t_7)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6788, __pyx_L6_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_4);
__pyx_t_4 = __pyx_t_8;
__pyx_t_8 = 0;
while (1) {
__pyx_t_9 = __Pyx_set_iter_next(__pyx_t_4, __pyx_t_6, &__pyx_t_5, &__pyx_t_8, __pyx_t_7);
if (unlikely(__pyx_t_9 == 0)) break;
if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 6788, __pyx_L6_error)
__Pyx_GOTREF(__pyx_t_8);
if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 6788, __pyx_L6_error)
__Pyx_XDECREF_SET(__pyx_10genexpr151__pyx_v_cs, ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_8));
__pyx_t_8 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_10genexpr151__pyx_v_cs->_client_key))) __PYX_ERR(0, 6788, __pyx_L6_error)
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr151__pyx_v_cs); __pyx_10genexpr151__pyx_v_cs = 0;
goto __pyx_L9_exit_scope;
__pyx_L6_error:;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr151__pyx_v_cs); __pyx_10genexpr151__pyx_v_cs = 0;
goto __pyx_L1_error;
__pyx_L9_exit_scope:;
} /* exit inner scope */
__pyx_v_client_keys = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
}
__pyx_L3:;
6789:
+6790: report_msg: dict = _task_to_report_msg(state, ts)
__pyx_t_3 = __pyx_f_11distributed_9scheduler__task_to_report_msg(__pyx_v_state, __pyx_v_ts); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_report_msg = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
6791:
+6792: client_msgs: dict = {}
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 6792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_client_msgs = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+6793: for k in client_keys:
__pyx_t_3 = __pyx_v_client_keys; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0; for (;;) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 6793, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_4); __pyx_t_4 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+6794: client_msgs[k] = [report_msg]
__pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_report_msg); __Pyx_GIVEREF(__pyx_v_report_msg); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_v_report_msg); if (unlikely(PyDict_SetItem(__pyx_v_client_msgs, __pyx_v_k, __pyx_t_4) < 0)) __PYX_ERR(0, 6794, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
6795:
+6796: return client_msgs
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_client_msgs); __pyx_r = __pyx_v_client_msgs; goto __pyx_L0;
6797:
6798:
6799: @cfunc
6800: @exceptval(check=False)
+6801: def _reevaluate_occupancy_worker(state: SchedulerState, ws: WorkerState):
static PyObject *__pyx_f_11distributed_9scheduler__reevaluate_occupancy_worker(struct __pyx_obj_11distributed_9scheduler_SchedulerState *__pyx_v_state, struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws) {
double __pyx_v_old;
double __pyx_v_new;
double __pyx_v_diff;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
double __pyx_v_est;
PyObject *__pyx_v_steal = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_reevaluate_occupancy_worker", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("distributed.scheduler._reevaluate_occupancy_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF(__pyx_v_steal);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
6802: """ See reevaluate_occupancy """
+6803: old: double = ws._occupancy
__pyx_t_1 = __pyx_v_ws->_occupancy; __pyx_v_old = __pyx_t_1;
+6804: new: double = 0
__pyx_v_new = 0.0;
6805: diff: double
6806: ts: TaskState
6807: est: double
+6808: for ts in ws._processing:
__pyx_t_3 = 0;
if (unlikely(__pyx_v_ws->_processing == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 6808, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_dict_iterator(__pyx_v_ws->_processing, 1, ((PyObject *)NULL), (&__pyx_t_4), (&__pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6808, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_2);
__pyx_t_2 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_4, &__pyx_t_3, &__pyx_t_6, NULL, NULL, __pyx_t_5);
if (unlikely(__pyx_t_7 == 0)) break;
if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 6808, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 6808, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6));
__pyx_t_6 = 0;
+6809: est = state.set_duration_estimate(ts, ws)
__pyx_t_1 = ((struct __pyx_vtabstruct_11distributed_9scheduler_SchedulerState *)__pyx_v_state->__pyx_vtab)->set_duration_estimate(__pyx_v_state, __pyx_v_ts, __pyx_v_ws, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 6809, __pyx_L1_error)
__pyx_v_est = __pyx_t_1;
+6810: new += est
__pyx_v_new = (__pyx_v_new + __pyx_v_est);
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6811:
+6812: ws._occupancy = new
__pyx_v_ws->_occupancy = __pyx_v_new;
+6813: diff = new - old
__pyx_v_diff = (__pyx_v_new - __pyx_v_old);
+6814: state._total_occupancy += diff
__pyx_v_state->_total_occupancy = (__pyx_v_state->_total_occupancy + __pyx_v_diff);
+6815: state.check_idle_saturated(ws)
__pyx_t_2 = ((struct __pyx_vtabstruct_11distributed_9scheduler_SchedulerState *)__pyx_v_state->__pyx_vtab)->check_idle_saturated(__pyx_v_state, __pyx_v_ws, 0, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6816:
6817: # significant increase in duration
+6818: if new > old * 1.3:
__pyx_t_8 = ((__pyx_v_new > (__pyx_v_old * 1.3)) != 0);
if (__pyx_t_8) {
/* … */
}
+6819: steal = state._extensions.get("stealing")
if (unlikely(__pyx_v_state->_extensions == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
__PYX_ERR(0, 6819, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItemDefault(__pyx_v_state->_extensions, __pyx_n_u_stealing, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6819, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_steal = __pyx_t_2;
__pyx_t_2 = 0;
+6820: if steal is not None:
__pyx_t_8 = (__pyx_v_steal != Py_None);
__pyx_t_9 = (__pyx_t_8 != 0);
if (__pyx_t_9) {
/* … */
}
+6821: for ts in ws._processing:
__pyx_t_4 = 0;
if (unlikely(__pyx_v_ws->_processing == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 6821, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_dict_iterator(__pyx_v_ws->_processing, 1, ((PyObject *)NULL), (&__pyx_t_3), (&__pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6821, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_2);
__pyx_t_2 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_3, &__pyx_t_4, &__pyx_t_6, NULL, NULL, __pyx_t_5);
if (unlikely(__pyx_t_7 == 0)) break;
if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 6821, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 6821, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6));
__pyx_t_6 = 0;
+6822: steal.remove_key_from_stealable(ts)
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_steal, __pyx_n_s_remove_key_from_stealable); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 6822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_6 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_11, ((PyObject *)__pyx_v_ts)) : __Pyx_PyObject_CallOneArg(__pyx_t_10, ((PyObject *)__pyx_v_ts)); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+6823: steal.put_key_in_stealable(ts)
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_steal, __pyx_n_s_put_key_in_stealable); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 6823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_6 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_11, ((PyObject *)__pyx_v_ts)) : __Pyx_PyObject_CallOneArg(__pyx_t_10, ((PyObject *)__pyx_v_ts)); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6824:
6825:
6826: @cfunc
6827: @exceptval(check=False)
+6828: def decide_worker(
static struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_f_11distributed_9scheduler_decide_worker(struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts, PyObject *__pyx_v_all_workers, PyObject *__pyx_v_valid_workers, PyObject *__pyx_v_objective) {
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
PyObject *__pyx_v_deps = 0;
PyObject *__pyx_v_candidates = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_10genexpr152__pyx_v_dts = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_10genexpr153__pyx_v_dts = NULL;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_10genexpr153__pyx_v_ws = NULL;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("decide_worker", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("distributed.scheduler.decide_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF(__pyx_v_deps);
__Pyx_XDECREF(__pyx_v_candidates);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr152__pyx_v_dts);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr153__pyx_v_dts);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr153__pyx_v_ws);
__Pyx_XGIVEREF((PyObject *)__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
6829: ts: TaskState, all_workers, valid_workers: set, objective
6830: ) -> WorkerState:
6831: """
6832: Decide which worker should take task *ts*.
6833:
6834: We choose the worker that has the data on which *ts* depends.
6835:
6836: If several workers have dependencies then we choose the less-busy worker.
6837:
6838: Optionally provide *valid_workers* of where jobs are allowed to occur
6839: (if all workers are allowed to take the task, pass None instead).
6840:
6841: If the task requires data communication because no eligible worker has
6842: all the dependencies already, then we choose to minimize the number
6843: of bytes sent between workers. This is determined by calling the
6844: *objective* function.
6845: """
6846: ws: WorkerState
6847: dts: TaskState
+6848: deps: set = ts._dependencies
__pyx_t_1 = __pyx_v_ts->_dependencies;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_deps = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
6849: candidates: set
+6850: assert all([dts._who_has for dts in deps])
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
{ /* enter inner scope */
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6850, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = 0;
__pyx_t_6 = __Pyx_set_iterator(__pyx_v_deps, 1, (&__pyx_t_4), (&__pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6850, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_2);
__pyx_t_2 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_7 = __Pyx_set_iter_next(__pyx_t_2, __pyx_t_4, &__pyx_t_3, &__pyx_t_6, __pyx_t_5);
if (unlikely(__pyx_t_7 == 0)) break;
if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 6850, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 6850, __pyx_L5_error)
__Pyx_XDECREF_SET(__pyx_10genexpr152__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6));
__pyx_t_6 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_10genexpr152__pyx_v_dts->_who_has))) __PYX_ERR(0, 6850, __pyx_L5_error)
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr152__pyx_v_dts); __pyx_10genexpr152__pyx_v_dts = 0;
goto __pyx_L8_exit_scope;
__pyx_L5_error:;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr152__pyx_v_dts); __pyx_10genexpr152__pyx_v_dts = 0;
goto __pyx_L1_error;
__pyx_L8_exit_scope:;
} /* exit inner scope */
__pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6850, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 6850, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_8)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 6850, __pyx_L1_error)
}
}
#endif
+6851: if ts._actor:
__pyx_t_8 = (__pyx_v_ts->_actor != 0);
if (__pyx_t_8) {
/* … */
goto __pyx_L9;
}
+6852: candidates = set(all_workers)
__pyx_t_2 = PySet_New(__pyx_v_all_workers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_candidates = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
6853: else:
+6854: candidates = {ws for dts in deps for ws in dts._who_has}
/*else*/ {
{ /* enter inner scope */
__pyx_t_2 = PySet_New(NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6854, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = 0;
__pyx_t_6 = __Pyx_set_iterator(__pyx_v_deps, 1, (&__pyx_t_3), (&__pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6854, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_7 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_4, &__pyx_t_6, __pyx_t_5);
if (unlikely(__pyx_t_7 == 0)) break;
if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 6854, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_6);
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 6854, __pyx_L12_error)
__Pyx_XDECREF_SET(__pyx_10genexpr153__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_6));
__pyx_t_6 = 0;
__pyx_t_9 = 0;
__pyx_t_11 = __Pyx_set_iterator(__pyx_10genexpr153__pyx_v_dts->_who_has, 1, (&__pyx_t_10), (&__pyx_t_7)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6854, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_6);
__pyx_t_6 = __pyx_t_11;
__pyx_t_11 = 0;
while (1) {
__pyx_t_12 = __Pyx_set_iter_next(__pyx_t_6, __pyx_t_10, &__pyx_t_9, &__pyx_t_11, __pyx_t_7);
if (unlikely(__pyx_t_12 == 0)) break;
if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 6854, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_11);
if (!(likely(((__pyx_t_11) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_11, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 6854, __pyx_L12_error)
__Pyx_XDECREF_SET(__pyx_10genexpr153__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_11));
__pyx_t_11 = 0;
if (unlikely(PySet_Add(__pyx_t_2, (PyObject*)__pyx_10genexpr153__pyx_v_ws))) __PYX_ERR(0, 6854, __pyx_L12_error)
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr153__pyx_v_dts); __pyx_10genexpr153__pyx_v_dts = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr153__pyx_v_ws); __pyx_10genexpr153__pyx_v_ws = 0;
goto __pyx_L17_exit_scope;
__pyx_L12_error:;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr153__pyx_v_dts); __pyx_10genexpr153__pyx_v_dts = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr153__pyx_v_ws); __pyx_10genexpr153__pyx_v_ws = 0;
goto __pyx_L1_error;
__pyx_L17_exit_scope:;
} /* exit inner scope */
__pyx_v_candidates = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
}
__pyx_L9:;
+6855: if valid_workers is None:
__pyx_t_8 = (__pyx_v_valid_workers == ((PyObject*)Py_None));
__pyx_t_13 = (__pyx_t_8 != 0);
if (__pyx_t_13) {
/* … */
goto __pyx_L18;
}
+6856: if not candidates:
__pyx_t_13 = (PySet_GET_SIZE(__pyx_v_candidates) != 0);
__pyx_t_8 = ((!__pyx_t_13) != 0);
if (__pyx_t_8) {
/* … */
}
+6857: candidates = set(all_workers)
__pyx_t_2 = PySet_New(__pyx_v_all_workers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF_SET(__pyx_v_candidates, ((PyObject*)__pyx_t_2)); __pyx_t_2 = 0;
6858: else:
+6859: candidates &= valid_workers
/*else*/ {
__pyx_t_2 = PyNumber_InPlaceAnd(__pyx_v_candidates, __pyx_v_valid_workers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6859, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF_SET(__pyx_v_candidates, ((PyObject*)__pyx_t_2));
__pyx_t_2 = 0;
+6860: if not candidates:
__pyx_t_8 = (PySet_GET_SIZE(__pyx_v_candidates) != 0);
__pyx_t_13 = ((!__pyx_t_8) != 0);
if (__pyx_t_13) {
/* … */
}
}
__pyx_L18:;
+6861: candidates = valid_workers
__Pyx_INCREF(__pyx_v_valid_workers); __Pyx_DECREF_SET(__pyx_v_candidates, __pyx_v_valid_workers);
+6862: if not candidates:
__pyx_t_13 = (__pyx_v_candidates != Py_None)&&(PySet_GET_SIZE(__pyx_v_candidates) != 0);
__pyx_t_8 = ((!__pyx_t_13) != 0);
if (__pyx_t_8) {
/* … */
}
+6863: if ts._loose_restrictions:
__pyx_t_8 = (__pyx_v_ts->_loose_restrictions != 0);
if (__pyx_t_8) {
/* … */
}
+6864: return decide_worker(ts, all_workers, None, objective)
__Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_2 = ((PyObject *)__pyx_f_11distributed_9scheduler_decide_worker(__pyx_v_ts, __pyx_v_all_workers, ((PyObject*)Py_None), __pyx_v_objective)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6864, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0;
6865: else:
+6866: return None
/*else*/ {
__Pyx_XDECREF(((PyObject *)__pyx_r));
__pyx_r = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)Py_None); __Pyx_INCREF(Py_None);
goto __pyx_L0;
}
+6867: if not candidates:
__pyx_t_8 = (__pyx_v_candidates != Py_None)&&(PySet_GET_SIZE(__pyx_v_candidates) != 0);
__pyx_t_13 = ((!__pyx_t_8) != 0);
if (__pyx_t_13) {
/* … */
}
+6868: return None
__Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_r = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)Py_None); __Pyx_INCREF(Py_None); goto __pyx_L0;
6869:
+6870: if len(candidates) == 1:
if (unlikely(__pyx_v_candidates == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 6870, __pyx_L1_error)
}
__pyx_t_3 = PySet_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6870, __pyx_L1_error)
__pyx_t_13 = ((__pyx_t_3 == 1) != 0);
if (__pyx_t_13) {
/* … */
goto __pyx_L24;
}
+6871: for ws in candidates:
__pyx_t_3 = 0;
__pyx_t_1 = __Pyx_set_iterator(__pyx_v_candidates, 1, (&__pyx_t_4), (&__pyx_t_5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6871, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__pyx_t_2 = __pyx_t_1;
__pyx_t_1 = 0;
while (1) {
__pyx_t_7 = __Pyx_set_iter_next(__pyx_t_2, __pyx_t_4, &__pyx_t_3, &__pyx_t_1, __pyx_t_5);
if (unlikely(__pyx_t_7 == 0)) break;
if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 6871, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 6871, __pyx_L1_error)
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_1);
__pyx_t_1 = 0;
+6872: break
goto __pyx_L26_break;
}
__pyx_L26_break:;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6873: else:
+6874: ws = min(candidates, key=objective)
/*else*/ {
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6874, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__pyx_v_candidates);
__Pyx_GIVEREF(__pyx_v_candidates);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_candidates);
__pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6874, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_key, __pyx_v_objective) < 0) __PYX_ERR(0, 6874, __pyx_L1_error)
__pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_min, __pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6874, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 6874, __pyx_L1_error)
__pyx_v_ws = ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_6);
__pyx_t_6 = 0;
}
__pyx_L24:;
+6875: return ws
__Pyx_XDECREF(((PyObject *)__pyx_r)); if (unlikely(!__pyx_v_ws)) { __Pyx_RaiseUnboundLocalError("ws"); __PYX_ERR(0, 6875, __pyx_L1_error) } __Pyx_INCREF(((PyObject *)__pyx_v_ws)); __pyx_r = __pyx_v_ws; goto __pyx_L0;
6876:
6877:
+6878: def validate_task_state(ts: TaskState):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_29validate_task_state(PyObject *__pyx_self, PyObject *__pyx_v_ts); /*proto*/
static char __pyx_doc_11distributed_9scheduler_28validate_task_state[] = "\n Validate the given TaskState.\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_29validate_task_state = {"validate_task_state", (PyCFunction)__pyx_pw_11distributed_9scheduler_29validate_task_state, METH_O, __pyx_doc_11distributed_9scheduler_28validate_task_state};
static PyObject *__pyx_pw_11distributed_9scheduler_29validate_task_state(PyObject *__pyx_self, PyObject *__pyx_v_ts) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate_task_state (wrapper)", 0);
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ts), __pyx_ptype_11distributed_9scheduler_TaskState, 1, "ts", 0))) __PYX_ERR(0, 6878, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_28validate_task_state(__pyx_self, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_v_ts));
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_28validate_task_state(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts) {
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_dts = 0;
struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_cs = 0;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_10genexpr154__pyx_v_dts = NULL;
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_10genexpr155__pyx_v_dts = NULL;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_10genexpr156__pyx_v_ws = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate_task_state", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_AddTraceback("distributed.scheduler.validate_task_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF((PyObject *)__pyx_v_dts);
__Pyx_XDECREF((PyObject *)__pyx_v_cs);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr154__pyx_v_dts);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr155__pyx_v_dts);
__Pyx_XDECREF((PyObject *)__pyx_10genexpr156__pyx_v_ws);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__397 = PyTuple_Pack(7, __pyx_n_s_ts, __pyx_n_s_ws, __pyx_n_s_dts, __pyx_n_s_cs, __pyx_n_s_dts, __pyx_n_s_dts, __pyx_n_s_ws); if (unlikely(!__pyx_tuple__397)) __PYX_ERR(0, 6878, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__397);
__Pyx_GIVEREF(__pyx_tuple__397);
/* … */
__pyx_t_16 = PyCFunction_NewEx(&__pyx_mdef_11distributed_9scheduler_29validate_task_state, NULL, __pyx_n_s_distributed_scheduler); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 6878, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_validate_task_state, __pyx_t_16) < 0) __PYX_ERR(0, 6878, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_codeobj__398 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__397, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_validate_task_state, 6878, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__398)) __PYX_ERR(0, 6878, __pyx_L1_error)
6879: """
6880: Validate the given TaskState.
6881: """
6882: ws: WorkerState
6883: dts: TaskState
6884:
+6885: assert ts._state in ALL_TASK_STATES or ts._state == "forgotten", ts
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_11distributed_9scheduler_ALL_TASK_STATES == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 6885, __pyx_L1_error)
}
__pyx_t_2 = (__Pyx_PySet_ContainsTF(__pyx_v_ts->_state, __pyx_v_11distributed_9scheduler_ALL_TASK_STATES, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6885, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_2 != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_1 = __pyx_t_3;
goto __pyx_L3_bool_binop_done;
}
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_forgotten, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6885, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_3 != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L3_bool_binop_done:;
if (unlikely(!__pyx_t_1)) {
__pyx_t_4 = PyTuple_Pack(1, ((PyObject *)__pyx_v_ts)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6885, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
PyErr_SetObject(PyExc_AssertionError, __pyx_t_4);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__PYX_ERR(0, 6885, __pyx_L1_error)
}
}
#endif
6886:
+6887: if ts._waiting_on:
__pyx_t_1 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (__pyx_t_1) {
/* … */
}
+6888: assert ts._waiting_on.issubset(ts._dependencies), (
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_ts->_waiting_on, __pyx_n_s_issubset); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6888, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
if (likely(__pyx_t_6)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_5, function);
}
}
__pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_ts->_dependencies) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_ts->_dependencies);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6888, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 6888, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_1)) {
+6889: "waiting not subset of dependencies",
__pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_kp_u_waiting_not_subset_of_dependenci); __Pyx_GIVEREF(__pyx_kp_u_waiting_not_subset_of_dependenci); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_kp_u_waiting_not_subset_of_dependenci); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5); __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_5 = PyTuple_Pack(1, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; PyErr_SetObject(PyExc_AssertionError, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(0, 6888, __pyx_L1_error) } } #endif
+6890: str(ts._waiting_on),
__pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_ts->_waiting_on); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
+6891: str(ts._dependencies),
__pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_ts->_dependencies); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
6892: )
+6893: if ts._waiters:
__pyx_t_1 = (__pyx_v_ts->_waiters != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiters) != 0);
if (__pyx_t_1) {
/* … */
}
+6894: assert ts._waiters.issubset(ts._dependents), (
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_ts->_waiters, __pyx_n_s_issubset); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6894, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
if (likely(__pyx_t_4)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_6, function);
}
}
__pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_4, __pyx_v_ts->_dependents) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_ts->_dependents);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6894, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 6894, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_1)) {
+6895: "waiters not subset of dependents",
__pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_kp_u_waiters_not_subset_of_dependents); __Pyx_GIVEREF(__pyx_kp_u_waiters_not_subset_of_dependents); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_u_waiters_not_subset_of_dependents); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_6); __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_6 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyErr_SetObject(PyExc_AssertionError, __pyx_t_6); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 6894, __pyx_L1_error) } } #endif
+6896: str(ts._waiters),
__pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_ts->_waiters); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
+6897: str(ts._dependents),
__pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_ts->_dependents); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6);
6898: )
6899:
+6900: for dts in ts._waiting_on:
__pyx_t_7 = 0; __pyx_t_4 = __Pyx_set_iterator(__pyx_v_ts->_waiting_on, 1, (&__pyx_t_8), (&__pyx_t_9)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = __pyx_t_4; __pyx_t_4 = 0; while (1) { __pyx_t_10 = __Pyx_set_iter_next(__pyx_t_6, __pyx_t_8, &__pyx_t_7, &__pyx_t_4, __pyx_t_9); if (unlikely(__pyx_t_10 == 0)) break; if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 6900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 6900, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4)); __pyx_t_4 = 0;
+6901: assert not dts._who_has, ("waiting on in-memory dep", str(ts), str(dts))
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = (__pyx_v_dts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_dts->_who_has) != 0);
if (unlikely(!((!__pyx_t_1) != 0))) {
__pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_ts)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6901, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_dts)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6901, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_11 = PyTuple_New(3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6901, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_INCREF(__pyx_kp_u_waiting_on_in_memory_dep);
__Pyx_GIVEREF(__pyx_kp_u_waiting_on_in_memory_dep);
PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_kp_u_waiting_on_in_memory_dep);
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_5);
PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_5);
__pyx_t_4 = 0;
__pyx_t_5 = 0;
__pyx_t_5 = PyTuple_Pack(1, __pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6901, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
PyErr_SetObject(PyExc_AssertionError, __pyx_t_5);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__PYX_ERR(0, 6901, __pyx_L1_error)
}
}
#endif
+6902: assert dts._state != "released", ("waiting on released dep", str(ts), str(dts))
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_dts->_state, __pyx_n_u_released, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 6902, __pyx_L1_error)
if (unlikely(!(__pyx_t_1 != 0))) {
__pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_ts)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_11 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_dts)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_kp_u_waiting_on_released_dep);
__Pyx_GIVEREF(__pyx_kp_u_waiting_on_released_dep);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_u_waiting_on_released_dep);
__Pyx_GIVEREF(__pyx_t_5);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_11);
PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_11);
__pyx_t_5 = 0;
__pyx_t_11 = 0;
__pyx_t_11 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
PyErr_SetObject(PyExc_AssertionError, __pyx_t_11);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__PYX_ERR(0, 6902, __pyx_L1_error)
}
}
#endif
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+6903: for dts in ts._dependencies:
__pyx_t_8 = 0; __pyx_t_11 = __Pyx_set_iterator(__pyx_v_ts->_dependencies, 1, (&__pyx_t_7), (&__pyx_t_9)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = __pyx_t_11; __pyx_t_11 = 0; while (1) { __pyx_t_10 = __Pyx_set_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_8, &__pyx_t_11, __pyx_t_9); if (unlikely(__pyx_t_10 == 0)) break; if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 6903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (!(likely(((__pyx_t_11) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_11, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 6903, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_11)); __pyx_t_11 = 0;
+6904: assert ts in dts._dependents, (
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_dts->_dependents == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 6904, __pyx_L1_error)
}
__pyx_t_1 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_dts->_dependents, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 6904, __pyx_L1_error)
if (unlikely(!(__pyx_t_1 != 0))) {
+6905: "not in dependency's dependents",
__pyx_t_12 = PyTuple_New(4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_INCREF(__pyx_kp_u_not_in_dependency_s_dependents); __Pyx_GIVEREF(__pyx_kp_u_not_in_dependency_s_dependents); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_kp_u_not_in_dependency_s_dependents); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_12, 2, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_12, 3, __pyx_t_5); __pyx_t_11 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_5 = PyTuple_Pack(1, __pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; PyErr_SetObject(PyExc_AssertionError, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(0, 6904, __pyx_L1_error) } } #endif
+6906: str(ts),
__pyx_t_11 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_ts)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11);
+6907: str(dts),
__pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_dts)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
+6908: str(dts._dependents),
__pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_dts->_dependents); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6908, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
6909: )
+6910: if ts._state in ("waiting", "processing"):
__Pyx_INCREF(__pyx_v_ts->_state); __pyx_t_13 = __pyx_v_ts->_state; __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_13, __pyx_n_u_waiting, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6910, __pyx_L1_error) __pyx_t_3 = (__pyx_t_2 != 0); if (!__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L12_bool_binop_done; } __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_13, __pyx_n_u_processing_2, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6910, __pyx_L1_error) __pyx_t_2 = (__pyx_t_3 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L12_bool_binop_done:; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ }
+6911: assert dts in ts._waiting_on or dts._who_has, (
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_ts->_waiting_on == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 6911, __pyx_L1_error)
}
__pyx_t_1 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_dts), __pyx_v_ts->_waiting_on, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 6911, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_1 != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L14_bool_binop_done;
}
__pyx_t_3 = (__pyx_v_dts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_dts->_who_has) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L14_bool_binop_done:;
if (unlikely(!__pyx_t_2)) {
+6912: "dep missing",
__pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_kp_u_dep_missing); __Pyx_GIVEREF(__pyx_kp_u_dep_missing); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_u_dep_missing); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_12); __pyx_t_5 = 0; __pyx_t_12 = 0; __pyx_t_12 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyErr_SetObject(PyExc_AssertionError, __pyx_t_12); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __PYX_ERR(0, 6911, __pyx_L1_error) } } #endif
+6913: str(ts),
__pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_ts)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
+6914: str(dts),
__pyx_t_12 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_dts)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12);
6915: )
+6916: assert dts._state != "forgotten"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_dts->_state, __pyx_n_u_forgotten, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6916, __pyx_L1_error)
if (unlikely(!(__pyx_t_2 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 6916, __pyx_L1_error)
}
}
#endif
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6917:
+6918: for dts in ts._waiters:
__pyx_t_7 = 0; __pyx_t_12 = __Pyx_set_iterator(__pyx_v_ts->_waiters, 1, (&__pyx_t_8), (&__pyx_t_9)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = __pyx_t_12; __pyx_t_12 = 0; while (1) { __pyx_t_10 = __Pyx_set_iter_next(__pyx_t_6, __pyx_t_8, &__pyx_t_7, &__pyx_t_12, __pyx_t_9); if (unlikely(__pyx_t_10 == 0)) break; if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 6918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 6918, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_12)); __pyx_t_12 = 0;
+6919: assert dts._state in ("waiting", "processing"), (
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__Pyx_INCREF(__pyx_v_dts->_state);
__pyx_t_13 = __pyx_v_dts->_state;
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_13, __pyx_n_u_waiting, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6919, __pyx_L1_error)
__pyx_t_1 = (__pyx_t_3 != 0);
if (!__pyx_t_1) {
} else {
__pyx_t_2 = __pyx_t_1;
goto __pyx_L18_bool_binop_done;
}
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_13, __pyx_n_u_processing_2, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 6919, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_1 != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L18_bool_binop_done:;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (unlikely(!(__pyx_t_2 != 0))) {
+6920: "waiter not in play",
__pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_kp_u_waiter_not_in_play); __Pyx_GIVEREF(__pyx_kp_u_waiter_not_in_play); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_kp_u_waiter_not_in_play); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4); __pyx_t_12 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyErr_SetObject(PyExc_AssertionError, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(0, 6919, __pyx_L1_error) } } #endif } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+6921: str(ts),
__pyx_t_12 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_ts)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12);
+6922: str(dts),
__pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_dts)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
6923: )
+6924: for dts in ts._dependents:
__pyx_t_8 = 0; __pyx_t_4 = __Pyx_set_iterator(__pyx_v_ts->_dependents, 1, (&__pyx_t_7), (&__pyx_t_9)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = __pyx_t_4; __pyx_t_4 = 0; while (1) { __pyx_t_10 = __Pyx_set_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_8, &__pyx_t_4, __pyx_t_9); if (unlikely(__pyx_t_10 == 0)) break; if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 6924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 6924, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_4)); __pyx_t_4 = 0;
+6925: assert ts in dts._dependencies, (
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_dts->_dependencies == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 6925, __pyx_L1_error)
}
__pyx_t_2 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_dts->_dependencies, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6925, __pyx_L1_error)
if (unlikely(!(__pyx_t_2 != 0))) {
+6926: "not in dependent's dependencies",
__pyx_t_11 = PyTuple_New(4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_kp_u_not_in_dependent_s_dependencies); __Pyx_GIVEREF(__pyx_kp_u_not_in_dependent_s_dependencies); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_kp_u_not_in_dependent_s_dependencies); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_11, 3, __pyx_t_12); __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_12 = 0; __pyx_t_12 = PyTuple_Pack(1, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; PyErr_SetObject(PyExc_AssertionError, __pyx_t_12); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __PYX_ERR(0, 6925, __pyx_L1_error) } } #endif
+6927: str(ts),
__pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_ts)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
+6928: str(dts),
__pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_dts)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
+6929: str(dts._dependencies),
__pyx_t_12 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_dts->_dependencies); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12);
6930: )
+6931: assert dts._state != "forgotten"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_dts->_state, __pyx_n_u_forgotten, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6931, __pyx_L1_error)
if (unlikely(!(__pyx_t_2 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 6931, __pyx_L1_error)
}
}
#endif
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6932:
+6933: assert (ts._processing_on is not None) == (ts._state == "processing")
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (((PyObject *)__pyx_v_ts->_processing_on) != Py_None);
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_processing_2, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6933, __pyx_L1_error)
if (unlikely(!((__pyx_t_2 == __pyx_t_3) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 6933, __pyx_L1_error)
}
}
#endif
+6934: assert (not not ts._who_has) == (ts._state == "memory"), (ts, ts._who_has)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_3 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_memory_2, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6934, __pyx_L1_error)
if (unlikely(!(((!((!__pyx_t_3) != 0)) == __pyx_t_2) != 0))) {
__pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6934, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_INCREF(((PyObject *)__pyx_v_ts));
__Pyx_GIVEREF(((PyObject *)__pyx_v_ts));
PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_ts));
__Pyx_INCREF(__pyx_v_ts->_who_has);
__Pyx_GIVEREF(__pyx_v_ts->_who_has);
PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_ts->_who_has);
__pyx_t_12 = PyTuple_Pack(1, __pyx_t_6); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6934, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
PyErr_SetObject(PyExc_AssertionError, __pyx_t_12);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__PYX_ERR(0, 6934, __pyx_L1_error)
}
}
#endif
6935:
+6936: if ts._state == "processing":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_processing_2, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6936, __pyx_L1_error) __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* … */ }
+6937: assert all([dts._who_has for dts in ts._dependencies]), (
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
{ /* enter inner scope */
__pyx_t_12 = PyList_New(0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6937, __pyx_L25_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_7 = 0;
__pyx_t_11 = __Pyx_set_iterator(__pyx_v_ts->_dependencies, 1, (&__pyx_t_8), (&__pyx_t_9)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6937, __pyx_L25_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_6);
__pyx_t_6 = __pyx_t_11;
__pyx_t_11 = 0;
while (1) {
__pyx_t_10 = __Pyx_set_iter_next(__pyx_t_6, __pyx_t_8, &__pyx_t_7, &__pyx_t_11, __pyx_t_9);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 6937, __pyx_L25_error)
__Pyx_GOTREF(__pyx_t_11);
if (!(likely(((__pyx_t_11) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_11, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 6937, __pyx_L25_error)
__Pyx_XDECREF_SET(__pyx_10genexpr154__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_11));
__pyx_t_11 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_12, (PyObject*)__pyx_10genexpr154__pyx_v_dts->_who_has))) __PYX_ERR(0, 6937, __pyx_L25_error)
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr154__pyx_v_dts); __pyx_10genexpr154__pyx_v_dts = 0;
goto __pyx_L28_exit_scope;
__pyx_L25_error:;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr154__pyx_v_dts); __pyx_10genexpr154__pyx_v_dts = 0;
goto __pyx_L1_error;
__pyx_L28_exit_scope:;
} /* exit inner scope */
__pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_12); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6937, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6937, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_3)) {
+6938: "task processing without all deps",
__pyx_t_11 = PyTuple_New(3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_kp_u_task_processing_without_all_deps); __Pyx_GIVEREF(__pyx_kp_u_task_processing_without_all_deps); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_kp_u_task_processing_without_all_deps); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_12); __pyx_t_6 = 0; __pyx_t_12 = 0; __pyx_t_12 = PyTuple_Pack(1, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; PyErr_SetObject(PyExc_AssertionError, __pyx_t_12); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __PYX_ERR(0, 6937, __pyx_L1_error) } } #endif
+6939: str(ts),
__pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_ts)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6);
+6940: str(ts._dependencies),
__pyx_t_12 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_ts->_dependencies); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12);
6941: )
+6942: assert not ts._waiting_on
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_3 = (__pyx_v_ts->_waiting_on != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiting_on) != 0);
if (unlikely(!((!__pyx_t_3) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 6942, __pyx_L1_error)
}
}
#endif
6943:
+6944: if ts._who_has:
__pyx_t_3 = (__pyx_v_ts->_who_has != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_has) != 0);
if (__pyx_t_3) {
/* … */
}
+6945: assert ts._waiters or ts._who_wants, (
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (__pyx_v_ts->_waiters != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_waiters) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L30_bool_binop_done;
}
__pyx_t_2 = (__pyx_v_ts->_who_wants != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_wants) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L30_bool_binop_done:;
if (unlikely(!__pyx_t_3)) {
+6946: "unneeded task in memory",
__pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6946, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_kp_u_unneeded_task_in_memory); __Pyx_GIVEREF(__pyx_kp_u_unneeded_task_in_memory); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_kp_u_unneeded_task_in_memory); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_11); __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_11 = PyTuple_Pack(1, __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6946, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; PyErr_SetObject(PyExc_AssertionError, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 6945, __pyx_L1_error) } } #endif
+6947: str(ts),
__pyx_t_12 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_ts)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12);
+6948: str(ts._who_has),
__pyx_t_11 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_ts->_who_has); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11);
6949: )
+6950: if ts._run_spec: # was computed
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_ts->_run_spec); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6950, __pyx_L1_error) if (__pyx_t_3) { /* … */ }
+6951: assert ts._type
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_3 = (__pyx_v_ts->_type != Py_None)&&(__Pyx_PyUnicode_IS_TRUE(__pyx_v_ts->_type) != 0);
if (unlikely(!__pyx_t_3)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 6951, __pyx_L1_error)
}
}
#endif
+6952: assert isinstance(ts._type, str)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_11 = __pyx_v_ts->_type;
__Pyx_INCREF(__pyx_t_11);
__pyx_t_3 = PyUnicode_Check(__pyx_t_11);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(!(__pyx_t_3 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 6952, __pyx_L1_error)
}
}
#endif
+6953: assert not any([ts in dts._waiting_on for dts in ts._dependents])
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
{ /* enter inner scope */
__pyx_t_11 = PyList_New(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6953, __pyx_L35_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_8 = 0;
__pyx_t_12 = __Pyx_set_iterator(__pyx_v_ts->_dependents, 1, (&__pyx_t_7), (&__pyx_t_9)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6953, __pyx_L35_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_6);
__pyx_t_6 = __pyx_t_12;
__pyx_t_12 = 0;
while (1) {
__pyx_t_10 = __Pyx_set_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_8, &__pyx_t_12, __pyx_t_9);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 6953, __pyx_L35_error)
__Pyx_GOTREF(__pyx_t_12);
if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 6953, __pyx_L35_error)
__Pyx_XDECREF_SET(__pyx_10genexpr155__pyx_v_dts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_12));
__pyx_t_12 = 0;
if (unlikely(__pyx_10genexpr155__pyx_v_dts->_waiting_on == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 6953, __pyx_L35_error)
}
__pyx_t_3 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_10genexpr155__pyx_v_dts->_waiting_on, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6953, __pyx_L35_error)
__pyx_t_12 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6953, __pyx_L35_error)
__Pyx_GOTREF(__pyx_t_12);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_11, (PyObject*)__pyx_t_12))) __PYX_ERR(0, 6953, __pyx_L35_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr155__pyx_v_dts); __pyx_10genexpr155__pyx_v_dts = 0;
goto __pyx_L38_exit_scope;
__pyx_L35_error:;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr155__pyx_v_dts); __pyx_10genexpr155__pyx_v_dts = 0;
goto __pyx_L1_error;
__pyx_L38_exit_scope:;
} /* exit inner scope */
__pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_any, __pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6953, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6953, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!((!__pyx_t_3) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 6953, __pyx_L1_error)
}
}
#endif
+6954: for ws in ts._who_has:
__pyx_t_7 = 0;
__pyx_t_11 = __Pyx_set_iterator(__pyx_v_ts->_who_has, 1, (&__pyx_t_8), (&__pyx_t_9)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6954, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_6);
__pyx_t_6 = __pyx_t_11;
__pyx_t_11 = 0;
while (1) {
__pyx_t_10 = __Pyx_set_iter_next(__pyx_t_6, __pyx_t_8, &__pyx_t_7, &__pyx_t_11, __pyx_t_9);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 6954, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
if (!(likely(((__pyx_t_11) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_11, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 6954, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_11));
__pyx_t_11 = 0;
+6955: assert ts in ws._has_what, (
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_ws->_has_what == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 6955, __pyx_L1_error)
}
__pyx_t_3 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_ws->_has_what, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6955, __pyx_L1_error)
if (unlikely(!(__pyx_t_3 != 0))) {
+6956: "not in who_has' has_what",
__pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_kp_u_not_in_who_has_has_what); __Pyx_GIVEREF(__pyx_kp_u_not_in_who_has_has_what); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_u_not_in_who_has_has_what); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_5); __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_5 = 0; __pyx_t_5 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyErr_SetObject(PyExc_AssertionError, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(0, 6955, __pyx_L1_error) } } #endif } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+6957: str(ts),
__pyx_t_11 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_ts)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11);
+6958: str(ws),
__pyx_t_12 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_ws)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12);
+6959: str(ws._has_what),
__pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_ws->_has_what); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
6960: )
6961:
+6962: if ts._who_wants:
__pyx_t_3 = (__pyx_v_ts->_who_wants != Py_None)&&(PySet_GET_SIZE(__pyx_v_ts->_who_wants) != 0);
if (__pyx_t_3) {
/* … */
}
6963: cs: ClientState
+6964: for cs in ts._who_wants:
__pyx_t_8 = 0;
__pyx_t_5 = __Pyx_set_iterator(__pyx_v_ts->_who_wants, 1, (&__pyx_t_7), (&__pyx_t_9)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6964, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__pyx_t_6 = __pyx_t_5;
__pyx_t_5 = 0;
while (1) {
__pyx_t_10 = __Pyx_set_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_8, &__pyx_t_5, __pyx_t_9);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 6964, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 6964, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_cs, ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_5));
__pyx_t_5 = 0;
+6965: assert ts in cs._wants_what, (
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_cs->_wants_what == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 6965, __pyx_L1_error)
}
__pyx_t_3 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_v_cs->_wants_what, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6965, __pyx_L1_error)
if (unlikely(!(__pyx_t_3 != 0))) {
+6966: "not in who_wants' wants_what",
__pyx_t_11 = PyTuple_New(4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_kp_u_not_in_who_wants_wants_what); __Pyx_GIVEREF(__pyx_kp_u_not_in_who_wants_wants_what); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_kp_u_not_in_who_wants_wants_what); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_11, 3, __pyx_t_12); __pyx_t_5 = 0; __pyx_t_4 = 0; __pyx_t_12 = 0; __pyx_t_12 = PyTuple_Pack(1, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; PyErr_SetObject(PyExc_AssertionError, __pyx_t_12); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __PYX_ERR(0, 6965, __pyx_L1_error) } } #endif } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+6967: str(ts),
__pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_ts)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
+6968: str(cs),
__pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_cs)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
+6969: str(cs._wants_what),
__pyx_t_12 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_cs->_wants_what); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12);
6970: )
6971:
+6972: if ts._actor:
__pyx_t_3 = (__pyx_v_ts->_actor != 0);
if (__pyx_t_3) {
/* … */
}
+6973: if ts._state == "memory":
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_memory_2, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6973, __pyx_L1_error) __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { /* … */ }
+6974: assert sum([ts in ws._actors for ws in ts._who_has]) == 1
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
{ /* enter inner scope */
__pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6974, __pyx_L48_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = 0;
__pyx_t_11 = __Pyx_set_iterator(__pyx_v_ts->_who_has, 1, (&__pyx_t_8), (&__pyx_t_9)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6974, __pyx_L48_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__pyx_t_12 = __pyx_t_11;
__pyx_t_11 = 0;
while (1) {
__pyx_t_10 = __Pyx_set_iter_next(__pyx_t_12, __pyx_t_8, &__pyx_t_7, &__pyx_t_11, __pyx_t_9);
if (unlikely(__pyx_t_10 == 0)) break;
if (unlikely(__pyx_t_10 == -1)) __PYX_ERR(0, 6974, __pyx_L48_error)
__Pyx_GOTREF(__pyx_t_11);
if (!(likely(((__pyx_t_11) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_11, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 6974, __pyx_L48_error)
__Pyx_XDECREF_SET(__pyx_10genexpr156__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_11));
__pyx_t_11 = 0;
if (unlikely(__pyx_10genexpr156__pyx_v_ws->_actors == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 6974, __pyx_L48_error)
}
__pyx_t_2 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_10genexpr156__pyx_v_ws->_actors, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6974, __pyx_L48_error)
__pyx_t_11 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6974, __pyx_L48_error)
__Pyx_GOTREF(__pyx_t_11);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_6, (PyObject*)__pyx_t_11))) __PYX_ERR(0, 6974, __pyx_L48_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
}
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr156__pyx_v_ws); __pyx_10genexpr156__pyx_v_ws = 0;
goto __pyx_L51_exit_scope;
__pyx_L48_error:;
__Pyx_XDECREF((PyObject *)__pyx_10genexpr156__pyx_v_ws); __pyx_10genexpr156__pyx_v_ws = 0;
goto __pyx_L1_error;
__pyx_L51_exit_scope:;
} /* exit inner scope */
__pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_6); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6974, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_t_12, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6974, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6974, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_2)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 6974, __pyx_L1_error)
}
}
#endif
+6975: if ts._state == "processing":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_ts->_state, __pyx_n_u_processing_2, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 6975, __pyx_L1_error) __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* … */ }
+6976: assert ts in ts._processing_on.actors
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_ts->_processing_on), __pyx_n_s_actors); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6976, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_3 = (__Pyx_PySequence_ContainsTF(((PyObject *)__pyx_v_ts), __pyx_t_6, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6976, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!(__pyx_t_3 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 6976, __pyx_L1_error)
}
}
#endif
6977:
6978:
+6979: def validate_worker_state(ws: WorkerState):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_31validate_worker_state(PyObject *__pyx_self, PyObject *__pyx_v_ws); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_31validate_worker_state = {"validate_worker_state", (PyCFunction)__pyx_pw_11distributed_9scheduler_31validate_worker_state, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_31validate_worker_state(PyObject *__pyx_self, PyObject *__pyx_v_ws) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate_worker_state (wrapper)", 0);
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ws), __pyx_ptype_11distributed_9scheduler_WorkerState, 1, "ws", 0))) __PYX_ERR(0, 6979, __pyx_L1_error)
__pyx_r = __pyx_pf_11distributed_9scheduler_30validate_worker_state(__pyx_self, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_v_ws));
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_30validate_worker_state(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate_worker_state", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("distributed.scheduler.validate_worker_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__399 = PyTuple_Pack(2, __pyx_n_s_ws, __pyx_n_s_ts); if (unlikely(!__pyx_tuple__399)) __PYX_ERR(0, 6979, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__399);
__Pyx_GIVEREF(__pyx_tuple__399);
/* … */
__pyx_t_16 = PyCFunction_NewEx(&__pyx_mdef_11distributed_9scheduler_31validate_worker_state, NULL, __pyx_n_s_distributed_scheduler); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 6979, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_validate_worker_state, __pyx_t_16) < 0) __PYX_ERR(0, 6979, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_codeobj__400 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_validate_worker_state, 6979, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__400)) __PYX_ERR(0, 6979, __pyx_L1_error)
6980: ts: TaskState
+6981: for ts in ws._has_what:
__pyx_t_2 = 0; __pyx_t_5 = __Pyx_set_iterator(__pyx_v_ws->_has_what, 1, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_5; __pyx_t_5 = 0; while (1) { __pyx_t_6 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, __pyx_t_4); if (unlikely(__pyx_t_6 == 0)) break; if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 6981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 6981, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_5)); __pyx_t_5 = 0;
+6982: assert ws in ts._who_has, (
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_ts->_who_has == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 6982, __pyx_L1_error)
}
__pyx_t_7 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_ws), __pyx_v_ts->_who_has, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 6982, __pyx_L1_error)
if (unlikely(!(__pyx_t_7 != 0))) {
+6983: "not in has_what' who_has",
__pyx_t_10 = PyTuple_New(4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 6983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_INCREF(__pyx_kp_u_not_in_has_what_who_has); __Pyx_GIVEREF(__pyx_kp_u_not_in_has_what_who_has); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_kp_u_not_in_has_what_who_has); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_10, 3, __pyx_t_9); __pyx_t_5 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_9 = PyTuple_Pack(1, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; PyErr_SetObject(PyExc_AssertionError, __pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __PYX_ERR(0, 6982, __pyx_L1_error) } } #endif } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+6984: str(ws),
__pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_ws)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
+6985: str(ts),
__pyx_t_8 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_ts)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8);
+6986: str(ts._who_has),
__pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_ts->_who_has); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9);
6987: )
6988:
+6989: for ts in ws._actors:
__pyx_t_3 = 0; __pyx_t_9 = __Pyx_set_iterator(__pyx_v_ws->_actors, 1, (&__pyx_t_2), (&__pyx_t_4)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 6989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_9; __pyx_t_9 = 0; while (1) { __pyx_t_6 = __Pyx_set_iter_next(__pyx_t_1, __pyx_t_2, &__pyx_t_3, &__pyx_t_9, __pyx_t_4); if (unlikely(__pyx_t_6 == 0)) break; if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 6989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 6989, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_9)); __pyx_t_9 = 0;
+6990: assert ts._state in ("memory", "processing")
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__Pyx_INCREF(__pyx_v_ts->_state);
__pyx_t_11 = __pyx_v_ts->_state;
__pyx_t_12 = (__Pyx_PyUnicode_Equals(__pyx_t_11, __pyx_n_u_memory_2, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 6990, __pyx_L1_error)
__pyx_t_13 = (__pyx_t_12 != 0);
if (!__pyx_t_13) {
} else {
__pyx_t_7 = __pyx_t_13;
goto __pyx_L7_bool_binop_done;
}
__pyx_t_13 = (__Pyx_PyUnicode_Equals(__pyx_t_11, __pyx_n_u_processing_2, Py_EQ)); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 6990, __pyx_L1_error)
__pyx_t_12 = (__pyx_t_13 != 0);
__pyx_t_7 = __pyx_t_12;
__pyx_L7_bool_binop_done:;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(!(__pyx_t_7 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 6990, __pyx_L1_error)
}
}
#endif
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6991:
6992:
+6993: def validate_state(tasks, workers, clients):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_33validate_state(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_11distributed_9scheduler_32validate_state[] = "\n Validate a current runtime state\n\n This performs a sequence of checks on the entire graph, running in about\n linear time. This raises assert errors if anything doesn't check out.\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_33validate_state = {"validate_state", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_33validate_state, METH_VARARGS|METH_KEYWORDS, __pyx_doc_11distributed_9scheduler_32validate_state};
static PyObject *__pyx_pw_11distributed_9scheduler_33validate_state(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_tasks = 0;
PyObject *__pyx_v_workers = 0;
PyObject *__pyx_v_clients = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate_state (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tasks,&__pyx_n_s_workers,&__pyx_n_s_clients,0};
PyObject* values[3] = {0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tasks)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_workers)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("validate_state", 1, 3, 3, 1); __PYX_ERR(0, 6993, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_clients)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("validate_state", 1, 3, 3, 2); __PYX_ERR(0, 6993, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "validate_state") < 0)) __PYX_ERR(0, 6993, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
}
__pyx_v_tasks = values[0];
__pyx_v_workers = values[1];
__pyx_v_clients = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("validate_state", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6993, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.validate_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_32validate_state(__pyx_self, __pyx_v_tasks, __pyx_v_workers, __pyx_v_clients);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_32validate_state(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_tasks, PyObject *__pyx_v_workers, PyObject *__pyx_v_clients) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
struct __pyx_obj_11distributed_9scheduler_WorkerState *__pyx_v_ws = 0;
struct __pyx_obj_11distributed_9scheduler_ClientState *__pyx_v_cs = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("validate_state", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("distributed.scheduler.validate_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XDECREF((PyObject *)__pyx_v_ws);
__Pyx_XDECREF((PyObject *)__pyx_v_cs);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__401 = PyTuple_Pack(6, __pyx_n_s_tasks, __pyx_n_s_workers, __pyx_n_s_clients, __pyx_n_s_ts, __pyx_n_s_ws, __pyx_n_s_cs); if (unlikely(!__pyx_tuple__401)) __PYX_ERR(0, 6993, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__401);
__Pyx_GIVEREF(__pyx_tuple__401);
/* … */
__pyx_t_16 = PyCFunction_NewEx(&__pyx_mdef_11distributed_9scheduler_33validate_state, NULL, __pyx_n_s_distributed_scheduler); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 6993, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_validate_state, __pyx_t_16) < 0) __PYX_ERR(0, 6993, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_codeobj__402 = (PyObject*)__Pyx_PyCode_New(3, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__401, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_validate_state, 6993, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__402)) __PYX_ERR(0, 6993, __pyx_L1_error)
6994: """
6995: Validate a current runtime state
6996:
6997: This performs a sequence of checks on the entire graph, running in about
6998: linear time. This raises assert errors if anything doesn't check out.
6999: """
7000: ts: TaskState
+7001: for ts in tasks.values():
__pyx_t_2 = 0;
if (unlikely(__pyx_v_tasks == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
__PYX_ERR(0, 7001, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_dict_iterator(__pyx_v_tasks, 0, __pyx_n_s_values, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7001, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_5;
__pyx_t_5 = 0;
while (1) {
__pyx_t_6 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, NULL, &__pyx_t_5, NULL, __pyx_t_4);
if (unlikely(__pyx_t_6 == 0)) break;
if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 7001, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 7001, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_5));
__pyx_t_5 = 0;
+7002: validate_task_state(ts)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_validate_task_state); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 7002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_5 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, ((PyObject *)__pyx_v_ts)) : __Pyx_PyObject_CallOneArg(__pyx_t_7, ((PyObject *)__pyx_v_ts)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7003:
7004: ws: WorkerState
+7005: for ws in workers.values():
__pyx_t_3 = 0;
if (unlikely(__pyx_v_workers == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
__PYX_ERR(0, 7005, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_dict_iterator(__pyx_v_workers, 0, __pyx_n_s_values, (&__pyx_t_2), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7005, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_5;
__pyx_t_5 = 0;
while (1) {
__pyx_t_6 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_2, &__pyx_t_3, NULL, &__pyx_t_5, NULL, __pyx_t_4);
if (unlikely(__pyx_t_6 == 0)) break;
if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 7005, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_WorkerState))))) __PYX_ERR(0, 7005, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ws, ((struct __pyx_obj_11distributed_9scheduler_WorkerState *)__pyx_t_5));
__pyx_t_5 = 0;
+7006: validate_worker_state(ws)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_validate_worker_state); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 7006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_5 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, ((PyObject *)__pyx_v_ws)) : __Pyx_PyObject_CallOneArg(__pyx_t_7, ((PyObject *)__pyx_v_ws)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7007:
7008: cs: ClientState
+7009: for cs in clients.values():
__pyx_t_2 = 0;
if (unlikely(__pyx_v_clients == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
__PYX_ERR(0, 7009, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_dict_iterator(__pyx_v_clients, 0, __pyx_n_s_values, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7009, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_5;
__pyx_t_5 = 0;
while (1) {
__pyx_t_6 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, NULL, &__pyx_t_5, NULL, __pyx_t_4);
if (unlikely(__pyx_t_6 == 0)) break;
if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 7009, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_11distributed_9scheduler_ClientState))))) __PYX_ERR(0, 7009, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_cs, ((struct __pyx_obj_11distributed_9scheduler_ClientState *)__pyx_t_5));
__pyx_t_5 = 0;
+7010: for ts in cs._wants_what:
__pyx_t_9 = 0;
__pyx_t_7 = __Pyx_set_iterator(__pyx_v_cs->_wants_what, 1, (&__pyx_t_10), (&__pyx_t_6)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 7010, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_5);
__pyx_t_5 = __pyx_t_7;
__pyx_t_7 = 0;
while (1) {
__pyx_t_11 = __Pyx_set_iter_next(__pyx_t_5, __pyx_t_10, &__pyx_t_9, &__pyx_t_7, __pyx_t_6);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 7010, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 7010, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_7));
__pyx_t_7 = 0;
+7011: assert cs in ts._who_wants, (
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(__pyx_v_ts->_who_wants == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 7011, __pyx_L1_error)
}
__pyx_t_12 = (__Pyx_PySet_ContainsTF(((PyObject *)__pyx_v_cs), __pyx_v_ts->_who_wants, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 7011, __pyx_L1_error)
if (unlikely(!(__pyx_t_12 != 0))) {
+7012: "not in wants_what' who_wants",
__pyx_t_14 = PyTuple_New(4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 7012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF(__pyx_kp_u_not_in_wants_what_who_wants); __Pyx_GIVEREF(__pyx_kp_u_not_in_wants_what_who_wants); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_kp_u_not_in_wants_what_who_wants); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_14, 3, __pyx_t_13); __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_13 = 0; __pyx_t_13 = PyTuple_Pack(1, __pyx_t_14); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 7012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; PyErr_SetObject(PyExc_AssertionError, __pyx_t_13); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __PYX_ERR(0, 7011, __pyx_L1_error) } } #endif } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+7013: str(cs),
__pyx_t_7 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_cs)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 7013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7);
+7014: str(ts),
__pyx_t_8 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), ((PyObject *)__pyx_v_ts)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7014, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8);
+7015: str(ts._who_wants),
__pyx_t_13 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_ts->_who_wants); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 7015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13);
7016: )
7017:
7018:
+7019: _round_robin = [0]
__pyx_t_16 = PyList_New(1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 7019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_16, 0, __pyx_int_0); if (PyDict_SetItem(__pyx_d, __pyx_n_s_round_robin, __pyx_t_16) < 0) __PYX_ERR(0, 7019, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
7020:
7021:
+7022: def heartbeat_interval(n):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_35heartbeat_interval(PyObject *__pyx_self, PyObject *__pyx_v_n); /*proto*/
static char __pyx_doc_11distributed_9scheduler_34heartbeat_interval[] = "\n Interval in seconds that we desire heartbeats based on number of workers\n ";
static PyMethodDef __pyx_mdef_11distributed_9scheduler_35heartbeat_interval = {"heartbeat_interval", (PyCFunction)__pyx_pw_11distributed_9scheduler_35heartbeat_interval, METH_O, __pyx_doc_11distributed_9scheduler_34heartbeat_interval};
static PyObject *__pyx_pw_11distributed_9scheduler_35heartbeat_interval(PyObject *__pyx_self, PyObject *__pyx_v_n) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("heartbeat_interval (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_34heartbeat_interval(__pyx_self, ((PyObject *)__pyx_v_n));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_34heartbeat_interval(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_n) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("heartbeat_interval", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("distributed.scheduler.heartbeat_interval", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__403 = PyTuple_Pack(1, __pyx_n_s_n); if (unlikely(!__pyx_tuple__403)) __PYX_ERR(0, 7022, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__403);
__Pyx_GIVEREF(__pyx_tuple__403);
/* … */
__pyx_t_16 = PyCFunction_NewEx(&__pyx_mdef_11distributed_9scheduler_35heartbeat_interval, NULL, __pyx_n_s_distributed_scheduler); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 7022, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_heartbeat_interval_2, __pyx_t_16) < 0) __PYX_ERR(0, 7022, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_codeobj__404 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__403, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_heartbeat_interval_2, 7022, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__404)) __PYX_ERR(0, 7022, __pyx_L1_error)
7023: """
7024: Interval in seconds that we desire heartbeats based on number of workers
7025: """
+7026: if n <= 10:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_n, __pyx_int_10, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7026, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 7026, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+7027: return 0.5
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_float_0_5); __pyx_r = __pyx_float_0_5; goto __pyx_L0;
+7028: elif n < 50:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_n, __pyx_int_50, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7028, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 7028, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+7029: return 1
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_int_1); __pyx_r = __pyx_int_1; goto __pyx_L0;
+7030: elif n < 200:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_n, __pyx_int_200, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7030, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 7030, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+7031: return 2
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_int_2); __pyx_r = __pyx_int_2; goto __pyx_L0;
7032: else:
7033: # no more than 200 hearbeats a second scaled by workers
+7034: return n / 200 + 1
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_TrueDivideObjC(__pyx_v_n, __pyx_int_200, 0xC8, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7034, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7034, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
}
7035:
7036:
+7037: class KilledWorker(Exception):
__pyx_t_16 = PyTuple_New(1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 7037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_INCREF(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); __Pyx_GIVEREF(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); PyTuple_SET_ITEM(__pyx_t_16, 0, ((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); __pyx_t_15 = __Pyx_CalculateMetaclass(NULL, __pyx_t_16); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_14 = __Pyx_Py3MetaclassPrepare(__pyx_t_15, __pyx_t_16, __pyx_n_s_KilledWorker, __pyx_n_s_KilledWorker, (PyObject *) NULL, __pyx_n_s_distributed_scheduler, (PyObject *) NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 7037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_9 = PyList_New(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 7037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); /* … */ __pyx_t_13 = __Pyx_Py3ClassCreate(__pyx_t_15, __pyx_n_s_KilledWorker, __pyx_t_16, __pyx_t_14, NULL, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 7037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (__Pyx_CyFunction_InitClassCell(__pyx_t_9, __pyx_t_13) < 0) __PYX_ERR(0, 7037, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_KilledWorker, __pyx_t_13) < 0) __PYX_ERR(0, 7037, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+7038: def __init__(self, task, last_worker):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_12KilledWorker_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_12KilledWorker_1__init__ = {"__init__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_12KilledWorker_1__init__, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_12KilledWorker_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_task = 0;
PyObject *__pyx_v_last_worker = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_task,&__pyx_n_s_last_worker,0};
PyObject* values[3] = {0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_task)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); __PYX_ERR(0, 7038, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_worker)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); __PYX_ERR(0, 7038, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 7038, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
}
__pyx_v_self = values[0];
__pyx_v_task = values[1];
__pyx_v_last_worker = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7038, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.KilledWorker.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_12KilledWorker___init__(__pyx_self, __pyx_v_self, __pyx_v_task, __pyx_v_last_worker);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_12KilledWorker___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_task, PyObject *__pyx_v_last_worker) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler.KilledWorker.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__405 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_task, __pyx_n_s_last_worker); if (unlikely(!__pyx_tuple__405)) __PYX_ERR(0, 7038, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__405);
__Pyx_GIVEREF(__pyx_tuple__405);
/* … */
__pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_12KilledWorker_1__init__, 0, __pyx_n_s_KilledWorker___init, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__406)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 7038, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_INCREF(__pyx_t_13);
PyList_Append(__pyx_t_9, __pyx_t_13);
__Pyx_GIVEREF(__pyx_t_13);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_init, __pyx_t_13) < 0) __PYX_ERR(0, 7038, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_codeobj__406 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__405, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_init, 7038, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__406)) __PYX_ERR(0, 7038, __pyx_L1_error)
+7039: super().__init__(task, last_worker)
__pyx_t_2 = __Pyx_CyFunction_GetClassObj(__pyx_self); if (!__pyx_t_2) { PyErr_SetString(PyExc_SystemError, "super(): empty __class__ cell"); __PYX_ERR(0, 7039, __pyx_L1_error) } __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __Pyx_INCREF(__pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_task, __pyx_v_last_worker}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7039, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_task, __pyx_v_last_worker}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7039, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_v_task); __Pyx_GIVEREF(__pyx_v_task); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_task); __Pyx_INCREF(__pyx_v_last_worker); __Pyx_GIVEREF(__pyx_v_last_worker); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_last_worker); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+7040: self.task = task
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_task, __pyx_v_task) < 0) __PYX_ERR(0, 7040, __pyx_L1_error)
+7041: self.last_worker = last_worker
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_last_worker, __pyx_v_last_worker) < 0) __PYX_ERR(0, 7041, __pyx_L1_error)
7042:
7043:
+7044: class WorkerStatusPlugin(SchedulerPlugin):
__Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_SchedulerPlugin); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 7044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_CalculateMetaclass(NULL, __pyx_t_15); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 7044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_14 = __Pyx_Py3MetaclassPrepare(__pyx_t_16, __pyx_t_15, __pyx_n_s_WorkerStatusPlugin, __pyx_n_s_WorkerStatusPlugin, (PyObject *) NULL, __pyx_n_s_distributed_scheduler, __pyx_kp_s_An_plugin_to_share_worker_statu); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 7044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); /* … */ __pyx_t_13 = __Pyx_Py3ClassCreate(__pyx_t_16, __pyx_n_s_WorkerStatusPlugin, __pyx_t_15, __pyx_t_14, NULL, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 7044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (PyDict_SetItem(__pyx_d, __pyx_n_s_WorkerStatusPlugin, __pyx_t_13) < 0) __PYX_ERR(0, 7044, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
7045: """
7046: An plugin to share worker status with a remote observer
7047:
7048: This is used in cluster managers to keep updated about the status of the
7049: scheduler.
7050: """
7051:
+7052: def __init__(self, scheduler, comm):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_18WorkerStatusPlugin_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_18WorkerStatusPlugin_1__init__ = {"__init__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_18WorkerStatusPlugin_1__init__, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_18WorkerStatusPlugin_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_scheduler = 0;
PyObject *__pyx_v_comm = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_scheduler,&__pyx_n_s_comm,0};
PyObject* values[3] = {0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scheduler)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); __PYX_ERR(0, 7052, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); __PYX_ERR(0, 7052, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 7052, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
}
__pyx_v_self = values[0];
__pyx_v_scheduler = values[1];
__pyx_v_comm = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7052, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.WorkerStatusPlugin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_18WorkerStatusPlugin___init__(__pyx_self, __pyx_v_self, __pyx_v_scheduler, __pyx_v_comm);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_18WorkerStatusPlugin___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_scheduler, PyObject *__pyx_v_comm) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("distributed.scheduler.WorkerStatusPlugin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__407 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_scheduler, __pyx_n_s_comm); if (unlikely(!__pyx_tuple__407)) __PYX_ERR(0, 7052, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__407);
__Pyx_GIVEREF(__pyx_tuple__407);
/* … */
__pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_18WorkerStatusPlugin_1__init__, 0, __pyx_n_s_WorkerStatusPlugin___init, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__408)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 7052, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_init, __pyx_t_13) < 0) __PYX_ERR(0, 7052, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_codeobj__408 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__407, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_init, 7052, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__408)) __PYX_ERR(0, 7052, __pyx_L1_error)
+7053: self.bcomm = BatchedSend(interval="5ms")
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_BatchedSend); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_interval, __pyx_kp_u_5ms) < 0) __PYX_ERR(0, 7053, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_bcomm, __pyx_t_3) < 0) __PYX_ERR(0, 7053, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+7054: self.bcomm.start(comm)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_bcomm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_start); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_v_comm) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_comm); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
7055:
+7056: self.scheduler = scheduler
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_scheduler, __pyx_v_scheduler) < 0) __PYX_ERR(0, 7056, __pyx_L1_error)
+7057: self.scheduler.add_plugin(self)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_scheduler); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_add_plugin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_self); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
7058:
+7059: def add_worker(self, worker=None, **kwargs):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_18WorkerStatusPlugin_3add_worker(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_18WorkerStatusPlugin_3add_worker = {"add_worker", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_18WorkerStatusPlugin_3add_worker, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_18WorkerStatusPlugin_3add_worker(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_worker = 0;
CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("add_worker (wrapper)", 0);
__pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
__Pyx_GOTREF(__pyx_v_kwargs);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_worker,0};
PyObject* values[2] = {0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker);
if (value) { values[1] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "add_worker") < 0)) __PYX_ERR(0, 7059, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_worker = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("add_worker", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7059, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
__Pyx_AddTraceback("distributed.scheduler.WorkerStatusPlugin.add_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_18WorkerStatusPlugin_2add_worker(__pyx_self, __pyx_v_self, __pyx_v_worker, __pyx_v_kwargs);
/* function exit code */
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_18WorkerStatusPlugin_2add_worker(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_worker, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
PyObject *__pyx_v_ident = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("add_worker", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_AddTraceback("distributed.scheduler.WorkerStatusPlugin.add_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_ident);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__409 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_worker, __pyx_n_s_kwargs, __pyx_n_s_ident); if (unlikely(!__pyx_tuple__409)) __PYX_ERR(0, 7059, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__409);
__Pyx_GIVEREF(__pyx_tuple__409);
__pyx_codeobj__410 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__409, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_add_worker, 7059, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__410)) __PYX_ERR(0, 7059, __pyx_L1_error)
/* … */
__pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_18WorkerStatusPlugin_3add_worker, 0, __pyx_n_s_WorkerStatusPlugin_add_worker, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__410)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 7059, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__411);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_add_worker, __pyx_t_13) < 0) __PYX_ERR(0, 7059, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_tuple__411 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__411)) __PYX_ERR(0, 7059, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__411);
__Pyx_GIVEREF(__pyx_tuple__411);
+7060: ident = self.scheduler.workers[worker].identity()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_scheduler); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_workers); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_worker); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_identity); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_ident = __pyx_t_1; __pyx_t_1 = 0;
+7061: del ident["metrics"]
if (unlikely(PyObject_DelItem(__pyx_v_ident, __pyx_n_u_metrics) < 0)) __PYX_ERR(0, 7061, __pyx_L1_error)
+7062: del ident["last_seen"]
if (unlikely(PyObject_DelItem(__pyx_v_ident, __pyx_n_u_last_seen) < 0)) __PYX_ERR(0, 7062, __pyx_L1_error)
+7063: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
goto __pyx_L8_try_end;
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
goto __pyx_L1_error;
__pyx_L4_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
__pyx_L8_try_end:;
}
+7064: self.bcomm.send(["add", {"workers": {worker: ident}}])
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_bcomm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7064, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_send); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7064, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7064, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 7064, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_v_worker, __pyx_v_ident) < 0) __PYX_ERR(0, 7064, __pyx_L3_error) if (PyDict_SetItem(__pyx_t_3, __pyx_n_u_workers, __pyx_t_7) < 0) __PYX_ERR(0, 7064, __pyx_L3_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyList_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 7064, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_n_u_add); __Pyx_GIVEREF(__pyx_n_u_add); PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_u_add); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_7, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_7); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7064, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+7065: except CommClosedError:
__Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_2, &__pyx_t_7); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CommClosedError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7065, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_ErrRestore(__pyx_t_1, __pyx_t_2, __pyx_t_7); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_7 = 0; if (__pyx_t_8) { __Pyx_AddTraceback("distributed.scheduler.WorkerStatusPlugin.add_worker", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_2, &__pyx_t_1) < 0) __PYX_ERR(0, 7065, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_1);
+7066: self.scheduler.remove_plugin(self)
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_scheduler); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 7066, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_remove_plugin); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 7066, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_3 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_9, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_self); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7066, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L4_exception_handled; } goto __pyx_L5_except_error; __pyx_L5_except_error:;
7067:
+7068: def remove_worker(self, worker=None, **kwargs):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_18WorkerStatusPlugin_5remove_worker(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_18WorkerStatusPlugin_5remove_worker = {"remove_worker", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_18WorkerStatusPlugin_5remove_worker, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_18WorkerStatusPlugin_5remove_worker(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_worker = 0;
CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("remove_worker (wrapper)", 0);
__pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
__Pyx_GOTREF(__pyx_v_kwargs);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_worker,0};
PyObject* values[2] = {0,0};
values[1] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_worker);
if (value) { values[1] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "remove_worker") < 0)) __PYX_ERR(0, 7068, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_worker = values[1];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("remove_worker", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7068, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
__Pyx_AddTraceback("distributed.scheduler.WorkerStatusPlugin.remove_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_18WorkerStatusPlugin_4remove_worker(__pyx_self, __pyx_v_self, __pyx_v_worker, __pyx_v_kwargs);
/* function exit code */
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_18WorkerStatusPlugin_4remove_worker(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_worker, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("remove_worker", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_AddTraceback("distributed.scheduler.WorkerStatusPlugin.remove_worker", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__412 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_worker, __pyx_n_s_kwargs); if (unlikely(!__pyx_tuple__412)) __PYX_ERR(0, 7068, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__412);
__Pyx_GIVEREF(__pyx_tuple__412);
__pyx_codeobj__413 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__412, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_remove_worker, 7068, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__413)) __PYX_ERR(0, 7068, __pyx_L1_error)
/* … */
__pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_18WorkerStatusPlugin_5remove_worker, 0, __pyx_n_s_WorkerStatusPlugin_remove_worker, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__413)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 7068, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__414);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_remove_worker, __pyx_t_13) < 0) __PYX_ERR(0, 7068, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_tuple__414 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__414)) __PYX_ERR(0, 7068, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__414);
__Pyx_GIVEREF(__pyx_tuple__414);
+7069: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
goto __pyx_L8_try_end;
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
goto __pyx_L1_error;
__pyx_L4_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
__pyx_L8_try_end:;
}
+7070: self.bcomm.send(["remove", worker])
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_bcomm); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7070, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_send); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7070, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7070, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_n_u_remove); __Pyx_GIVEREF(__pyx_n_u_remove); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_n_u_remove); __Pyx_INCREF(__pyx_v_worker); __Pyx_GIVEREF(__pyx_v_worker); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_v_worker); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7070, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+7071: except CommClosedError:
__Pyx_ErrFetch(&__pyx_t_4, &__pyx_t_6, &__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_CommClosedError); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 7071, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_4, __pyx_t_7); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_5); __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; if (__pyx_t_8) { __Pyx_AddTraceback("distributed.scheduler.WorkerStatusPlugin.remove_worker", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_4) < 0) __PYX_ERR(0, 7071, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_4);
+7072: self.scheduler.remove_plugin(self)
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_scheduler); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 7072, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_remove_plugin); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 7072, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_7 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_9, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_self); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 7072, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L4_exception_handled; } goto __pyx_L5_except_error; __pyx_L5_except_error:;
7073:
+7074: def teardown(self):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_18WorkerStatusPlugin_7teardown(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_18WorkerStatusPlugin_7teardown = {"teardown", (PyCFunction)__pyx_pw_11distributed_9scheduler_18WorkerStatusPlugin_7teardown, METH_O, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_18WorkerStatusPlugin_7teardown(PyObject *__pyx_self, PyObject *__pyx_v_self) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("teardown (wrapper)", 0);
__pyx_r = __pyx_pf_11distributed_9scheduler_18WorkerStatusPlugin_6teardown(__pyx_self, ((PyObject *)__pyx_v_self));
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_18WorkerStatusPlugin_6teardown(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("teardown", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("distributed.scheduler.WorkerStatusPlugin.teardown", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__415 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__415)) __PYX_ERR(0, 7074, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__415);
__Pyx_GIVEREF(__pyx_tuple__415);
/* … */
__pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_18WorkerStatusPlugin_7teardown, 0, __pyx_n_s_WorkerStatusPlugin_teardown, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__416)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 7074, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_teardown, __pyx_t_13) < 0) __PYX_ERR(0, 7074, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_codeobj__416 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__415, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_teardown, 7074, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__416)) __PYX_ERR(0, 7074, __pyx_L1_error)
+7075: self.bcomm.close()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_bcomm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_close); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7076:
7077:
+7078: class CollectTaskMetaDataPlugin(SchedulerPlugin):
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_SchedulerPlugin); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_16 = PyTuple_New(1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 7078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = __Pyx_CalculateMetaclass(NULL, __pyx_t_16); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_14 = __Pyx_Py3MetaclassPrepare(__pyx_t_15, __pyx_t_16, __pyx_n_s_CollectTaskMetaDataPlugin, __pyx_n_s_CollectTaskMetaDataPlugin, (PyObject *) NULL, __pyx_n_s_distributed_scheduler, (PyObject *) NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 7078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); /* … */ __pyx_t_13 = __Pyx_Py3ClassCreate(__pyx_t_15, __pyx_n_s_CollectTaskMetaDataPlugin, __pyx_t_16, __pyx_t_14, NULL, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 7078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CollectTaskMetaDataPlugin, __pyx_t_13) < 0) __PYX_ERR(0, 7078, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+7079: def __init__(self, scheduler, name):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_25CollectTaskMetaDataPlugin_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_25CollectTaskMetaDataPlugin_1__init__ = {"__init__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_25CollectTaskMetaDataPlugin_1__init__, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_25CollectTaskMetaDataPlugin_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_scheduler = 0;
PyObject *__pyx_v_name = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_scheduler,&__pyx_n_s_name,0};
PyObject* values[3] = {0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scheduler)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); __PYX_ERR(0, 7079, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); __PYX_ERR(0, 7079, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 7079, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
}
__pyx_v_self = values[0];
__pyx_v_scheduler = values[1];
__pyx_v_name = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7079, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("distributed.scheduler.CollectTaskMetaDataPlugin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_25CollectTaskMetaDataPlugin___init__(__pyx_self, __pyx_v_self, __pyx_v_scheduler, __pyx_v_name);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_25CollectTaskMetaDataPlugin___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_scheduler, PyObject *__pyx_v_name) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__init__", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("distributed.scheduler.CollectTaskMetaDataPlugin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__417 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_scheduler, __pyx_n_s_name); if (unlikely(!__pyx_tuple__417)) __PYX_ERR(0, 7079, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__417);
__Pyx_GIVEREF(__pyx_tuple__417);
/* … */
__pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_25CollectTaskMetaDataPlugin_1__init__, 0, __pyx_n_s_CollectTaskMetaDataPlugin___init, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__418)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 7079, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_init, __pyx_t_13) < 0) __PYX_ERR(0, 7079, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_codeobj__418 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__417, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_init, 7079, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__418)) __PYX_ERR(0, 7079, __pyx_L1_error)
+7080: self.scheduler = scheduler
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_scheduler, __pyx_v_scheduler) < 0) __PYX_ERR(0, 7080, __pyx_L1_error)
+7081: self.name = name
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_name, __pyx_v_name) < 0) __PYX_ERR(0, 7081, __pyx_L1_error)
+7082: self.keys = set()
__pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7082, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_keys, __pyx_t_1) < 0) __PYX_ERR(0, 7082, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+7083: self.metadata = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_metadata, __pyx_t_1) < 0) __PYX_ERR(0, 7083, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+7084: self.state = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_state, __pyx_t_1) < 0) __PYX_ERR(0, 7084, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7085:
+7086: def update_graph(self, scheduler, dsk=None, keys=None, restrictions=None, **kwargs):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_25CollectTaskMetaDataPlugin_3update_graph(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_25CollectTaskMetaDataPlugin_3update_graph = {"update_graph", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_25CollectTaskMetaDataPlugin_3update_graph, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_25CollectTaskMetaDataPlugin_3update_graph(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
CYTHON_UNUSED PyObject *__pyx_v_scheduler = 0;
CYTHON_UNUSED PyObject *__pyx_v_dsk = 0;
PyObject *__pyx_v_keys = 0;
CYTHON_UNUSED PyObject *__pyx_v_restrictions = 0;
CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("update_graph (wrapper)", 0);
__pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
__Pyx_GOTREF(__pyx_v_kwargs);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_scheduler,&__pyx_n_s_dsk,&__pyx_n_s_keys,&__pyx_n_s_restrictions,0};
PyObject* values[5] = {0,0,0,0,0};
values[2] = ((PyObject *)((PyObject *)Py_None));
values[3] = ((PyObject *)((PyObject *)Py_None));
values[4] = ((PyObject *)((PyObject *)Py_None));
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scheduler)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("update_graph", 0, 2, 5, 1); __PYX_ERR(0, 7086, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dsk);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keys);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_restrictions);
if (value) { values[4] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "update_graph") < 0)) __PYX_ERR(0, 7086, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_self = values[0];
__pyx_v_scheduler = values[1];
__pyx_v_dsk = values[2];
__pyx_v_keys = values[3];
__pyx_v_restrictions = values[4];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("update_graph", 0, 2, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7086, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
__Pyx_AddTraceback("distributed.scheduler.CollectTaskMetaDataPlugin.update_graph", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_25CollectTaskMetaDataPlugin_2update_graph(__pyx_self, __pyx_v_self, __pyx_v_scheduler, __pyx_v_dsk, __pyx_v_keys, __pyx_v_restrictions, __pyx_v_kwargs);
/* function exit code */
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_25CollectTaskMetaDataPlugin_2update_graph(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_scheduler, CYTHON_UNUSED PyObject *__pyx_v_dsk, PyObject *__pyx_v_keys, CYTHON_UNUSED PyObject *__pyx_v_restrictions, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("update_graph", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("distributed.scheduler.CollectTaskMetaDataPlugin.update_graph", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__419 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_scheduler, __pyx_n_s_dsk, __pyx_n_s_keys, __pyx_n_s_restrictions, __pyx_n_s_kwargs); if (unlikely(!__pyx_tuple__419)) __PYX_ERR(0, 7086, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__419);
__Pyx_GIVEREF(__pyx_tuple__419);
__pyx_codeobj__420 = (PyObject*)__Pyx_PyCode_New(5, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__419, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_update_graph_2, 7086, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__420)) __PYX_ERR(0, 7086, __pyx_L1_error)
/* … */
__pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_25CollectTaskMetaDataPlugin_3update_graph, 0, __pyx_n_s_CollectTaskMetaDataPlugin_update, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__420)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 7086, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__421);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_update_graph_2, __pyx_t_13) < 0) __PYX_ERR(0, 7086, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_tuple__421 = PyTuple_Pack(3, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__421)) __PYX_ERR(0, 7086, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__421);
__Pyx_GIVEREF(__pyx_tuple__421);
+7087: self.keys.update(keys)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_update); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_keys) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_keys); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7088:
+7089: def transition(self, key, start, finish, *args, **kwargs):
/* Python wrapper */
static PyObject *__pyx_pw_11distributed_9scheduler_25CollectTaskMetaDataPlugin_5transition(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_11distributed_9scheduler_25CollectTaskMetaDataPlugin_5transition = {"transition", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_11distributed_9scheduler_25CollectTaskMetaDataPlugin_5transition, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_11distributed_9scheduler_25CollectTaskMetaDataPlugin_5transition(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_self = 0;
PyObject *__pyx_v_key = 0;
CYTHON_UNUSED PyObject *__pyx_v_start = 0;
PyObject *__pyx_v_finish = 0;
CYTHON_UNUSED PyObject *__pyx_v_args = 0;
CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition (wrapper)", 0);
__pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
__Pyx_GOTREF(__pyx_v_kwargs);
if (PyTuple_GET_SIZE(__pyx_args) > 4) {
__pyx_v_args = PyTuple_GetSlice(__pyx_args, 4, PyTuple_GET_SIZE(__pyx_args));
if (unlikely(!__pyx_v_args)) {
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
__Pyx_RefNannyFinishContext();
return NULL;
}
__Pyx_GOTREF(__pyx_v_args);
} else {
__pyx_v_args = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple);
}
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_key,&__pyx_n_s_start,&__pyx_n_s_finish,0};
PyObject* values[4] = {0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
default:
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("transition", 0, 4, 4, 1); __PYX_ERR(0, 7089, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("transition", 0, 4, 4, 2); __PYX_ERR(0, 7089, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_finish)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("transition", 0, 4, 4, 3); __PYX_ERR(0, 7089, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t used_pos_args = (pos_args < 4) ? pos_args : 4;
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "transition") < 0)) __PYX_ERR(0, 7089, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) < 4) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
}
__pyx_v_self = values[0];
__pyx_v_key = values[1];
__pyx_v_start = values[2];
__pyx_v_finish = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("transition", 0, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 7089, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0;
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
__Pyx_AddTraceback("distributed.scheduler.CollectTaskMetaDataPlugin.transition", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_11distributed_9scheduler_25CollectTaskMetaDataPlugin_4transition(__pyx_self, __pyx_v_self, __pyx_v_key, __pyx_v_start, __pyx_v_finish, __pyx_v_args, __pyx_v_kwargs);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_XDECREF(__pyx_v_args);
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_11distributed_9scheduler_25CollectTaskMetaDataPlugin_4transition(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key, CYTHON_UNUSED PyObject *__pyx_v_start, PyObject *__pyx_v_finish, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
struct __pyx_obj_11distributed_9scheduler_TaskState *__pyx_v_ts = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("transition", 0);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("distributed.scheduler.CollectTaskMetaDataPlugin.transition", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ts);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__422 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_start, __pyx_n_s_finish, __pyx_n_s_args, __pyx_n_s_kwargs, __pyx_n_s_ts); if (unlikely(!__pyx_tuple__422)) __PYX_ERR(0, 7089, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__422);
__Pyx_GIVEREF(__pyx_tuple__422);
/* … */
__pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_11distributed_9scheduler_25CollectTaskMetaDataPlugin_5transition, 0, __pyx_n_s_CollectTaskMetaDataPlugin_transi, NULL, __pyx_n_s_distributed_scheduler, __pyx_d, ((PyObject *)__pyx_codeobj__423)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 7089, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
if (__Pyx_SetNameInClass(__pyx_t_14, __pyx_n_s_transition, __pyx_t_13) < 0) __PYX_ERR(0, 7089, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_codeobj__423 = (PyObject*)__Pyx_PyCode_New(4, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__422, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_distributed_scheduler_py, __pyx_n_s_transition, 7089, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__423)) __PYX_ERR(0, 7089, __pyx_L1_error)
+7090: if finish == "memory" or finish == "erred":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_finish, __pyx_n_u_memory_2, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 7090, __pyx_L1_error) if (!__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_finish, __pyx_n_u_erred, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 7090, __pyx_L1_error) __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+7091: ts: TaskState = self.scheduler.tasks.get(key)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_scheduler); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_tasks); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_get); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_key) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_key); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_11distributed_9scheduler_TaskState))))) __PYX_ERR(0, 7091, __pyx_L1_error) __pyx_v_ts = ((struct __pyx_obj_11distributed_9scheduler_TaskState *)__pyx_t_3); __pyx_t_3 = 0;
+7092: if ts is not None and ts._key in self.keys:
__pyx_t_2 = (((PyObject *)__pyx_v_ts) != Py_None);
__pyx_t_6 = (__pyx_t_2 != 0);
if (__pyx_t_6) {
} else {
__pyx_t_1 = __pyx_t_6;
goto __pyx_L7_bool_binop_done;
}
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_keys); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7092, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_v_ts->_key, __pyx_t_3, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 7092, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_2 = (__pyx_t_6 != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L7_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
+7093: self.metadata[key] = ts._metadata
__pyx_t_3 = __pyx_v_ts->_metadata;
__Pyx_INCREF(__pyx_t_3);
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_metadata); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7093, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_key, __pyx_t_3) < 0)) __PYX_ERR(0, 7093, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+7094: self.state[key] = finish
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_state); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_key, __pyx_v_finish) < 0)) __PYX_ERR(0, 7094, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+7095: self.keys.discard(key)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_keys); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_discard); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_v_key) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_key); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;