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: Create a box on ASCII canvas.
  
  Args:
      x0 (int): x coordinate of the box corner.
      y0 (int): y coordinate of the box corner.
      width (int): box width.
      height (int): box height.
docstr_tok: ["Create","a","box","on","ASCII","canvas",".","Args",":","x0","(","int",")",":","x","coordinate","of","the","box","corner",".","y0","(","int",")",":","y","coordinate","of","the","box","corner",".","width","(","int",")",":","box","width",".","height","(","int",")",":","box","height","."]
code: def box(self, x0, y0, width, height):
      """Create a box on ASCII canvas.
  
      Args:
          x0 (int): x coordinate of the box corner.
          y0 (int): y coordinate of the box corner.
          width (int): box width.
          height (int): box height.
      """
      assert width > 1
      assert height > 1
  
      width -= 1
      height -= 1
  
      for x in range(x0, x0 + width):
          self.point(x, y0, "-")
          self.point(x, y0 + height, "-")
  
      for y in range(y0, y0 + height):
          self.point(x0, y, "|")
          self.point(x0 + width, y, "|")
  
      self.point(x0, y0, "+")
      self.point(x0 + width, y0, "+")
      self.point(x0, y0 + height, "+")
      self.point(x0 + width, y0 + height, "+")
  
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 6 for calling the AsciiCanvas obj's underlying member method code with example usage: obj.box(x0, y0, width, height) without return types