Spaces:
				
			
			
	
			
			
		Running
		
			on 
			
			Zero
	
	
	
			
			
	
	
	
	
		
		
		Running
		
			on 
			
			Zero
	File size: 3,876 Bytes
			
			| d1ed09d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | #-----------------------------------------------------------------------------
# Copyright (c) 2012 - 2022, Anaconda, Inc., and Bokeh Contributors.
# All rights reserved.
#
# The full license is in the file LICENSE.txt, distributed with this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Boilerplate
#-----------------------------------------------------------------------------
from __future__ import annotations
import logging # isort:skip
log = logging.getLogger(__name__)
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
# Standard library imports
import os
from os.path import join
from subprocess import Popen
from typing import List
# Bokeh imports
from . import __version__
from .core.types import PathLike
from .settings import settings
from .util.compiler import _nodejs_path
#-----------------------------------------------------------------------------
# Globals and constants
#-----------------------------------------------------------------------------
__all__ = ("init", "build")
#-----------------------------------------------------------------------------
# General API
#-----------------------------------------------------------------------------
def init(base_dir: PathLike, *, interactive: bool = False,
         bokehjs_version: str | None = None, debug: bool = False) -> bool:
    """
    Initialize a directory as a new bokeh extension.
    Arguments:
        base_dir (str) : The location of the extension.
        interactive (bool) : Guide the user step-by-step.
        bokehjs_version (str) : Use a specific version of bokehjs.
        debug (bool) : Allow for remote debugging.
    Returns:
        bool
    """
    args: List[str] = []
    if interactive:
        args.append("--interactive")
    if bokehjs_version:
        args.extend(["--bokehjs-version", bokehjs_version])
    proc = _run_command("init", base_dir, args, debug)
    return proc.returncode == 0
def build(base_dir: PathLike, *, rebuild: bool = False, debug: bool = False) -> bool:
    """
    Build a bokeh extension in the given directory.
    Arguments:
        base_dir (str) : The location of the extension.
        rebuild (bool) : Ignore caches and rebuild from scratch.
        debug (bool) : Allow for remote debugging.
    Returns:
        bool
    """
    args: List[str] = []
    if rebuild:
        args.append("--rebuild")
    proc = _run_command("build", base_dir, args, debug)
    return proc.returncode == 0
#-----------------------------------------------------------------------------
# Dev API
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Private API
#-----------------------------------------------------------------------------
def _run_command(command: str, base_dir: PathLike, args: List[str], debug: bool = False) -> Popen[bytes]:
    bokehjs_dir = settings.bokehjsdir()
    if debug:
        compiler_script = join(bokehjs_dir, "js", "compiler", "main.js")
    else:
        compiler_script = join(bokehjs_dir, "js", "compiler.js")
    cmd = [
        "--no-deprecation",
        compiler_script,
        command,
        "--base-dir", os.fspath(base_dir),
        "--bokehjs-dir", bokehjs_dir,
        "--bokeh-version", __version__,
    ]
    if debug:
        cmd.insert(0, "--inspect-brk")
    cmd.extend(args)
    proc = Popen([_nodejs_path()] + cmd)
    proc.communicate()
    return proc
#-----------------------------------------------------------------------------
# Code
#-----------------------------------------------------------------------------
 |