From 5010450ff60d341dbb72e9432cae20871549b27c Mon Sep 17 00:00:00 2001 From: Justin Bachus Date: Tue, 31 Mar 2026 22:48:10 +0000 Subject: [PATCH 1/3] Allow localtileserver prefix override and fix inferred prefix on JH --- leafmap/common.py | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/leafmap/common.py b/leafmap/common.py index e8d0232adb..7dc42b1d12 100644 --- a/leafmap/common.py +++ b/leafmap/common.py @@ -3316,21 +3316,23 @@ def get_local_tile_layer( for key in client_args: kwargs[key] = client_args[key] - # Make it compatible with binder and JupyterHub - if os.environ.get("JUPYTERHUB_SERVICE_PREFIX") is not None: - os.environ["LOCALTILESERVER_CLIENT_PREFIX"] = ( - f"{os.environ['JUPYTERHUB_SERVICE_PREFIX'].lstrip('/')}/proxy/{{port}}" - ) - - if is_studio_lab(): - os.environ["LOCALTILESERVER_CLIENT_PREFIX"] = ( - f"studiolab/default/jupyter/proxy/{{port}}" - ) - elif is_on_aws(): - os.environ["LOCALTILESERVER_CLIENT_PREFIX"] = "proxy/{port}" - elif "prefix" in kwargs: - os.environ["LOCALTILESERVER_CLIENT_PREFIX"] = kwargs["prefix"] - kwargs.pop("prefix") + # Only override LOCALTILESERVER_CLIENT_PREFIX if it's unset + if os.environ.get("LOCALTILESERVER_CLIENT_PREFIX") is None: + # Make it compatible with binder and JupyterHub + if os.environ.get("JUPYTERHUB_SERVICE_PREFIX") is not None: + os.environ["LOCALTILESERVER_CLIENT_PREFIX"] = ( + f"{os.environ['JUPYTERHUB_SERVICE_PREFIX'].lstrip('/')}proxy/{{port}}" + ) + + if is_studio_lab(): + os.environ["LOCALTILESERVER_CLIENT_PREFIX"] = ( + f"studiolab/default/jupyter/proxy/{{port}}" + ) + elif is_on_aws(): + os.environ["LOCALTILESERVER_CLIENT_PREFIX"] = "proxy/{port}" + elif "prefix" in kwargs: + os.environ["LOCALTILESERVER_CLIENT_PREFIX"] = kwargs["prefix"] + kwargs.pop("prefix") from localtileserver import ( TileClient, From 0deb8b16e0c5f42765f24be0ed2bc86f3c684b95 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 23:02:01 +0000 Subject: [PATCH 2/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- leafmap/common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/leafmap/common.py b/leafmap/common.py index 7dc42b1d12..c1c8b263ea 100644 --- a/leafmap/common.py +++ b/leafmap/common.py @@ -3323,7 +3323,7 @@ def get_local_tile_layer( os.environ["LOCALTILESERVER_CLIENT_PREFIX"] = ( f"{os.environ['JUPYTERHUB_SERVICE_PREFIX'].lstrip('/')}proxy/{{port}}" ) - + if is_studio_lab(): os.environ["LOCALTILESERVER_CLIENT_PREFIX"] = ( f"studiolab/default/jupyter/proxy/{{port}}" From dcac4eb9b622ddd29ef511ab30b81c702ab5dc09 Mon Sep 17 00:00:00 2001 From: Justin Bachus Date: Tue, 31 Mar 2026 17:13:52 -0600 Subject: [PATCH 3/3] apply copilot recommendations --- leafmap/common.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/leafmap/common.py b/leafmap/common.py index c1c8b263ea..ff5a302367 100644 --- a/leafmap/common.py +++ b/leafmap/common.py @@ -3321,7 +3321,7 @@ def get_local_tile_layer( # Make it compatible with binder and JupyterHub if os.environ.get("JUPYTERHUB_SERVICE_PREFIX") is not None: os.environ["LOCALTILESERVER_CLIENT_PREFIX"] = ( - f"{os.environ['JUPYTERHUB_SERVICE_PREFIX'].lstrip('/')}proxy/{{port}}" + f"{os.environ['JUPYTERHUB_SERVICE_PREFIX'].strip('/')}/proxy/{{port}}" ) if is_studio_lab(): @@ -3330,9 +3330,11 @@ def get_local_tile_layer( ) elif is_on_aws(): os.environ["LOCALTILESERVER_CLIENT_PREFIX"] = "proxy/{port}" - elif "prefix" in kwargs: - os.environ["LOCALTILESERVER_CLIENT_PREFIX"] = kwargs["prefix"] - kwargs.pop("prefix") + + # The prefix kwarg has final precedence + if "prefix" in kwargs: + os.environ["LOCALTILESERVER_CLIENT_PREFIX"] = kwargs["prefix"] + kwargs.pop("prefix") from localtileserver import ( TileClient,