This commit was merged in pull request #105.
This commit is contained in:
+5
-5
@@ -47,7 +47,7 @@ already standing; it doesn't re-pour the foundation.
|
||||
Pick something small enough to finish in one sitting and real enough to touch the whole stack. We'll
|
||||
add **due dates**:
|
||||
|
||||
- A task can carry an optional due date: `python cli.py add "file taxes" --due <YYYY-MM-DD>`.
|
||||
- A task can carry an optional due date: `python3 cli.py add "file taxes" --due <YYYY-MM-DD>`.
|
||||
- A new `overdue` command lists pending tasks whose due date has already passed.
|
||||
- The deployed service grows a matching `GET /overdue` endpoint, so the change is visible in the
|
||||
running container, not just the CLI.
|
||||
@@ -184,9 +184,9 @@ agent), your forge account, and a working Docker install.
|
||||
in the future, one safely in the past) so the assertion below holds whenever you run this:
|
||||
|
||||
```bash
|
||||
python cli.py add "file taxes" --due <a date a few months out> # future → NOT overdue
|
||||
python cli.py add "renew domain" --due 2020-01-01 # past → overdue
|
||||
python cli.py overdue # should list "renew domain", not "file taxes"
|
||||
python3 cli.py add "file taxes" --due <a date a few months out> # future → NOT overdue
|
||||
python3 cli.py add "renew domain" --due 2020-01-01 # past → overdue
|
||||
python3 cli.py overdue # should list "renew domain", not "file taxes"
|
||||
```
|
||||
|
||||
> *Verify-before-publish: refresh the example due dates so the "future" one is still in the future
|
||||
@@ -199,7 +199,7 @@ agent), your forge account, and a working Docker install.
|
||||
them by name. Confirm the suite is green:
|
||||
|
||||
```bash
|
||||
pytest # or: python -m unittest
|
||||
pytest # or: python3 -m unittest
|
||||
```
|
||||
|
||||
Once it's green, tell the AI to commit the change. Then verify what it actually staged and wrote:
|
||||
|
||||
@@ -15,11 +15,11 @@ This is the running example for **Module 1** (where you feel the copy-paste prob
|
||||
## Run it
|
||||
|
||||
```bash
|
||||
python cli.py add "read module 1"
|
||||
python cli.py add "set up my editor"
|
||||
python cli.py list
|
||||
python cli.py done 0
|
||||
python cli.py list
|
||||
python3 cli.py add "read module 1"
|
||||
python3 cli.py add "set up my editor"
|
||||
python3 cli.py list
|
||||
python3 cli.py done 0
|
||||
python3 cli.py list
|
||||
```
|
||||
|
||||
Requires Python 3.10+ (it uses `list[Task]` style type hints). No third-party packages.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
"""Tiny command-line front end for the demo task app.
|
||||
|
||||
Run it:
|
||||
python cli.py add "write the lesson"
|
||||
python cli.py list
|
||||
python3 cli.py add "write the lesson"
|
||||
python3 cli.py list
|
||||
|
||||
State is kept in tasks.json next to this file. It's intentionally minimal; the point of this app
|
||||
is to be a realistic-but-small thing you change with an AI, not a product.
|
||||
@@ -31,7 +31,7 @@ def save(tlist: TaskList) -> None:
|
||||
def main(argv: list[str]) -> int:
|
||||
tlist = load()
|
||||
if not argv:
|
||||
print("usage: python cli.py [add <title> | list | done <index> | count | delete <index>]")
|
||||
print("usage: python3 cli.py [add <title> | list | done <index> | count | delete <index>]")
|
||||
return 1
|
||||
|
||||
command = argv[0]
|
||||
|
||||
Reference in New Issue
Block a user