e3cli 0.3.1__tar.gz → 0.3.2__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 (42) hide show
  1. {e3cli-0.3.1 → e3cli-0.3.2}/PKG-INFO +13 -14
  2. {e3cli-0.3.1 → e3cli-0.3.2}/README.md +12 -13
  3. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/__init__.py +1 -1
  4. {e3cli-0.3.1 → e3cli-0.3.2}/pyproject.toml +1 -1
  5. {e3cli-0.3.1 → e3cli-0.3.2}/tests/test_basic.py +2 -1
  6. {e3cli-0.3.1 → e3cli-0.3.2}/.github/workflows/ci.yml +0 -0
  7. {e3cli-0.3.1 → e3cli-0.3.2}/.github/workflows/release.yml +0 -0
  8. {e3cli-0.3.1 → e3cli-0.3.2}/.gitignore +0 -0
  9. {e3cli-0.3.1 → e3cli-0.3.2}/Formula/e3cli.rb +0 -0
  10. {e3cli-0.3.1 → e3cli-0.3.2}/LICENSE +0 -0
  11. {e3cli-0.3.1 → e3cli-0.3.2}/Makefile +0 -0
  12. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/__main__.py +0 -0
  13. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/ai/__init__.py +0 -0
  14. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/api/__init__.py +0 -0
  15. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/api/assignments.py +0 -0
  16. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/api/client.py +0 -0
  17. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/api/courses.py +0 -0
  18. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/api/files.py +0 -0
  19. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/api/site.py +0 -0
  20. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/auth.py +0 -0
  21. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/cli.py +0 -0
  22. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/commands/__init__.py +0 -0
  23. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/commands/_common.py +0 -0
  24. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/commands/assignments.py +0 -0
  25. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/commands/courses.py +0 -0
  26. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/commands/download.py +0 -0
  27. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/commands/login.py +0 -0
  28. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/commands/logout.py +0 -0
  29. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/commands/schedule.py +0 -0
  30. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/commands/setup.py +0 -0
  31. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/commands/submit.py +0 -0
  32. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/commands/sync.py +0 -0
  33. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/config.py +0 -0
  34. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/credential.py +0 -0
  35. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/i18n.py +0 -0
  36. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/scheduler/__init__.py +0 -0
  37. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/scheduler/cron.py +0 -0
  38. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/storage/__init__.py +0 -0
  39. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/storage/db.py +0 -0
  40. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/storage/models.py +0 -0
  41. {e3cli-0.3.1 → e3cli-0.3.2}/e3cli/storage/tracking.py +0 -0
  42. {e3cli-0.3.1 → e3cli-0.3.2}/tests/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: e3cli
3
- Version: 0.3.1
3
+ Version: 0.3.2
4
4
  Summary: NYCU E3 Moodle automation CLI — sync courses, download materials, submit assignments.
5
5
  Project-URL: Homepage, https://github.com/junlinwk/e3cli
6
6
  Project-URL: Repository, https://github.com/junlinwk/e3cli
@@ -102,7 +102,17 @@ cd e3cli
102
102
  pip install -e ".[dev]"
103
103
  ```
104
104
 
105
- ## Update
105
+ > After any installation method, `e3cli` will be available as a system-wide command.
106
+
107
+ ### Upgrade
108
+
109
+ | Install method | Upgrade command |
110
+ |---|---|
111
+ | Homebrew | `brew update && brew upgrade e3cli` |
112
+ | pipx (PyPI) | `pipx upgrade e3cli` |
113
+ | pipx (GitHub) | `pipx install git+https://github.com/junlinwk/e3cli.git --force` |
114
+ | pip (PyPI) | `pip install e3cli --upgrade` |
115
+
106
116
  ---
107
117
 
108
118
  ## Quick Start
@@ -281,7 +291,6 @@ e3cli uses **Fernet symmetric encryption** (from the `cryptography` library) to
281
291
  | `~/.e3cli/data/e3cli.db` | SQLite tracking DB (downloaded files, assignment status) |
282
292
  | `~/e3-downloads/` | Downloaded course materials |
283
293
 
284
-
285
294
  ---
286
295
 
287
296
  ## Project Structure
