137137
138138# NOTE: When using gnureadline with Python 3.13, start_ipython needs to be imported before any readline-related stuff
139139with contextlib .suppress (ImportError ):
140- from IPython import start_ipython # type: ignore[import]
140+ from IPython import start_ipython
141141
142142from .rl_utils import (
143143 RlType ,
163163if rl_type == RlType .NONE : # pragma: no cover
164164 Cmd2Console (sys .stderr ).print (rl_warning , style = Cmd2Style .WARNING )
165165else :
166- from .rl_utils import ( # type: ignore[attr-defined]
166+ from .rl_utils import (
167167 readline ,
168168 rl_force_redisplay ,
169169 )
@@ -1068,7 +1068,7 @@ def _unregister_subcommands(self, cmdset: Union[CommandSet, 'Cmd']) -> None:
10681068
10691069 for action in command_parser ._actions :
10701070 if isinstance (action , argparse ._SubParsersAction ):
1071- action .remove_parser (subcommand_name ) # type: ignore[arg-type, attr-defined]
1071+ action .remove_parser (subcommand_name ) # type: ignore[attr-defined]
10721072 break
10731073
10741074 @property
@@ -3094,11 +3094,11 @@ def _redirect_output(self, statement: Statement) -> utils.RedirectionSavedState:
30943094 kwargs ['executable' ] = shell
30953095
30963096 # For any stream that is a StdSim, we will use a pipe so we can capture its output
3097- proc = subprocess .Popen ( # type: ignore[call-overload] # noqa: S602
3097+ proc = subprocess .Popen ( # noqa: S602
30983098 statement .pipe_to ,
30993099 stdin = subproc_stdin ,
31003100 stdout = subprocess .PIPE if isinstance (self .stdout , utils .StdSim ) else self .stdout , # type: ignore[unreachable]
3101- stderr = subprocess .PIPE if isinstance (sys .stderr , utils .StdSim ) else sys .stderr , # type: ignore[unreachable]
3101+ stderr = subprocess .PIPE if isinstance (sys .stderr , utils .StdSim ) else sys .stderr ,
31023102 shell = True ,
31033103 ** kwargs ,
31043104 )
@@ -3115,7 +3115,7 @@ def _redirect_output(self, statement: Statement) -> utils.RedirectionSavedState:
31153115 subproc_stdin .close ()
31163116 new_stdout .close ()
31173117 raise RedirectionError (f'Pipe process exited with code { proc .returncode } before command could run' )
3118- redir_saved_state .redirecting = True # type: ignore[unreachable]
3118+ redir_saved_state .redirecting = True
31193119 cmd_pipe_proc_reader = utils .ProcReader (proc , cast (TextIO , self .stdout ), sys .stderr )
31203120
31213121 self .stdout = new_stdout
@@ -3351,7 +3351,7 @@ def complete_none(text: str, state: int) -> str | None: # pragma: no cover # n
33513351 parser .add_argument (
33523352 'arg' ,
33533353 suppress_tab_hint = True ,
3354- choices = choices , # type: ignore[arg-type]
3354+ choices = choices ,
33553355 choices_provider = choices_provider ,
33563356 completer = completer ,
33573357 )
@@ -4435,7 +4435,7 @@ def complete_set_value(
44354435 arg_name ,
44364436 metavar = arg_name ,
44374437 help = settable .description ,
4438- choices = settable .choices , # type: ignore[arg-type]
4438+ choices = settable .choices ,
44394439 choices_provider = settable .choices_provider ,
44404440 completer = settable .completer ,
44414441 )
@@ -4566,15 +4566,15 @@ def do_shell(self, args: argparse.Namespace) -> None:
45664566 # still receive the SIGINT since it is in the same process group as us.
45674567 with self .sigint_protection :
45684568 # For any stream that is a StdSim, we will use a pipe so we can capture its output
4569- proc = subprocess .Popen ( # type: ignore[call-overload] # noqa: S602
4569+ proc = subprocess .Popen ( # noqa: S602
45704570 expanded_command ,
45714571 stdout = subprocess .PIPE if isinstance (self .stdout , utils .StdSim ) else self .stdout , # type: ignore[unreachable]
4572- stderr = subprocess .PIPE if isinstance (sys .stderr , utils .StdSim ) else sys .stderr , # type: ignore[unreachable]
4572+ stderr = subprocess .PIPE if isinstance (sys .stderr , utils .StdSim ) else sys .stderr ,
45734573 shell = True ,
45744574 ** kwargs ,
45754575 )
45764576
4577- proc_reader = utils .ProcReader (proc , cast (TextIO , self .stdout ), sys .stderr ) # type: ignore[arg-type]
4577+ proc_reader = utils .ProcReader (proc , cast (TextIO , self .stdout ), sys .stderr )
45784578 proc_reader .wait ()
45794579
45804580 # Save the return code of the application for use in a pyscript
@@ -4656,9 +4656,9 @@ def _set_up_py_shell_env(self, interp: InteractiveConsole) -> _SavedCmd2Env:
46564656 # Save off the current completer and set a new one in the Python console
46574657 # Make sure it tab completes from its locals() dictionary
46584658 cmd2_env .readline_settings .completer = readline .get_completer ()
4659- interp .runcode ("from rlcompleter import Completer" ) # type: ignore[arg-type]
4660- interp .runcode ("import readline" ) # type: ignore[arg-type]
4661- interp .runcode ("readline.set_completer(Completer(locals()).complete)" ) # type: ignore[arg-type]
4659+ interp .runcode (compile ( "from rlcompleter import Completer" , "<stdin>" , "exec" ))
4660+ interp .runcode (compile ( "import readline" , "<stdin>" , "exec" ))
4661+ interp .runcode (compile ( "readline.set_completer(Completer(locals()).complete)" , "<stdin>" , "exec" ))
46624662
46634663 # Set up sys module for the Python console
46644664 self ._reset_py_display ()
@@ -4889,18 +4889,18 @@ def do_ipy(self, _: argparse.Namespace) -> bool | None: # pragma: no cover
48894889
48904890 # Detect whether IPython is installed
48914891 try :
4892- import traitlets .config .loader as traitlets_loader # type: ignore[import]
4892+ import traitlets .config .loader as traitlets_loader
48934893
48944894 # Allow users to install ipython from a cmd2 prompt when needed and still have ipy command work
48954895 try :
48964896 _dummy = start_ipython # noqa: F823
48974897 except NameError :
4898- from IPython import start_ipython # type: ignore[import]
4898+ from IPython import start_ipython
48994899
4900- from IPython .terminal .interactiveshell import ( # type: ignore[import]
4900+ from IPython .terminal .interactiveshell import (
49014901 TerminalInteractiveShell ,
49024902 )
4903- from IPython .terminal .ipapp import ( # type: ignore[import]
4903+ from IPython .terminal .ipapp import (
49044904 TerminalIPythonApp ,
49054905 )
49064906 except ImportError :
0 commit comments