Skip to content

Latest commit

 

History

History
108 lines (62 loc) · 7.37 KB

File metadata and controls

108 lines (62 loc) · 7.37 KB
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"
Loading

CodeBoardingDemoContact

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:

Context Management

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:

Command Definition Layer

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:

Argument/Type Validation System

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:

Interactive Shell/REPL Engine

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:

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:

UI/Status Bar

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:

Command Blacklisting

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: