code: def lattice(lattice, filename, directory, render, view, **kwargs):
      
      dot = graphviz.Digraph(
          name=lattice.__class__.__name__,
          comment=repr(lattice),
          filename=filename,
          directory=directory,
          node_attr=dict(shape='circle', width='.25', style='filled', label=''),
          edge_attr=dict(dir='none', labeldistance='1.5', minlen='2'),
          **kwargs
      )
  
      sortkey = SORTKEYS[0]
  
      node_name = NAME_GETTERS[0]
  
      for concept in lattice._concepts:
          name = node_name(concept)
          dot.node(name)
  
          if concept.objects:
              dot.edge(name, name,
                  headlabel=' '.join(concept.objects),
                  labelangle='270', color='transparent')
  
          if concept.properties:
              dot.edge(name, name,
                  taillabel=' '.join(concept.properties),
                  labelangle='90', color='transparent')
  
          dot.edges((name, node_name(c))
              for c in sorted(concept.lower_neighbors, key=sortkey))
  
      if render or view:
          dot.render(view=view)  # pragma: no cover
      return dot
docs: Return graphviz source for visualizing the lattice graph.