class_docstr: Assemble DOT source code.
class_docstr_tok: ["Assemble","DOT","source","code","."]
docstr: Create a bunch of edges.
  
  Args:
      tail_head_iter: Iterable of ``(tail_name, head_name)`` pairs
          (format:``node[:port[:compass]]``).
  
  
  Note:
      The ``tail_name`` and ``head_name`` strings are separated
      by (optional) colon(s) into ``node`` name, ``port`` name,
      and ``compass`` (e.g. ``sw``).
      See :ref:`details in the User Guide <node-ports-compass>`.
docstr_tok: ["Create","a","bunch","of","edges",".","Args",":","tail_head_iter",":","Iterable","of","``","(","tail_name",",","head_name",")","``","pairs","(","format",":","``","node","[",":","port","[",":","compass","]","]","``",")",".","Note",":","The","``","tail_name","``","and","``","head_name","``","strings","are","separated","by","(","optional",")","colon","(","s",")","into","``","node","``","name",",","``","port","``","name",",","and","``","compass","``","(","e.g",".","``","sw","``",")",".","See",":","ref",":","`","details","in","the","User","Guide","<","node-ports-compass",">","`","."]
code: def edges(self, tail_head_iter) -> None:
      """Create a bunch of edges.
  
      Args:
          tail_head_iter: Iterable of ``(tail_name, head_name)`` pairs
              (format:``node[:port[:compass]]``).
  
  
      Note:
          The ``tail_name`` and ``head_name`` strings are separated
          by (optional) colon(s) into ``node`` name, ``port`` name,
          and ``compass`` (e.g. ``sw``).
          See :ref:`details in the User Guide <node-ports-compass>`.
      """
      edge = self._edge_plain
      quote = self._quote_edge
      self.body += [
          edge(tail=quote(t), head=quote(h)) for t, h in tail_head_iter
      ]
  
imports: import contextlib
  import typing
  from .None import _tools
  from .None import base
  from .None import quoting
label_desc: Use image node_id 12 for calling the Dot obj's underlying member method code with example usage: obj.edges(tail_head_iter) without return types