Yeoman generator that scaffolds Superset visualization plugins and packages with proper structure and boilerplate code
63
Build a simple extension manager utility that can load and validate Superset extensions from the filesystem.
Your solution should implement the following functionality:
Extension Discovery: Create a function that discovers all available extensions in the system by utilizing Superset's extension utilities.
Extension Validation: Create a function that validates whether a given extension directory or .supx file contains a valid manifest. The validation should check for:
Extension Information Display: Create a function that retrieves and displays information about loaded extensions, including their name, version, and type (if available).
CLI Interface: Create a simple command-line tool with the following commands:
list - Lists all discovered extensionsvalidate <path> - Validates an extension at the given pathinfo <name> - Shows detailed information about a specific extensionProvides business intelligence and data visualization capabilities, including an extension and plugin system.
Create a Python file extension_manager.py that implements the requirements above.
Create a test file test_extension_manager.py that validates your implementation.
Description: Test that the extension discovery function correctly identifies available extensions.
Input: Call the extension discovery function
Expected Output: Returns a list or dictionary of extensions (may be empty if no extensions are installed)
Description: Test that the validation function can identify when required manifest fields are missing.
Input: Create a temporary directory with an invalid manifest.json (missing required fields)
Expected Output: Validation returns False or an error indicating the manifest is invalid
Description: Test that extension information can be retrieved for loaded extensions.
Input: Call the extension information function
Expected Output: Returns information about extensions (may be empty list if no extensions are installed, but should not raise an error)
Install with Tessl CLI
npx tessl i tessl/npm-superset-ui--generator-supersetdocs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10