Launch an image with a temporary user via JupyterHub
- class binderhub.launcher.Launcher(**kwargs: Any)#
Object for encapsulating launching an image for a user
- allow_named_servers c.Launcher.allow_named_servers = Bool(False)#
Named user servers are allowed. This is used only when authentication is enabled and to set unique names for user servers.
- async api_request(url, *args, **kwargs)#
Make an API request to JupyterHub
- async launch(image, username, server_name='', repo_url='', extra_args=None, event_callback=None)#
Launch a server for a given image
creates a temporary user on the Hub if authentication is not enabled
spawns a server for temporary/authenticated user
generates a token
returns a dict containing: -
url: the URL of the server -
image: image spec -
repo_url: the url of the repo -
extra_args: Dictionary of extra arguments passed to the server -
token: the token for the server
- launch_timeout c.Launcher.launch_timeout = Int(600)#
Wait this many seconds until server is ready, raise TimeoutError otherwise.
- named_server_limit_per_user c.Launcher.named_server_limit_per_user = Int(0)#
Maximum number of concurrent named servers that can be created by a user.
- pre_launch_hook c.Launcher.pre_launch_hook = Callable(None)#
An optional hook function that you can use to implement checks before starting a user’s server. For example if you have a non-standard BinderHub deployment, in this hook you can check if the current user has right to launch a new repo.
Receives 5 parameters: launcher, image, username, server_name, repo_url
- retries c.Launcher.retries = Int(4)#
Number of attempts to make on Hub API requests.
Adds resiliency to intermittent Hub failures, most commonly due to Hub, proxy, or ingress interruptions.
- retry_delay c.Launcher.retry_delay = Int(4)#
Time (seconds) to wait between retries for Hub API requests.
Time is scaled exponentially by the retry attempt (i.e. 2, 4, 8, 16 seconds)