def core_text_draw_func_basic(ticks, texts, level, f, g, dx_units, dy_units,
    angles, tick_lenght, text_distance, text_attrs, c, tick_info):
    """
    Core basic method to draw texts
    ticks: list of tick values to be drawn (not here)
    texts: list of text values to be drawn
    level: drawn level
    f,g: x,y functions
    dx_units, dy_units: unity vector components
    angles: angles of ticks
    tick_lenght: tick lenght
    text_distance: distance where text is drawn
    text_attr: attributes (alignment, etc.) provided to the function
    c: canvas to draw
    tick_info: general hook for axis dict
    """
    ti = tick_info
    n_texts = len(texts)
    if len(dx_units) < n_texts:
        print('too few dx_units !')
    if len(dy_units) < n_texts:
        print('too few dy_units !')
    if len(angles) < n_texts:
        print('too few angles !')
    for i, text_value in enumerate(texts):
        x = f(text_value) + text_distance * dy_units[i]
        y = g(text_value) - text_distance * dx_units[i]
        text_color = ti['text_color']
        if not ti['text_colors'] is None:
            text_color = ti['level_text_color'][level]
        text_size = ti['text_sizes'][level]
        if ti['text_format_func'] is None:
            text = ti['text_format'] % text_value
        else:
            text = ti['text_format_func'](text_value)
        c.text(x, y, text, text_attrs[i] + [text_color, text_size])
