panel.io.compile module#
- panel.io.compile.compile_components(components: list[type[ReactiveESM]], build_dir: str | PathLike | None = None, outfile: str | PathLike | None = None, minify: bool = True, verbose: bool = True) int | str | None [source]#
Compiles a list of ReactiveESM components into a single JavaScript bundle including their Javascript dependencies.
- Parameters:
- componentslist[type[ReactiveESM]]
A list of ReactiveESM component classes to compile.
- build_dirstr | os.PathLike, optional
The directory where the build output will be saved. If None, a temporary directory will be used.
- outfilestr | os.PathLike, optional
The path to the output file where the compiled bundle will be saved. If None the compiled output will be returned.
- minifybool, optional
If True, minifies the compiled JavaScript bundle.
- verbosebool, optional
If True, prints detailed logs during the compilation process.
- Returns:
- Returns the compiled bundle or None if outfile is provided.
- panel.io.compile.extract_dependencies(component: type[ReactiveESM]) tuple[str, dict[str, Any]] [source]#
Extracts dependencies from a ReactiveESM component by parsing its importmap and the associated code and replaces URL import specifiers with package imports.
- Parameters:
- component: type[ReactiveESM]
The ReactiveESM component to extract a dependency definition from.
- Returns:
- code: str
Code where the URL imports have been replaced by package imports.
- dependencies: dict[str, str]
A dictionary of package dependencies and their versions.
- panel.io.compile.find_components(module_or_file: str | PathLike, classes: list[str] | None = None) list[type[ReactiveESM]] [source]#
Creates a temporary module given a path-like object and finds all the ReactiveESM components defined therein.
- Parameters:
- module_or_filestr | os.PathLike
The path to the Python module.
- classes: list[str] | None
Names of classes to return.
- Returns:
- List of ReactiveESM components defined in the module.
- panel.io.compile.find_module_bundles(module_spec: str) dict[Path, list[ReactiveESM]] [source]#
Takes module specifications and extracts a set of components to bundle.
- Parameters:
- module_spec: str
Module specification either as a dotted module or a path to a module.
- Returns:
- Dictionary containing the bundle paths and list of components to bundle.
- panel.io.compile.generate_project(components: list[type[ReactiveESM]], path: str | PathLike, project_config: dict[str, Any] | None = None)[source]#
Converts a set of ESM components into a Javascript project with an index.js, package.json and a T|JS(X) per component.
- panel.io.compile.merge_exports(old: ExportSpec, new: ExportSpec)[source]#
Appends the new exports to set of existing ones.
Appropriately combines different kinds of exports including default, import-all exports and named exports.
- panel.io.compile.packages_from_code(esm_code: str) tuple[str, dict[str, str]] [source]#
Extracts package version definitions from ESM code.
- Parameters:
- esm_codestr
The ESM code to search for package imports.
- Returns:
- Dictionary of packages and their versions.
- panel.io.compile.packages_from_importmap(esm_code: str, imports: dict[str, str]) tuple[str, dict[str, str]] [source]#
Extracts package version definitions from an import map.
- Parameters:
- esm_code: str
The ESM code to replace import names in.
- importsdict[str, str]
A dictionary representing the import map, where keys are package names and values are URLs.
- Returns:
- dict[str, str]
A dictionary where keys are package names and values are their corresponding versions.
- panel.io.compile.replace_imports(esm_code: str, replacements: dict[str, str]) str [source]#
Replaces imports in the code which may be aliases with the actual package names.
- Parameters:
- esm_code: str
The ESM code to replace import names in.
- replacements: dict[str, str]
Mapping that defines replacements from aliased import names to actual package names.
- Returns:
- modified_code: str
The code where imports have been replaced with package names.