code: def get_nodes_by_source(self, graph, source_full_name):
          
          parts = source_full_name.split('.')
          if len(parts) == 1:
              target_source, target_table = parts[0], None
          elif len(parts) == 2:
              target_source, target_table = parts
          else:  # len(parts) > 2 or len(parts) == 0
              msg = (
                  'Invalid source selector value "{}". Sources must be of the '
                  'form `${{source_name}}` or '
                  '`${{source_name}}.${{target_name}}`'
              ).format(source_full_name)
              raise dbt.exceptions.RuntimeException(msg)
  
          for node, real_node in self.source_nodes(graph):
              if target_source not in (real_node.source_name, SELECTOR_GLOB):
                  continue
              if target_table in (None, real_node.name, SELECTOR_GLOB):
                  yield node
docs: yields nodes from graph are the specified source.