class_docstr: Source is a simple interface that most layers of the harness will implement. The only
  layer of the harness which should definitely not be a WorkloadSource is the final layer
  (probably a TrialController), since the final layer will only consume messages.
  
  Generally, a layer of the harness will be initialized with the Stream produced by the
  layer above it and without any idea of what layers come below it. This keeps a strong isolation
  between layers of the harness and improves the plugability and testability of each layer.
class_docstr_tok: ["Source","is","a","simple","interface","that","most","layers","of","the","harness","will","implement",".","The","only","layer","of","the","harness","which","should","definitely","not","be","a","WorkloadSource","is","the","final","layer","(","probably","a","TrialController",")",",","since","the","final","layer","will","only","consume","messages",".","Generally",",","a","layer","of","the","harness","will","be","initialized","with","the","Stream","produced","by","the","layer","above","it","and","without","any","idea","of","what","layers","come","below","it",".","This","keeps","a","strong","isolation","between","layers","of","the","harness","and","improves","the","plugability","and","testability","of","each","layer","."]
docstr: Generate tuples of (workload, response closure) to pass to the next layer down.
docstr_tok: ["Generate","tuples","of","(","workload",",","response","closure",")","to","pass","to","the","next","layer","down","."]
code: def __iter__(self) -> Stream:
      """
      Generate tuples of (workload, response closure) to pass to the next layer down.
      """
      pass
  
imports: import abc
  from enum import Enum, unique
  from typing import Any, Callable, Dict, Iterator, Optional, Tuple, Union, cast
  from determined.common import check
label_desc: Use image node_id 1 for calling the Source obj's underlying member method code with example usage: obj.__iter__() without return types