graph LR
CLI_Command_Dispatcher["CLI Command Dispatcher"]
Graph_Environment_Preparer["Graph Environment Preparer"]
Path_based_Graph_Runner["Path-based Graph Runner"]
Project_Initializer["Project Initializer"]
Resource_Downloader["Resource Downloader"]
Django_CLI_Extender["Django CLI Extender"]
CLI_Command_Dispatcher -- "invokes" --> Project_Initializer
CLI_Command_Dispatcher -- "invokes" --> Resource_Downloader
CLI_Command_Dispatcher -- "invokes" --> Path_based_Graph_Runner
Graph_Environment_Preparer -- "prepares_for" --> Path_based_Graph_Runner
Path_based_Graph_Runner -- "depends_on" --> Graph_Environment_Preparer
Project_Initializer -- "invoked_by" --> CLI_Command_Dispatcher
Resource_Downloader -- "invoked_by" --> CLI_Command_Dispatcher
Django_CLI_Extender -- "leverages" --> CLI_Command_Dispatcher
Django_CLI_Extender -- "leverages" --> Graph_Environment_Preparer
The Command Line Interface (CLI) subsystem of Bonobo serves as the primary user interface, enabling graph execution, project setup, and various utility functions. It acts as the entry point for most user-driven operations, aligning with the project's focus on data flow and transformation within an ETL framework.
Serves as the primary entry point for all Bonobo CLI commands. It parses command-line arguments, identifies the requested command, and delegates execution to the appropriate specific command handler. This component embodies the "Orchestrator" pattern for user-driven operations, directing the flow of control based on user input.
Related Classes/Methods:
Interprets user input to configure the environment for graph execution. This includes overriding runner configurations and resolving paths to graph definitions, ensuring the ETL pipeline has the correct context before execution. It acts as a "Configuration Management" component for the execution engine.
Related Classes/Methods:
Executes a Bonobo graph specified by a file path. It ensures necessary dependencies are installed and orchestrates the actual running of the defined ETL pipeline. This is a core "Execution Engine" component within the CLI, directly responsible for initiating data processing.
Related Classes/Methods:
Facilitates the creation of new Bonobo projects or components by generating files from templates and setting up directory structures. This supports the "Modularity and Reusability" aspect by providing scaffolding for new ETL projects, enabling developers to quickly set up new pipelines.
Related Classes/Methods:
Manages the downloading of external resources, which can serve as data sources for ETL processes. This acts as a specialized "Extractor" utility within the CLI, providing a direct means to acquire data for pipelines.
Related Classes/Methods:
Provides an entry point for Django-specific CLI commands, extending Bonobo's capabilities to integrate with Django projects and execute Django-related Bonobo graphs. This exemplifies the "Plugin/Extension" pattern, showcasing the framework's extensibility.
Related Classes/Methods: