CLI Configuration
Configuration system for multi-library CLI support
Configuration Class
Define the configuration structure for library-specific CLI tools:
LibraryConfig
def LibraryConfig(
package_name:str, cli_command:str, display_name:str, module_discovery_paths:List, core_package:str,
core_utilities:List, base_imports:List=<factory>, css_class_prefix:Optional=None,
test_pattern_prefix:str='test_', test_pattern_suffix:str='_examples', helper_test_suffix:str='helper_examples'
)->None:
Configuration for a specific library’s CLI tool.
Predefined Configurations
Define configurations for specific libraries:
get_tailwind_config
def get_tailwind_config(
)->LibraryConfig: # Configuration for cjm-fasthtml-tailwind library
Get configuration for cjm-fasthtml-tailwind library.
Configuration Management
Functions to manage the active configuration:
get_active_config
def get_active_config(
)->LibraryConfig: # The active library configuration (defaults to Tailwind)
Get the active library configuration. If no configuration is set, returns the Tailwind config.
set_active_config
def set_active_config(
config:LibraryConfig, # The library configuration to set as active
):
Set the active library configuration.
reset_config
def reset_config(
):
Reset the active configuration to force re-detection.
Configuration Factory
Factory function to get configuration by name:
get_config_by_name
def get_config_by_name(
name:str, # Library name ('tailwind')
)->Optional: # LibraryConfig or None if not found
Get a library configuration by name.
Configuration Utilities
Helper functions for working with configurations:
list_available_configs
def list_available_configs(
)->List: # List of available library configuration names
List all available library configurations.
get_config_info
def get_config_info(
config:LibraryConfig, # The library configuration to get information about
)->Dict: # Dictionary with configuration details
Get information about a configuration.