Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 39 additions & 3 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,39 @@
{
"azureTerraform.checkTerraformCmd": false
}
{
"editor.tabSize": 4,
"editor.insertSpaces": true,
"editor.formatOnSave": true,
"editor.rulers": [
88
],
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
},
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"python.analysis.typeCheckingMode": "basic",
"python.defaultInterpreterPath": ".venv/Scripts/python.exe",
"python.formatting.provider": "black",
"python.linting.enabled": true,
"python.linting.flake8Enabled": true,
"python.linting.mypyEnabled": false,
"python.testing.pytestEnabled": true,
"python.testing.unittestEnabled": false,
"python.testing.autoTestDiscoverOnSaveEnabled": true,
"git.enableSmartCommit": true,
"git.confirmSync": false,
"git.autofetch": true,
"workbench.colorTheme": "Dracula Theme",
"workbench.iconTheme": "material-icon-theme",
"errorLens.enabled": true,
"breadcrumbs.enabled": true,
"files.exclude": {
"**/__pycache__": true,
"**/*.pyc": true,
".venv": true,
"venv": true
},
"terminal.integrated.env.linux": {
"PYTHONPATH": "${workspaceFolder}"
},
"terminal.integrated.scrollback": 10000
}
4 changes: 4 additions & 0 deletions Initial setting.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process

.venv/Scripts/activate # Windows
source .venv/bin/activate # Ubuntu
16 changes: 15 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
- **Efficient filtering:** Client-side log deduplication and filtering
- **Graceful reconnection:** Automatic retry logic for network issues

## Installation
## Installation and use of UV

```bash
# Clone the repository
Expand All @@ -45,6 +45,20 @@ uv sync --extra test

# Install the project in editable mode for local development
uv pip install -e .

# ...

# NOTE: Since uv provides and manages all dependencies required by the software, it’s recommended to use uv run when executing commands such as tests or CLI operations.
# This ensures that all dependencies are correctly resolved within the managed environment.

# Example:
uv run maestro server start
uv run pytest

# Alternatively, you can start an interactive environment once and run commands normally (if "uv shell" is implemented):
uv shell
maestro server start
pytest
```

## Usage
Expand Down
Binary file added README.pdf
Binary file not shown.
1 change: 1 addition & 0 deletions data.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"values": [1, 2, 3, 4, 5]}
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
19 changes: 19 additions & 0 deletions examples/2_New_examples/1_basic_linear.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
dag:
name: "basic_linear"
tasks:
- task_id: "start"
type: "PrintTask"
params:
message: "Starting DAG"
dependencies: []
- task_id: "process"
type: "PythonTask"
params:
code: |
print("Processing data...")
dependencies: ["start"]
- task_id: "finish"
type: "PrintTask"
params:
message: "DAG completed!"
dependencies: ["process"]
18 changes: 18 additions & 0 deletions examples/2_New_examples/2_bash_chain.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
dag:
name: "bash_chain"
tasks:
- task_id: "list_files"
type: "BashTask"
params:
command: "ls -l"
dependencies: []
- task_id: "count_lines"
type: "BashTask"
params:
command: "wc -l <<< 'Counting lines from previous output'"
dependencies: ["list_files"]
- task_id: "end"
type: "PrintTask"
params:
message: "Bash chain complete!"
dependencies: ["count_lines"]
19 changes: 19 additions & 0 deletions examples/2_New_examples/3_wait_and_retry.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
dag:
name: "wait_and_retry"
tasks:
- task_id: "unstable_task"
type: "PythonTask"
params:
code: |
import random, sys
if random.random() < 0.5:
sys.exit(1)
print("Success on this run!")
retries: 3
retry_delay: 2
dependencies: []
- task_id: "final_message"
type: "PrintTask"
params:
message: "Pipeline finished after retry logic"
dependencies: ["unstable_task"]
21 changes: 21 additions & 0 deletions examples/2_New_examples/4_conditional_branching.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
dag:
name: "conditional_branching"
tasks:
- task_id: "check_condition"
type: "PythonTask"
params:
code: |
import random
result = "branch_a" if random.random() > 0.5 else "branch_b"
print(f"Next step: {result}")
dependencies: []
- task_id: "branch_a"
type: "PrintTask"
params:
message: "Running branch A"
dependencies: ["check_condition"]
- task_id: "branch_b"
type: "PrintTask"
params:
message: "Running branch B"
dependencies: ["check_condition"]
9 changes: 9 additions & 0 deletions examples/2_New_examples/5_cron_heartbeat.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
dag:
name: "cron_heartbeat"
cron_schedule: "*/10 * * * *" # Ogni 10 minuti
tasks:
- task_id: "heartbeat"
type: "PrintTask"
params:
message: "Heartbeat: Maestro is alive!"
dependencies: []
9 changes: 9 additions & 0 deletions examples/2_New_examples/6_scheduled_greeting.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
dag:
name: "scheduled_greeting"
start_time: "2025-10-23T09:00:00"
tasks:
- task_id: "greet"
type: "PrintTask"
params:
message: "Good morning! This task started at 09:00!"
dependencies: []
28 changes: 28 additions & 0 deletions examples/2_New_examples/7_mixed_execution.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
dag:
name: "mixed_execution"
tasks:
- task_id: "init"
type: "PrintTask"
params:
message: "Starting mixed DAG..."
dependencies: []
- task_id: "generate_data"
type: "PythonTask"
params:
code: |
import json
data = {"values": [1, 2, 3, 4, 5]}
with open("data.json", "w") as f:
json.dump(data, f)
print("Generated data.json")
dependencies: ["init"]
- task_id: "count_values"
type: "BashTask"
params:
command: "cat data.json | grep -o '[0-9]' | wc -l"
dependencies: ["generate_data"]
- task_id: "finish"
type: "PrintTask"
params:
message: "Mixed execution complete."
dependencies: ["count_values"]
Binary file added examples/2_New_examples/DAG explanation.ods
Binary file not shown.
Loading
Loading