@@ -338,7 +347,7 @@ e3cli/
338
347
 
339
348
  ```bash
340
349
  # Clone and install in dev mode
341
- git clone https://github.com/<your-user>/e3cli.git
350
+ git clone https://github.com/junlinwk/e3cli.git
342
351
  cd e3cli
343
352
  make dev # pip install -e ".[dev]"
344
353
 
@@ -352,16 +361,6 @@ make test
352
361
  make build
353
362
  ```
354
363
 
355
- ---
356
-
357
- ## Roadmap
358
-
359
- - [ ] AI-powered material summarization (`e3cli ai summarize`)
360
- - [ ] AI-assisted assignment drafting (`e3cli ai draft`)
361
- - [ ] Smart deadline notifications with priority scoring
362
- - [ ] Desktop notification integration (Linux `notify-send`, macOS `osascript`)
363
- - [ ] Course filtering by semester
364
- - [ ] Parallel downloads for faster sync
365
364
 
366
365
  ---
367
366
 
@@ -68,7 +68,17 @@ cd e3cli
68
68
  pip install -e ".[dev]"
69
69
  ```
70
70
 
71
- ## Update
71
+ > After any installation method, `e3cli` will be available as a system-wide command.
72
+
73
+ ### Upgrade
74
+
75
+ | Install method | Upgrade command |
76
+ |---|---|
77
+ | Homebrew | `brew update && brew upgrade e3cli` |
78
+ | pipx (PyPI) | `pipx upgrade e3cli` |
79
+ | pipx (GitHub) | `pipx install git+https://github.com/junlinwk/e3cli.git --force` |
80
+ | pip (PyPI) | `pip install e3cli --upgrade` |
81
+
72
82
  ---
73
83
 
74
84
  ## Quick Start
@@ -247,7 +257,6 @@ e3cli uses **Fernet symmetric encryption** (from the `cryptography` library) to
247
257
  | `~/.e3cli/data/e3cli.db` | SQLite tracking DB (downloaded files, assignment status) |
248
258
  | `~/e3-downloads/` | Downloaded course materials |
249
259
 
250
-
251
260
  ---
252
261
 
253
262
  ## Project Structure
@@ -304,7 +313,7 @@ e3cli/
304
313
 
305
314
  ```bash
306
315
  # Clone and install in dev mode
307
- git clone https://github.com/<your-user>/e3cli.git
316
+ git clone https://github.com/junlinwk/e3cli.git
308
317
  cd e3cli
309
318
  make dev # pip install -e ".[dev]"
310
319
 
@@ -318,16 +327,6 @@ make test
318
327
  make build
319
328
  ```
320
329
 
321
- ---
322
-
323
- ## Roadmap
324
-
325
- - [ ] AI-powered material summarization (`e3cli ai summarize`)
326
- - [ ] AI-assisted assignment drafting (`e3cli ai draft`)
327
- - [ ] Smart deadline notifications with priority scoring
328
- - [ ] Desktop notification integration (Linux `notify-send`, macOS `osascript`)
329
- - [ ] Course filtering by semester
330
- - [ ] Parallel downloads for faster sync
331
330
 
332
331
  ---
333
332
 
@@ -1,3 +1,3 @@
1
1
  """E3CLI — NYCU E3 Moodle Automation CLI Tool"""
2
2
 
3
- __version__ = "0.3.1"
3
+ __version__ = "0.3.2"
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "e3cli"
7
- version = "0.3.1"
7
+ version = "0.3.2"
8
8
  description = "NYCU E3 Moodle automation CLI — sync courses, download materials, submit assignments."
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -6,7 +6,7 @@ from e3cli.credential import _decrypt, _encrypt, _get_or_create_key
6
6
 
7
7
 
8
8
  def test_version():
9
- assert __version__ == "0.1.0"
9
+ assert __version__
10
10
 
11
11
 
12
12
  def test_default_config():
@@ -26,6 +26,7 @@ def test_encrypt_decrypt_roundtrip():
26
26
 
27
27
  def test_decrypt_wrong_key():
28
28
  import os
29
+
29
30
  key1 = os.urandom(32)
30
31
  key2 = os.urandom(32)
31
32
  encrypted = _encrypt(b"secret", key1)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes