class_docstr: Class for drawing in ASCII.
  
  Args:
      cols (int): number of columns in the canvas. Should be > 1.
      lines (int): number of lines in the canvas. Should be > 1.
class_docstr_tok: ["Class","for","drawing","in","ASCII",".","Args",":","cols","(","int",")",":","number","of","columns","in","the","canvas",".","Should","be",">","1.","lines","(","int",")",":","number","of","lines","in","the","canvas",".","Should","be",">","1","."]
docstr: Draws ASCII canvas on the screen.
docstr_tok: ["Draws","ASCII","canvas","on","the","screen","."]
code: def draw(self):
      """Draws ASCII canvas on the screen."""
      lines = map("".join, self.canvas)
      return os.linesep.join(lines)
  
file_path: dvc/dvc/dagascii.py
imports: import math
  import os
  from grandalf.graphs import Edge, Graph, Vertex
  from grandalf.layouts import SugiyamaLayout
  from grandalf.routing import EdgeViewer, route_with_lines
  from dvc.log import logger
label_desc: Use image node_id 2 for calling the AsciiCanvas obj's underlying member method code with example usage: obj.draw() and returns: os