33# Copyright (c) IPython Development Team.
44# Distributed under the terms of the Modified BSD License.
55
6+ from __future__ import annotations
7+
68import errno
79import json
810import os
911import shutil
1012import stat
1113import sys
1214import tempfile
15+ from typing import Any
1316
1417from jupyter_client .kernelspec import KernelSpecManager
1518from traitlets import Unicode
2730RESOURCES = pjoin (os .path .dirname (__file__ ), "resources" )
2831
2932
30- def make_ipkernel_cmd (mod = "ipykernel_launcher" , executable = None , extra_arguments = None ):
33+ def make_ipkernel_cmd (
34+ mod : str = "ipykernel_launcher" ,
35+ executable : str | None = None ,
36+ extra_arguments : list [str ] | None = None ,
37+ ) -> list [str ]:
3138 """Build Popen command list for launching an IPython kernel.
3239
3340 Parameters
@@ -52,7 +59,7 @@ def make_ipkernel_cmd(mod="ipykernel_launcher", executable=None, extra_arguments
5259 return arguments
5360
5461
55- def get_kernel_dict (extra_arguments = None ):
62+ def get_kernel_dict (extra_arguments : list [ str ] | None = None ) -> dict [ str , Any ] :
5663 """Construct dict for kernel.json"""
5764 return {
5865 "argv" : make_ipkernel_cmd (extra_arguments = extra_arguments ),
@@ -62,7 +69,11 @@ def get_kernel_dict(extra_arguments=None):
6269 }
6370
6471
65- def write_kernel_spec (path = None , overrides = None , extra_arguments = None ):
72+ def write_kernel_spec (
73+ path : str | None = None ,
74+ overrides : dict [str , Any ] | None = None ,
75+ extra_arguments : list [str ] | None = None ,
76+ ) -> str :
6677 """Write a kernel spec directory to `path`
6778
6879 If `path` is not specified, a temporary directory is created.
@@ -93,14 +104,14 @@ def write_kernel_spec(path=None, overrides=None, extra_arguments=None):
93104
94105
95106def install (
96- kernel_spec_manager = None ,
97- user = False ,
98- kernel_name = KERNEL_NAME ,
99- display_name = None ,
100- prefix = None ,
101- profile = None ,
102- env = None ,
103- ):
107+ kernel_spec_manager : KernelSpecManager | None = None ,
108+ user : bool = False ,
109+ kernel_name : str = KERNEL_NAME ,
110+ display_name : str | None = None ,
111+ prefix : str | None = None ,
112+ profile : str | None = None ,
113+ env : dict [ str , str ] | None = None ,
114+ ) -> str :
104115 """Install the IPython kernelspec for Jupyter
105116
106117 Parameters
@@ -136,7 +147,7 @@ def install(
136147 # kernel_name is specified and display_name is not
137148 # default display_name to kernel_name
138149 display_name = kernel_name
139- overrides = {}
150+ overrides : dict [ str , Any ] = {}
140151 if display_name :
141152 overrides ["display_name" ] = display_name
142153 if profile :
@@ -154,7 +165,7 @@ def install(
154165 )
155166 # cleanup afterward
156167 shutil .rmtree (path )
157- return dest
168+ return dest # type:ignore[no-any-return]
158169
159170
160171# Entrypoint
@@ -167,13 +178,13 @@ class InstallIPythonKernelSpecApp(Application):
167178
168179 name = Unicode ("ipython-kernel-install" )
169180
170- def initialize (self , argv = None ):
181+ def initialize (self , argv : list [ str ] | None = None ) -> None :
171182 """Initialize the app."""
172183 if argv is None :
173184 argv = sys .argv [1 :]
174185 self .argv = argv
175186
176- def start (self ):
187+ def start (self ) -> None :
177188 """Start the app."""
178189 import argparse
179190
0 commit comments