code: def add_chain(self, *nodes, _input=BEGIN, _output=None, _name=None):
          
          if len(nodes):
              _input = self._resolve_index(_input)
              _output = self._resolve_index(_output)
              _first = None
              _last = None
  
              for i, node in enumerate(nodes):
                  _last = self.add_node(node)
                  if not i and _name:
                      if _name in self.named:
                          raise KeyError("Duplicate name {!r} in graph.".format(_name))
                      self.named[_name] = _last
                  if _first is None:
                      _first = _last
                  self.outputs_of(_input, create=True).add(_last)
                  _input = _last
  
              if _output is not None:
                  self.outputs_of(_input, create=True).add(_output)
  
              if hasattr(self, "_topologcally_sorted_indexes_cache"):
                  del self._topologcally_sorted_indexes_cache
  
              return GraphRange(self, _first, _last)
          return GraphRange(self, None, None)
docs: Add a chain in this graph.