carpediem 0.5.1__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.
Files changed (61) hide show
  1. carpediem-0.5.1/LICENSE +21 -0
  2. carpediem-0.5.1/PKG-INFO +106 -0
  3. carpediem-0.5.1/README.md +94 -0
  4. carpediem-0.5.1/carpediem.egg-info/PKG-INFO +106 -0
  5. carpediem-0.5.1/carpediem.egg-info/SOURCES.txt +59 -0
  6. carpediem-0.5.1/carpediem.egg-info/dependency_links.txt +1 -0
  7. carpediem-0.5.1/carpediem.egg-info/entry_points.txt +2 -0
  8. carpediem-0.5.1/carpediem.egg-info/requires.txt +2 -0
  9. carpediem-0.5.1/carpediem.egg-info/top_level.txt +1 -0
  10. carpediem-0.5.1/pyproject.toml +19 -0
  11. carpediem-0.5.1/setup.cfg +4 -0
  12. carpediem-0.5.1/src/__init__.py +3 -0
  13. carpediem-0.5.1/src/app.py +2601 -0
  14. carpediem-0.5.1/src/cli.py +194 -0
  15. carpediem-0.5.1/src/commands.py +124 -0
  16. carpediem-0.5.1/src/crypto.py +120 -0
  17. carpediem-0.5.1/src/domain.py +117 -0
  18. carpediem-0.5.1/src/lang.py +1537 -0
  19. carpediem-0.5.1/src/main.py +187 -0
  20. carpediem-0.5.1/src/models.py +319 -0
  21. carpediem-0.5.1/src/nlparse.py +336 -0
  22. carpediem-0.5.1/src/plan.py +146 -0
  23. carpediem-0.5.1/src/screens/__init__.py +95 -0
  24. carpediem-0.5.1/src/screens/_shared.py +123 -0
  25. carpediem-0.5.1/src/screens/form.py +809 -0
  26. carpediem-0.5.1/src/screens/menu.py +529 -0
  27. carpediem-0.5.1/src/screens/plan.py +784 -0
  28. carpediem-0.5.1/src/screens/system.py +1377 -0
  29. carpediem-0.5.1/src/screens/views.py +1395 -0
  30. carpediem-0.5.1/src/storage.py +786 -0
  31. carpediem-0.5.1/src/store.py +217 -0
  32. carpediem-0.5.1/tests/test_agenda_ical.py +72 -0
  33. carpediem-0.5.1/tests/test_briefing.py +187 -0
  34. carpediem-0.5.1/tests/test_calendar_kanban.py +116 -0
  35. carpediem-0.5.1/tests/test_concurrency.py +214 -0
  36. carpediem-0.5.1/tests/test_crypto.py +211 -0
  37. carpediem-0.5.1/tests/test_dailyplan.py +169 -0
  38. carpediem-0.5.1/tests/test_domain.py +112 -0
  39. carpediem-0.5.1/tests/test_failure_paths.py +129 -0
  40. carpediem-0.5.1/tests/test_flows.py +307 -0
  41. carpediem-0.5.1/tests/test_goals_security_export.py +96 -0
  42. carpediem-0.5.1/tests/test_health_cli.py +161 -0
  43. carpediem-0.5.1/tests/test_lang.py +71 -0
  44. carpediem-0.5.1/tests/test_layout_small.py +195 -0
  45. carpediem-0.5.1/tests/test_markup_escape.py +89 -0
  46. carpediem-0.5.1/tests/test_menu.py +407 -0
  47. carpediem-0.5.1/tests/test_modal_guard.py +127 -0
  48. carpediem-0.5.1/tests/test_model.py +65 -0
  49. carpediem-0.5.1/tests/test_nl_integration.py +322 -0
  50. carpediem-0.5.1/tests/test_nlparse.py +264 -0
  51. carpediem-0.5.1/tests/test_onboarding.py +86 -0
  52. carpediem-0.5.1/tests/test_persistence.py +226 -0
  53. carpediem-0.5.1/tests/test_plan.py +167 -0
  54. carpediem-0.5.1/tests/test_plan_ui.py +360 -0
  55. carpediem-0.5.1/tests/test_reminders.py +121 -0
  56. carpediem-0.5.1/tests/test_review.py +196 -0
  57. carpediem-0.5.1/tests/test_state.py +134 -0
  58. carpediem-0.5.1/tests/test_stats_layout.py +45 -0
  59. carpediem-0.5.1/tests/test_store.py +171 -0
  60. carpediem-0.5.1/tests/test_theme_nav.py +47 -0
  61. carpediem-0.5.1/tests/test_workflow.py +42 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 fabx-dev
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,106 @@
1
+ Metadata-Version: 2.4
2
+ Name: carpediem
3
+ Version: 0.5.1
4
+ Summary: CarpeDiem: terminal todo manager that turns quick notes into a realistic day plan — natural-language capture, smart planning, pomodoro, agenda, offline-first
5
+ License: MIT
6
+ Requires-Python: >=3.12
7
+ Description-Content-Type: text/markdown
8
+ License-File: LICENSE
9
+ Requires-Dist: textual<4.0.0,>=0.86.0
10
+ Requires-Dist: cryptography>=42
11
+ Dynamic: license-file
12
+
13
+ # CarpeDiem
14
+
15
+ CarpeDiem (carpe diem — seize the day) turns quick notes into a realistic day plan: natural-language capture, a smart morning proposal, pomodoro focus during the day, evening closing. Offline-first, in English or Italian, no account.
16
+
17
+ ```text
18
+ Capture in seconds (n, natural language) → morning briefing with proposal to confirm (P)
19
+ → work from the Day plan with pomodoro (o) → evening Closing (R).
20
+ ```
21
+
22
+ In the app, open the menu (`m`) → `Day` → `Recommended workflow` for the 5-step daily checklist.
23
+
24
+ [Leggimi in italiano](README.it.md)
25
+
26
+ ![CarpeDiem home](docs/screenshots/home.svg)
27
+ ![CarpeDiem stats](docs/screenshots/stats.svg)
28
+
29
+ ## Install in 2 minutes
30
+
31
+ 1. You need Python 3.12+: check with `python3 --version`.
32
+ 2. Recommended: isolated install with pipx (puts `carpediem` on your PATH):
33
+ ```bash
34
+ pipx install .
35
+ ```
36
+ From the git repo:
37
+ ```bash
38
+ pipx install git+https://github.com/fabx-dev/carpediem.git
39
+ ```
40
+ 3. Alternative for developers (virtualenv):
41
+ ```bash
42
+ python3 -m venv .venv
43
+ .venv/bin/pip install .
44
+ ```
45
+ 4. Start the TUI:
46
+ ```bash
47
+ carpediem
48
+ ```
49
+ On first run: load the demo data to explore, or start empty.
50
+
51
+ Check it works:
52
+ ```bash
53
+ carpediem --help
54
+ carpediem list
55
+ ```
56
+
57
+ Common issues: `pipx: command not found` (install pipx first), old Python (<3.12), separate data dir with `TASKO_HOME=/tmp/carpediem-demo carpediem`. Docker (`docker compose up`) is dev-only, not the main install path.
58
+
59
+ Requires Python 3.12+. Built with Textual; data stays in local JSON (see Data below).
60
+
61
+ ## Keys
62
+
63
+ | Key | Action |
64
+ |---|---|
65
+ | `n` / `s` | New todo / subtask of selected |
66
+ | `Space` then `1/2/3` | Active / Paused / Done |
67
+ | `Enter` / `e` | Details (with inline edit) / Edit |
68
+ | `d` / `u` | Delete (confirm) / Undo |
69
+ | `o` / `O` / `X` | Start-open pomodoro / pause-resume / complete-skip |
70
+ | `b` / `B` | Mini-kanban / full board |
71
+ | `c` / `w` / `p` / `k` | Calendar / week / daily plan / stats |
72
+ | `f` / `t` / `g` / `/` | State, tag, project, search filters |
73
+ | `T` / `v` / `m` / `h` | Templates / theme / menu / help |
74
+ | `q` | Quit |
75
+
76
+ Press `m` for the menu (settings, goals, backup, import/export, archive). Press `Tasti` there for the full key list.
77
+
78
+ ## Data
79
+
80
+ Everything lives in local JSON next to your home (offline-first):
81
+
82
+ | File | Content |
83
+ |---|---|
84
+ | `~/.todo_app.json` | Tasks (+ `.bak.json` previous copy) |
85
+ | `~/.todo_templates.json` | Templates |
86
+ | `~/.todo_pomodoro.json` | Timer session + cycle |
87
+ | `~/.todo_config.json` | Theme, filters, goals, language |
88
+ | `~/.todo_archive.json` | Archived done tasks |
89
+ | `~/Tasko_backups/` | Automatic zip snapshots (14 kept) |
90
+ | `~/CarpeDiem_screenshots/` | SVG screenshots, CSV/Markdown exports |
91
+
92
+ Restore a backup any time from the menu (`Backup: ripristina`). Language follows the system (Italian or English), override with `TASKO_LANG=it|en` or in Settings.
93
+
94
+ ## Dev
95
+
96
+ ```bash
97
+ pip install -r requirements-dev.txt
98
+ python -m pytest tests/ -q
99
+ python -m ruff check src/ tests/
100
+ ```
101
+
102
+ See [CONTRIBUTING.md](CONTRIBUTING.md). Hobby project, Italian-first: issues in Italian or English welcome.
103
+
104
+ ## License
105
+
106
+ MIT — see [LICENSE](LICENSE) and [CHANGELOG.md](CHANGELOG.md).
@@ -0,0 +1,94 @@
1
+ # CarpeDiem
2
+
3
+ CarpeDiem (carpe diem — seize the day) turns quick notes into a realistic day plan: natural-language capture, a smart morning proposal, pomodoro focus during the day, evening closing. Offline-first, in English or Italian, no account.
4
+
5
+ ```text
6
+ Capture in seconds (n, natural language) → morning briefing with proposal to confirm (P)
7
+ → work from the Day plan with pomodoro (o) → evening Closing (R).
8
+ ```
9
+
10
+ In the app, open the menu (`m`) → `Day` → `Recommended workflow` for the 5-step daily checklist.
11
+
12
+ [Leggimi in italiano](README.it.md)
13
+
14
+ ![CarpeDiem home](docs/screenshots/home.svg)
15
+ ![CarpeDiem stats](docs/screenshots/stats.svg)
16
+
17
+ ## Install in 2 minutes
18
+
19
+ 1. You need Python 3.12+: check with `python3 --version`.
20
+ 2. Recommended: isolated install with pipx (puts `carpediem` on your PATH):
21
+ ```bash
22
+ pipx install .
23
+ ```
24
+ From the git repo:
25
+ ```bash
26
+ pipx install git+https://github.com/fabx-dev/carpediem.git
27
+ ```
28
+ 3. Alternative for developers (virtualenv):
29
+ ```bash
30
+ python3 -m venv .venv
31
+ .venv/bin/pip install .
32
+ ```
33
+ 4. Start the TUI:
34
+ ```bash
35
+ carpediem
36
+ ```
37
+ On first run: load the demo data to explore, or start empty.
38
+
39
+ Check it works:
40
+ ```bash
41
+ carpediem --help
42
+ carpediem list
43
+ ```
44
+
45
+ Common issues: `pipx: command not found` (install pipx first), old Python (<3.12), separate data dir with `TASKO_HOME=/tmp/carpediem-demo carpediem`. Docker (`docker compose up`) is dev-only, not the main install path.
46
+
47
+ Requires Python 3.12+. Built with Textual; data stays in local JSON (see Data below).
48
+
49
+ ## Keys
50
+
51
+ | Key | Action |
52
+ |---|---|
53
+ | `n` / `s` | New todo / subtask of selected |
54
+ | `Space` then `1/2/3` | Active / Paused / Done |
55
+ | `Enter` / `e` | Details (with inline edit) / Edit |
56
+ | `d` / `u` | Delete (confirm) / Undo |
57
+ | `o` / `O` / `X` | Start-open pomodoro / pause-resume / complete-skip |
58
+ | `b` / `B` | Mini-kanban / full board |
59
+ | `c` / `w` / `p` / `k` | Calendar / week / daily plan / stats |
60
+ | `f` / `t` / `g` / `/` | State, tag, project, search filters |
61
+ | `T` / `v` / `m` / `h` | Templates / theme / menu / help |
62
+ | `q` | Quit |
63
+
64
+ Press `m` for the menu (settings, goals, backup, import/export, archive). Press `Tasti` there for the full key list.
65
+
66
+ ## Data
67
+
68
+ Everything lives in local JSON next to your home (offline-first):
69
+
70
+ | File | Content |
71
+ |---|---|
72
+ | `~/.todo_app.json` | Tasks (+ `.bak.json` previous copy) |
73
+ | `~/.todo_templates.json` | Templates |
74
+ | `~/.todo_pomodoro.json` | Timer session + cycle |
75
+ | `~/.todo_config.json` | Theme, filters, goals, language |
76
+ | `~/.todo_archive.json` | Archived done tasks |
77
+ | `~/Tasko_backups/` | Automatic zip snapshots (14 kept) |
78
+ | `~/CarpeDiem_screenshots/` | SVG screenshots, CSV/Markdown exports |
79
+
80
+ Restore a backup any time from the menu (`Backup: ripristina`). Language follows the system (Italian or English), override with `TASKO_LANG=it|en` or in Settings.
81
+
82
+ ## Dev
83
+
84
+ ```bash
85
+ pip install -r requirements-dev.txt
86
+ python -m pytest tests/ -q
87
+ python -m ruff check src/ tests/
88
+ ```
89
+
90
+ See [CONTRIBUTING.md](CONTRIBUTING.md). Hobby project, Italian-first: issues in Italian or English welcome.
91
+
92
+ ## License
93
+
94
+ MIT — see [LICENSE](LICENSE) and [CHANGELOG.md](CHANGELOG.md).
@@ -0,0 +1,106 @@
1
+ Metadata-Version: 2.4
2
+ Name: carpediem
3
+ Version: 0.5.1
4
+ Summary: CarpeDiem: terminal todo manager that turns quick notes into a realistic day plan — natural-language capture, smart planning, pomodoro, agenda, offline-first
5
+ License: MIT
6
+ Requires-Python: >=3.12
7
+ Description-Content-Type: text/markdown
8
+ License-File: LICENSE
9
+ Requires-Dist: textual<4.0.0,>=0.86.0
10
+ Requires-Dist: cryptography>=42
11
+ Dynamic: license-file
12
+
13
+ # CarpeDiem
14
+
15
+ CarpeDiem (carpe diem — seize the day) turns quick notes into a realistic day plan: natural-language capture, a smart morning proposal, pomodoro focus during the day, evening closing. Offline-first, in English or Italian, no account.
16
+
17
+ ```text
18
+ Capture in seconds (n, natural language) → morning briefing with proposal to confirm (P)
19
+ → work from the Day plan with pomodoro (o) → evening Closing (R).
20
+ ```
21
+
22
+ In the app, open the menu (`m`) → `Day` → `Recommended workflow` for the 5-step daily checklist.
23
+
24
+ [Leggimi in italiano](README.it.md)
25
+
26
+ ![CarpeDiem home](docs/screenshots/home.svg)
27
+ ![CarpeDiem stats](docs/screenshots/stats.svg)
28
+
29
+ ## Install in 2 minutes
30
+
31
+ 1. You need Python 3.12+: check with `python3 --version`.
32
+ 2. Recommended: isolated install with pipx (puts `carpediem` on your PATH):
33
+ ```bash
34
+ pipx install .
35
+ ```
36
+ From the git repo:
37
+ ```bash
38
+ pipx install git+https://github.com/fabx-dev/carpediem.git
39
+ ```
40
+ 3. Alternative for developers (virtualenv):
41
+ ```bash
42
+ python3 -m venv .venv
43
+ .venv/bin/pip install .
44
+ ```
45
+ 4. Start the TUI:
46
+ ```bash
47
+ carpediem
48
+ ```
49
+ On first run: load the demo data to explore, or start empty.
50
+
51
+ Check it works:
52
+ ```bash
53
+ carpediem --help
54
+ carpediem list
55
+ ```
56
+
57
+ Common issues: `pipx: command not found` (install pipx first), old Python (<3.12), separate data dir with `TASKO_HOME=/tmp/carpediem-demo carpediem`. Docker (`docker compose up`) is dev-only, not the main install path.
58
+
59
+ Requires Python 3.12+. Built with Textual; data stays in local JSON (see Data below).
60
+
61
+ ## Keys
62
+
63
+ | Key | Action |
64
+ |---|---|
65
+ | `n` / `s` | New todo / subtask of selected |
66
+ | `Space` then `1/2/3` | Active / Paused / Done |
67
+ | `Enter` / `e` | Details (with inline edit) / Edit |
68
+ | `d` / `u` | Delete (confirm) / Undo |
69
+ | `o` / `O` / `X` | Start-open pomodoro / pause-resume / complete-skip |
70
+ | `b` / `B` | Mini-kanban / full board |
71
+ | `c` / `w` / `p` / `k` | Calendar / week / daily plan / stats |
72
+ | `f` / `t` / `g` / `/` | State, tag, project, search filters |
73
+ | `T` / `v` / `m` / `h` | Templates / theme / menu / help |
74
+ | `q` | Quit |
75
+
76
+ Press `m` for the menu (settings, goals, backup, import/export, archive). Press `Tasti` there for the full key list.
77
+
78
+ ## Data
79
+
80
+ Everything lives in local JSON next to your home (offline-first):
81
+
82
+ | File | Content |
83
+ |---|---|
84
+ | `~/.todo_app.json` | Tasks (+ `.bak.json` previous copy) |
85
+ | `~/.todo_templates.json` | Templates |
86
+ | `~/.todo_pomodoro.json` | Timer session + cycle |
87
+ | `~/.todo_config.json` | Theme, filters, goals, language |
88
+ | `~/.todo_archive.json` | Archived done tasks |
89
+ | `~/Tasko_backups/` | Automatic zip snapshots (14 kept) |
90
+ | `~/CarpeDiem_screenshots/` | SVG screenshots, CSV/Markdown exports |
91
+
92
+ Restore a backup any time from the menu (`Backup: ripristina`). Language follows the system (Italian or English), override with `TASKO_LANG=it|en` or in Settings.
93
+
94
+ ## Dev
95
+
96
+ ```bash
97
+ pip install -r requirements-dev.txt
98
+ python -m pytest tests/ -q
99
+ python -m ruff check src/ tests/
100
+ ```
101
+
102
+ See [CONTRIBUTING.md](CONTRIBUTING.md). Hobby project, Italian-first: issues in Italian or English welcome.
103
+
104
+ ## License
105
+
106
+ MIT — see [LICENSE](LICENSE) and [CHANGELOG.md](CHANGELOG.md).
@@ -0,0 +1,59 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ carpediem.egg-info/PKG-INFO
5
+ carpediem.egg-info/SOURCES.txt
6
+ carpediem.egg-info/dependency_links.txt
7
+ carpediem.egg-info/entry_points.txt
8
+ carpediem.egg-info/requires.txt
9
+ carpediem.egg-info/top_level.txt
10
+ src/__init__.py
11
+ src/app.py
12
+ src/cli.py
13
+ src/commands.py
14
+ src/crypto.py
15
+ src/domain.py
16
+ src/lang.py
17
+ src/main.py
18
+ src/models.py
19
+ src/nlparse.py
20
+ src/plan.py
21
+ src/storage.py
22
+ src/store.py
23
+ src/screens/__init__.py
24
+ src/screens/_shared.py
25
+ src/screens/form.py
26
+ src/screens/menu.py
27
+ src/screens/plan.py
28
+ src/screens/system.py
29
+ src/screens/views.py
30
+ tests/test_agenda_ical.py
31
+ tests/test_briefing.py
32
+ tests/test_calendar_kanban.py
33
+ tests/test_concurrency.py
34
+ tests/test_crypto.py
35
+ tests/test_dailyplan.py
36
+ tests/test_domain.py
37
+ tests/test_failure_paths.py
38
+ tests/test_flows.py
39
+ tests/test_goals_security_export.py
40
+ tests/test_health_cli.py
41
+ tests/test_lang.py
42
+ tests/test_layout_small.py
43
+ tests/test_markup_escape.py
44
+ tests/test_menu.py
45
+ tests/test_modal_guard.py
46
+ tests/test_model.py
47
+ tests/test_nl_integration.py
48
+ tests/test_nlparse.py
49
+ tests/test_onboarding.py
50
+ tests/test_persistence.py
51
+ tests/test_plan.py
52
+ tests/test_plan_ui.py
53
+ tests/test_reminders.py
54
+ tests/test_review.py
55
+ tests/test_state.py
56
+ tests/test_stats_layout.py
57
+ tests/test_store.py
58
+ tests/test_theme_nav.py
59
+ tests/test_workflow.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ carpediem = src.main:main
@@ -0,0 +1,2 @@
1
+ textual<4.0.0,>=0.86.0
2
+ cryptography>=42
@@ -0,0 +1 @@
1
+ src
@@ -0,0 +1,19 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "carpediem"
7
+ version = "0.5.1"
8
+ description = "CarpeDiem: terminal todo manager that turns quick notes into a realistic day plan — natural-language capture, smart planning, pomodoro, agenda, offline-first"
9
+ readme = "README.md"
10
+ requires-python = ">=3.12"
11
+ license = { text = "MIT" }
12
+ dependencies = ["textual>=0.86.0,<4.0.0", "cryptography>=42"]
13
+
14
+ [project.scripts]
15
+ carpediem = "src.main:main"
16
+
17
+ [tool.setuptools.packages.find]
18
+ where = ["."]
19
+ include = ["src*"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,3 @@
1
+ """CarpeDiem: TUI todo in italiano e inglese."""
2
+
3
+ __version__ = "0.1.0"