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.
- lanes_engine-2.0.0/PKG-INFO +128 -0
- lanes_engine-2.0.0/README.md +112 -0
- lanes_engine-2.0.0/lanes_engine/__init__.py +2 -0
- lanes_engine-2.0.0/lanes_engine/cli.py +774 -0
- lanes_engine-2.0.0/lanes_engine/config.py +142 -0
- lanes_engine-2.0.0/lanes_engine/core.py +251 -0
- lanes_engine-2.0.0/lanes_engine/doctor.py +387 -0
- lanes_engine-2.0.0/lanes_engine/parser.py +49 -0
- lanes_engine-2.0.0/lanes_engine/provider.py +48 -0
- lanes_engine-2.0.0/lanes_engine/rate_limiter.py +138 -0
- lanes_engine-2.0.0/lanes_engine/reporter.py +167 -0
- lanes_engine-2.0.0/lanes_engine/scheduler.py +227 -0
- lanes_engine-2.0.0/lanes_engine/throttle.py +153 -0
- lanes_engine-2.0.0/lanes_engine/ui.py +332 -0
- lanes_engine-2.0.0/lanes_engine.egg-info/PKG-INFO +128 -0
- lanes_engine-2.0.0/lanes_engine.egg-info/SOURCES.txt +20 -0
- lanes_engine-2.0.0/lanes_engine.egg-info/dependency_links.txt +1 -0
- lanes_engine-2.0.0/lanes_engine.egg-info/entry_points.txt +2 -0
- lanes_engine-2.0.0/lanes_engine.egg-info/requires.txt +2 -0
- lanes_engine-2.0.0/lanes_engine.egg-info/top_level.txt +1 -0
- lanes_engine-2.0.0/setup.cfg +4 -0
- lanes_engine-2.0.0/setup.py +26 -0
|
@@ -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
|