@@ -100,13 +100,14 @@ class CustomPygWalkerHandler(_PygWalkerHandler):
100100 return CustomPygWalkerHandler
101101
102102
103- def _start_server (walker : PygWalker ):
103+ def _start_server (walker : PygWalker , port : Optional [ int ] ):
104104 """Start a server with walker"""
105105 state = _GlobalState ()
106106 walker ._init_callback (BaseCommunication (str (walker .gid )))
107107
108108 handler = _create_handler_with_walker (walker , state )
109- port = find_free_port ()
109+ if port is None :
110+ port = find_free_port ()
110111 address = f"http://localhost:{ port } "
111112
112113 try :
@@ -144,6 +145,7 @@ def walk(
144145 show_cloud_tool : bool = True ,
145146 kanaries_api_key : str = "" ,
146147 default_tab : Literal ["data" , "vis" ] = "vis" ,
148+ port : Optional [int ] = None ,
147149 ** kwargs
148150):
149151 """Walk through pandas.DataFrame df with Graphic Walker
@@ -161,6 +163,7 @@ def walk(
161163 - kanaries_api_key (str): kanaries api key, Default to "".
162164 - default_tab (Literal["data", "vis"]): default tab to show. Default to "vis"
163165 - cloud_computation(bool): Whether to use cloud compute for datas, it upload your data to kanaries cloud. Default to False.
166+ - port (int): port to use for the server. Default to None, which means a random port will be used.
164167 """
165168 check_expired_params (kwargs )
166169
@@ -186,7 +189,7 @@ def walk(
186189 cloud_computation = cloud_computation ,
187190 ** kwargs
188191 )
189- _start_server (walker )
192+ _start_server (walker , port )
190193
191194
192195def render (
@@ -197,6 +200,7 @@ def render(
197200 appearance : IAppearance = 'media' ,
198201 kernel_computation : Optional [bool ] = None ,
199202 kanaries_api_key : str = "" ,
203+ port : Optional [int ] = None ,
200204 ** kwargs
201205):
202206 """
@@ -209,6 +213,7 @@ def render(
209213 - appearance (Literal['media' | 'light' | 'dark']): 'media': auto detect OS theme.
210214 - kernel_computation(bool): Whether to use kernel compute for datas, Default to None.
211215 - kanaries_api_key (str): kanaries api key, Default to "".
216+ - port (int): port to use for the server. Default to None, which means a random port will be used.
212217 """
213218
214219 walker = PygWalker (
@@ -230,7 +235,7 @@ def render(
230235 cloud_computation = False ,
231236 ** kwargs
232237 )
233- _start_server (walker )
238+ _start_server (walker , port )
234239
235240
236241def table (
@@ -240,6 +245,7 @@ def table(
240245 appearance : IAppearance = 'media' ,
241246 kernel_computation : Optional [bool ] = None ,
242247 kanaries_api_key : str = "" ,
248+ port : Optional [int ] = None ,
243249 ** kwargs
244250):
245251 """
@@ -251,6 +257,7 @@ def table(
251257 - appearance (Literal['media' | 'light' | 'dark']): 'media': auto detect OS theme.
252258 - kernel_computation(bool): Whether to use kernel compute for datas, Default to None.
253259 - kanaries_api_key (str): kanaries api key, Default to "".
260+ - port (int): port to use for the server. Default to None, which means a random port will be used.
254261 """
255262 walker = PygWalker (
256263 gid = None ,
@@ -271,4 +278,4 @@ def table(
271278 cloud_computation = False ,
272279 ** kwargs
273280 )
274- _start_server (walker )
281+ _start_server (walker , port )
0 commit comments