def read_text(forfn, nrows=None, verbose=True):
    r""" Read all the lines (up to nrows) from a text file or txt.gz file

    >>> fn = os.path.join(DATA_PATH, 'mavis-batey-greetings.txt')
    >>> len(read_text(fn, nrows=3))
    3
    """
    tqdm_prog = tqdm if verbose else no_tqdm
    nrows = wc(forfn, nrows=nrows)  # not necessary when nrows==None
    lines = np.empty(dtype=object, shape=nrows)
    with ensure_open(forfn) as f:
        for i, line in enumerate(tqdm_prog(f, total=nrows)):
            if i >= len(lines):
                break
            lines[i] = ensure_str(line).rstrip('\n').rstrip('\r')
        if all('\t' in line for line in lines):
            num_tabs = [sum([1 for c in line if c == '\t']) for line in lines]
            del lines
            if all(i == num_tabs[0] for i in num_tabs):
                f.seek(0)
                return read_csv(f, sep='\t', header=None, nrows=nrows)
        elif sum((1 for line in lines if any((tag.lower() in line.lower() for tag in HTML_TAGS)))
                ) / float(len(lines)) > .05:
            return np.array(html2text(EOL.join(lines)).split(EOL))
    return lines
def read_text ( forfn , nrows = None , verbose = True ) : tqdm_prog = tqdm if verbose else no_tqdm nrows = wc ( forfn , nrows = nrows ) lines = np . empty ( dtype = object , shape = nrows ) with ensure_open ( forfn ) as f : for i , line in enumerate ( tqdm_prog ( f , total = nrows ) ) : if i >= len ( lines ) : break lines [ i ] = ensure_str ( line ) . rstrip ( '\n' ) . rstrip ( '\r' ) if all ( '\t' in line for line in lines ) : num_tabs = [ sum ( [ 1 for c in line if c == '\t' ] ) for line in lines ] del lines if all ( i == num_tabs [ 0 ] for i in num_tabs ) : f . seek ( 0 ) return read_csv ( f , sep = '\t' , header = None , nrows = nrows ) elif sum ( ( 1 for line in lines if any ( ( tag . lower ( ) in line . lower ( ) for tag in HTML_TAGS ) ) ) ) / float ( len ( lines ) ) > .05 : return np . array ( html2text ( EOL . join ( lines ) ) . split ( EOL ) ) return lines
r""" Read all the lines (up to nrows) from a text file or txt.gz file

    >>> fn = os.path.join(DATA_PATH, 'mavis-batey-greetings.txt')
    >>> len(read_text(fn, nrows=3))
    3