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: Print a text on ASCII canvas.
  
  Args:
      x (int): x coordinate where the text should start.
      y (int): y coordinate where the text should start.
      text (str): string that should be printed.
docstr_tok: ["Print","a","text","on","ASCII","canvas",".","Args",":","x","(","int",")",":","x","coordinate","where","the","text","should","start",".","y","(","int",")",":","y","coordinate","where","the","text","should","start",".","text","(","str",")",":","string","that","should","be","printed","."]
code: def text(self, x, y, text):
      """Print a text on ASCII canvas.
  
      Args:
          x (int): x coordinate where the text should start.
          y (int): y coordinate where the text should start.
          text (str): string that should be printed.
      """
      for i, char in enumerate(text):
          self.point(x + i, y, char)
  
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 5 for calling the AsciiCanvas obj's underlying member method code with example usage: obj.text(x, y, text) without return types