docs: def _get_wait_in(self, flag=True, all_domain=True):
          """
          Set `wait_inputs` flags for data nodes that:
  
              - are estimated from functions with a domain function, and
              - are waiting inputs.
  
          :param flag:
              Value to be set. If None `wait_inputs` are just cleaned.
          :type flag: bool, None, optional
  
          :param all_domain:
              Set `wait_inputs` flags for data nodes that are estimated from
              functions with a domain function.
          :type all_domain: bool, optional
          """
  
          wait_in = {}
  
          for n, a in self.data_nodes.items():
              if n is not SINK and a['wait_inputs']:
                  wait_in[n] = flag
  
          if all_domain:
              for a in self.function_nodes.values():
                  if 'input_domain' in a:
                      wait_in.update(dict.fromkeys(a['outputs'], flag))
  
              for n, a in self.sub_dsp_nodes.items():
                  if 'function' in a:
                      dsp = a['function']
                      wait_in[dsp] = w = dsp._get_wait_in(flag=flag)
                      if 'input_domain' not in a:
                          o = a['outputs']
                          w = [o[k] for k in set(o).intersection(w)]
                          wait_in.update(dict.fromkeys(w, flag))
  
                  if 'input_domain' in a:
                      wait_in[n] = flag
                      wait_in.update(dict.fromkeys(a['outputs'].values(), flag))
  
          return wait_in