code: def _replace_tables(self, soup, v_separator=' | ', h_separator='-'):
          
          tables = self._parse_tables(soup)
          v_sep_len = len(v_separator)
          v_left_sep = v_separator.lstrip()
          for t in tables:
              html = ''
              trs = t['trs']
              h_length = 1 + (v_sep_len * len(t['col_width'])) + t['width']
              head_foot = (h_separator * h_length) + "\n"
              html += head_foot
              for tr in trs:
                  html += v_left_sep
                  for i, td in enumerate(tr):
                      text = td['text']
                      col_width = t['col_width'][i] + v_sep_len
                      if td['colspan'] > 1:
                          for j in range(td['colspan']-1):
                              j = j + 1
                              if (i+j) < len(t['col_width']):
                                  col_width += t['col_width'][i+j] + v_sep_len
                      html += ('%' + str(col_width) + 's') % (text + v_separator)
                  html += "\n"
              html += head_foot
              new_table = soup.new_tag('div')
              new_table.string = html
              t['table'].replace_with(new_table)
          return soup
docs: Replaces <table> elements with its ASCII equivalent.