graph LR
Plugin_Extension_System["Plugin/Extension System"]
Context_Management["Context Management"]
Command_Definition_Layer["Command Definition Layer"]
Argument_Type_Validation_System["Argument/Type Validation System"]
Interactive_Shell_REPL_Engine["Interactive Shell/REPL Engine"]
Auto_completion_Engine["Auto-completion Engine"]
UI_Status_Bar["UI/Status Bar"]
Command_Blacklisting["Command Blacklisting"]
Plugin_Extension_System -- "enables context modification for" --> Context_Management
Plugin_Extension_System -- "enables command discovery for" --> Command_Definition_Layer
Plugin_Extension_System -- "enables argument validation and parsing for" --> Argument_Type_Validation_System
Plugin_Extension_System -- "enables extension of" --> Interactive_Shell_REPL_Engine
Plugin_Extension_System -- "enables auto-completion data contribution for" --> Auto_completion_Engine
Plugin_Extension_System -- "enables UI/Status Bar customization for" --> UI_Status_Bar
Plugin_Extension_System -- "enables command blacklisting contribution for" --> Command_Blacklisting
click Plugin_Extension_System href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/python-nubia/Plugin_Extension_System.md" "Details"
click Auto_completion_Engine href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/python-nubia/Auto_completion_Engine.md" "Details"
The Plugin/Extension System in Nubia is a critical architectural component that embodies the framework's commitment to modularity and extensibility. It provides a well-defined interface, primarily through nubia.internal.plugin_interface.PluginInterface, allowing developers to inject custom logic and extend core functionalities without modifying the main codebase.
Plugin/Extension System [Expand]
The foundational interface (PluginInterface) that defines the contract for extending the core CLI framework. It acts as the central hub through which all other components within this subsystem expose their extension points.
Related Classes/Methods:
Manages the application's runtime context and state. The Plugin System allows plugins to create and modify this context, ensuring that commands and other components operate within a consistent environment.
Related Classes/Methods:
Responsible for defining and exposing CLI commands. The Plugin System utilizes this layer to discover and register commands provided by extensions, making them available for execution within the CLI.
Related Classes/Methods:
Handles the parsing and validation of command-line arguments and options. The Plugin System allows plugins to hook into this process, providing custom validation logic or argument parsers.
Related Classes/Methods:
nubia.internal.plugin_interface.PluginInterface:validate_argsnubia.internal.plugin_interface.PluginInterface:get_opts_parser
Provides the core interactive shell experience, including handling user input, executing commands, and managing the REPL loop. The Plugin System enables plugins to extend this engine with custom "magic" commands, modify prompt tokens, and update IPython configurations.
Related Classes/Methods:
nubia.internal.plugin_interface.PluginInterface:get_magicsnubia.internal.plugin_interface.PluginInterface:get_prompt_tokensnubia.internal.plugin_interface.PluginInterface:update_ipython_kwargs
Auto-completion Engine [Expand]
Facilitates intelligent auto-completion for commands and arguments within the interactive shell. The Plugin System allows plugins to contribute data sources for auto-completion, enhancing the user experience.
Related Classes/Methods:
Manages the display and content of the interactive shell's status bar, providing real-time feedback to the user. The Plugin System allows plugins to customize the status bar's appearance and information.
Related Classes/Methods:
Implements logic to prevent certain commands from being executed, based on predefined rules or user configurations. The Plugin System allows plugins to define and contribute to this blacklisting mechanism.
Related Classes/Methods: