<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def console_set_custom_font( fontFile: AnyStr, flags: int = FONT_LAYOUT_ASCII_INCOL, nb_char_horiz: int = 0, nb_char_vertic: int = 0, ) -> None: """Load the custom font file at `fontFile`. Call this before function before calling :any:`tcod.console_init_root`. Flags can be a mix of the following: * tcod.FONT_LAYOUT_ASCII_INCOL: Decode tileset raw in column-major order. * tcod.FONT_LAYOUT_ASCII_INROW: Decode tileset raw in row-major order. * tcod.FONT_TYPE_GREYSCALE: Force tileset to be read as greyscale. * tcod.FONT_TYPE_GRAYSCALE * tcod.FONT_LAYOUT_TCOD: Unique layout used by libtcod. * tcod.FONT_LAYOUT_CP437: Decode a row-major Code Page 437 tileset into Unicode. `nb_char_horiz` and `nb_char_vertic` are the columns and rows of the font file respectfully. """

    if not os.path.exists(fontFile):
        raise RuntimeError(
            "File not found:\n\t%s" % (os.path.realpath(fontFile),)
        )
    lib.TCOD_console_set_custom_font(
        _bytes(fontFile), flags, nb_char_horiz, nb_char_vertic
    )