import contextlib
import importlib
import io
import itertools
import os
import pathlib
import pkgutil
import re
import rlcompleter
import select
import subprocess
import sys
import tempfile
from functools import partial
from pkgutil import ModuleInfo
from unittest import TestCase, skipUnless, skipIf, SkipTest
from unittest.mock import Mock, patch
import warnings
from test.support import (
    captured_stdout,
    captured_stderr,
    force_not_colorized,
    make_clean_env,
    Py_DEBUG,
)
from test.support import has_subprocess_support, SHORT_TIMEOUT, STDLIB_DIR
from test.support.import_helper import import_module
from test.support.os_helper import EnvironmentVarGuard, unlink

from .support import (
    FakeConsole,
    ScreenEqualMixin,
    handle_all_events,
    handle_events_narrow_console,
    more_lines,
    multiline_input,
    code_to_events,
)
from _pyrepl.console import Event
from _pyrepl.completing_reader import stripcolor
from _pyrepl._module_completer import (
    ImportParser,
    ModuleCompleter,
    HARDCODED_SUBMODULES,
)
from _pyrepl.fancycompleter import Completer as FancyCompleter
import _pyrepl.readline as pyrepl_readline
from _pyrepl.readline import (
    ReadlineAlikeReader,
    ReadlineConfig,
