lanes-engine 2.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,128 @@
1
+ Metadata-Version: 2.4
2
+ Name: lanes-engine
3
+ Version: 2.0.0
4
+ Summary: Lanes Engine
5
+ Author: Lanes Wizard
6
+ Requires-Python: >=3.9
7
+ Description-Content-Type: text/markdown
8
+ Requires-Dist: httpx>=0.20.0
9
+ Requires-Dist: premailer>=3.10.0
10
+ Dynamic: author
11
+ Dynamic: description
12
+ Dynamic: description-content-type
13
+ Dynamic: requires-dist
14
+ Dynamic: requires-python
15
+ Dynamic: summary
16
+
17
+ # ๐Ÿง™ LANES-ENGINE โ€” Python CLI Orchestration Engine (v1.2.0)
18
+
19
+ `lanes-engine` is a terminal-native, highly parallel 15-lane email delivery engine written in Python leveraging `asyncio`. It divides massive recipient lists equally across 15 async workers executing concurrently in batches of 20 with live dashboard output, checkpoint-based resume controls, and **non-interactive** failure retry via `resend --failed-only`.
20
+
21
+ ---
22
+
23
+ ## ๐ŸŽจ Visual Console Theme
24
+
25
+ ```
26
+ โœฆ ยท โœง ยท โœฆ ยท โœง ยท โœฆ
27
+ โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
28
+ โ•‘ โ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ•‘
29
+ โ•‘ โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ• โ•‘
30
+ โ•‘ โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ•‘
31
+ โ•‘ โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ• โ•šโ•โ•โ•โ•โ–ˆโ–ˆโ•‘ โ•‘
32
+ โ•‘ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘ โ•‘
33
+ โ•‘ โ•šโ•โ•โ•โ•โ•โ•โ•โ•šโ•โ• โ•šโ•โ•โ•šโ•โ• โ•šโ•โ•โ•โ•โ•šโ•โ•โ•โ•โ•โ•โ•โ•šโ•โ•โ•โ•โ•โ•โ• โ•‘
34
+ โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
35
+ "We route the mail through chaos"
36
+ โœง ยท โœฆ ยท โœง ยท โœฆ ยท โœง
37
+ ```
38
+
39
+ * **24-bit gradient banner** (cyan โ†’ magenta, line-by-line)
40
+ * **Async typewriter** banner animation on cold start
41
+ * **Braille spinner** during session load + connection pre-warm
42
+ * **Hooded wizard ASCII mascot** drawn at start of every command
43
+ * **Per-lane live status glyphs** (โ— sending, โ— done, โ—‹ idle)
44
+ * **Confetti burst** when the campaign finishes
45
+
46
+ ---
47
+
48
+ ## ๐Ÿš€ Core Features
49
+
50
+ 1. **15 Parallel Async Lanes**: Distributes recipient lists equally across 15 lanes using an asynchronous round-robin queue.
51
+ 2. **File-Driven Input**: Zero database requirements. Just drop `email.txt` and `senders.csv`.
52
+ 3. **Live Dashboard Metrics**: Gradient progress bar, per-lane glyphs, processing speed, failure count.
53
+ 4. **Auto-Retry (`resend --failed-only`)**: After any run, the engine writes `lanes-session.json` (template + recipients). Re-run failed emails non-interactively with one command.
54
+ 5. **Fast Cold Start**: Backend connection pre-warmed in parallel with file parsing; `premailer` is lazy-loaded only when HTML mode is enabled.
55
+ 6. **No Web Bloat**: Strictly a CLI engine built for speed.
56
+
57
+ ---
58
+
59
+ ## ๐Ÿ“ Input Format Requirements
60
+
61
+ ### 1. `email.txt`
62
+ Place this in your working directory. Use `Subject:` as the first line header. Supports template rendering via `{{placeholder}}`:
63
+ ```txt
64
+ Subject: Welcome {{name}} to Scholarly!
65
+
66
+ Hello {{name}},
67
+
68
+ Your journey through the lanes begins now.
69
+
70
+ โ€” MQ Team
71
+ ```
72
+
73
+ ### 2. `senders.csv`
74
+ Contains the recipient email list and fields for templating:
75
+ ```csv
76
+ email,name
77
+ alex@gmail.com,Alex
78
+ sara@gmail.com,Sara
79
+ john@gmail.com,John
80
+ ```
81
+
82
+ ---
83
+
84
+ ## โš™๏ธ Installation & Commands
85
+
86
+ Install from PyPI:
87
+ ```bash
88
+ pip install lanes-engine
89
+ ```
90
+
91
+ ### 1. Initialize Templates
92
+ Create initial `email.txt` and `senders.csv` mock templates in your current directory:
93
+ ```bash
94
+ lanes-engine init
95
+ ```
96
+
97
+ ### 2. Run Campaign Processing
98
+ Parse the local templates and start the 15 parallel workers:
99
+ ```bash
100
+ lanes-engine send
101
+ ```
102
+
103
+ ### 3. Check Latest Summary
104
+ Read the final log report from the latest run:
105
+ ```bash
106
+ lanes-engine status
107
+ ```
108
+
109
+ ### 4. Open Detailed Performance Breakdown
110
+ Displays per-lane success/error counts and detailed failure stream error messages:
111
+ ```bash
112
+ lanes-engine report
113
+ ```
114
+
115
+ ### 5. Auto-Resend Failed Emails (Non-Interactive)
116
+ Re-runs only the recipients that failed in the most recent session, using the saved `lanes-session.json`. No prompts, no interactive recycle loop:
117
+ ```bash
118
+ lanes-engine resend --failed-only
119
+ ```
120
+ You can chain `--no-banner` to skip the startup animation in CI/scripted environments:
121
+ ```bash
122
+ lanes-engine resend --failed-only --no-banner
123
+ ```
124
+
125
+ ---
126
+
127
+ ## ๐Ÿ“„ License
128
+ MIT ยฉ Lanes Wizard
@@ -0,0 +1,112 @@
1
+ # ๐Ÿง™ LANES-ENGINE โ€” Python CLI Orchestration Engine (v1.2.0)
2
+
3
+ `lanes-engine` is a terminal-native, highly parallel 15-lane email delivery engine written in Python leveraging `asyncio`. It divides massive recipient lists equally across 15 async workers executing concurrently in batches of 20 with live dashboard output, checkpoint-based resume controls, and **non-interactive** failure retry via `resend --failed-only`.
4
+
5
+ ---
6
+
7
+ ## ๐ŸŽจ Visual Console Theme
8
+
9
+ ```
10
+ โœฆ ยท โœง ยท โœฆ ยท โœง ยท โœฆ
11
+ โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
12
+ โ•‘ โ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ•‘
13
+ โ•‘ โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ• โ•‘
14
+ โ•‘ โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ•‘
15
+ โ•‘ โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ• โ•šโ•โ•โ•โ•โ–ˆโ–ˆโ•‘ โ•‘
16
+ โ•‘ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘ โ•‘
17
+ โ•‘ โ•šโ•โ•โ•โ•โ•โ•โ•โ•šโ•โ• โ•šโ•โ•โ•šโ•โ• โ•šโ•โ•โ•โ•โ•šโ•โ•โ•โ•โ•โ•โ•โ•šโ•โ•โ•โ•โ•โ•โ• โ•‘
18
+ โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
19
+ "We route the mail through chaos"
20
+ โœง ยท โœฆ ยท โœง ยท โœฆ ยท โœง
21
+ ```
22
+
23
+ * **24-bit gradient banner** (cyan โ†’ magenta, line-by-line)
24
+ * **Async typewriter** banner animation on cold start
25
+ * **Braille spinner** during session load + connection pre-warm
26
+ * **Hooded wizard ASCII mascot** drawn at start of every command
27
+ * **Per-lane live status glyphs** (โ— sending, โ— done, โ—‹ idle)
28
+ * **Confetti burst** when the campaign finishes
29
+
30
+ ---
31
+
32
+ ## ๐Ÿš€ Core Features
33
+
34
+ 1. **15 Parallel Async Lanes**: Distributes recipient lists equally across 15 lanes using an asynchronous round-robin queue.
35
+ 2. **File-Driven Input**: Zero database requirements. Just drop `email.txt` and `senders.csv`.
36
+ 3. **Live Dashboard Metrics**: Gradient progress bar, per-lane glyphs, processing speed, failure count.
37
+ 4. **Auto-Retry (`resend --failed-only`)**: After any run, the engine writes `lanes-session.json` (template + recipients). Re-run failed emails non-interactively with one command.
38
+ 5. **Fast Cold Start**: Backend connection pre-warmed in parallel with file parsing; `premailer` is lazy-loaded only when HTML mode is enabled.
39
+ 6. **No Web Bloat**: Strictly a CLI engine built for speed.
40
+
41
+ ---
42
+
43
+ ## ๐Ÿ“ Input Format Requirements
44
+
45
+ ### 1. `email.txt`
46
+ Place this in your working directory. Use `Subject:` as the first line header. Supports template rendering via `{{placeholder}}`:
47
+ ```txt
48
+ Subject: Welcome {{name}} to Scholarly!
49
+
50
+ Hello {{name}},
51
+
52
+ Your journey through the lanes begins now.
53
+
54
+ โ€” MQ Team
55
+ ```
56
+
57
+ ### 2. `senders.csv`
58
+ Contains the recipient email list and fields for templating:
59
+ ```csv
60
+ email,name
61
+ alex@gmail.com,Alex
62
+ sara@gmail.com,Sara
63
+ john@gmail.com,John
64
+ ```
65
+
66
+ ---
67
+
68
+ ## โš™๏ธ Installation & Commands
69
+
70
+ Install from PyPI:
71
+ ```bash
72
+ pip install lanes-engine
73
+ ```
74
+
75
+ ### 1. Initialize Templates
76
+ Create initial `email.txt` and `senders.csv` mock templates in your current directory:
77
+ ```bash
78
+ lanes-engine init
79
+ ```
80
+
81
+ ### 2. Run Campaign Processing
82
+ Parse the local templates and start the 15 parallel workers:
83
+ ```bash
84
+ lanes-engine send
85
+ ```
86
+
87
+ ### 3. Check Latest Summary
88
+ Read the final log report from the latest run:
89
+ ```bash
90
+ lanes-engine status
91
+ ```
92
+
93
+ ### 4. Open Detailed Performance Breakdown
94
+ Displays per-lane success/error counts and detailed failure stream error messages:
95
+ ```bash
96
+ lanes-engine report
97
+ ```
98
+
99
+ ### 5. Auto-Resend Failed Emails (Non-Interactive)
100
+ Re-runs only the recipients that failed in the most recent session, using the saved `lanes-session.json`. No prompts, no interactive recycle loop:
101
+ ```bash
102
+ lanes-engine resend --failed-only
103
+ ```
104
+ You can chain `--no-banner` to skip the startup animation in CI/scripted environments:
105
+ ```bash
106
+ lanes-engine resend --failed-only --no-banner
107
+ ```
108
+
109
+ ---
110
+
111
+ ## ๐Ÿ“„ License
112
+ MIT ยฉ Lanes Wizard
@@ -0,0 +1,2 @@
1
+ # Lanes Engine package
2
+ __version__ = "2.0.0"