class_docstr: A TVM object task scheduler to support customization on the python side.
  This is NOT the user facing class for function overloading inheritance.
  
  See also: PyTaskScheduler
class_docstr_tok: ["A","TVM","object","task","scheduler","to","support","customization","on","the","python","side",".","This","is","NOT","the","user","facing","class","for","function","overloading","inheritance",".","See","also",":","PyTaskScheduler"]
docstr: Constructor.
docstr_tok: ["Constructor","."]
code: def __init__(
      self,
      f_next_task_id: Callable,
      f_join_running_task: Callable,
      f_tune: Callable,
  ):
      """Constructor."""
  
      self.__init_handle_by_constructor__(
          _ffi_api.TaskSchedulerPyTaskScheduler,  # type: ignore # pylint: disable=no-member
          get_logging_func(logger),
          f_next_task_id,
          f_join_running_task,
          f_tune,
      )
  
imports: from typing import Callable, List, Optional, Union
  from typing_extensions import Literal
  from tvm._ffi import register_object
  from tvm.runtime import Object
  from ..None import _ffi_api
  from ..builder import Builder, BuilderResult
  from ..cost_model import CostModel
  from ..database import Database
  from ..logging import get_logger, get_logging_func
  from ..measure_callback import MeasureCallback
  from ..runner import Runner, RunnerResult
  from ..search_strategy import MeasureCandidate
  from ..tune_context import TuneContext
label_desc: Use image node_id 1 to create a new _PyTaskScheduler object from inherited base classes: TaskScheduler with example: obj = _PyTaskScheduler(f_next_task_id, f_join_running_task, f_tune)