9 Commits

Author SHA1 Message Date
Vijay Janapa Reddi
d8e8df81af Fix broken imports after CLI cleanup: system and module commands
Fixed broken imports in system and module commands after removing dead command files:

1. System Command (system/system.py):
   - Removed imports: check, version, clean_workspace, report, protect
   - Kept: info, health, jupyter
   - Added 'doctor' as alias for comprehensive health check
   - Simplified to 4 subcommands: info, health, doctor, jupyter

2. Module Workflow Command (module/workflow.py):
   - Removed imports: view, test
   - Replaced ViewCommand._open_jupyter() with direct Jupyter Lab launch
   - Kept all module workflow functionality intact

All 15 registered commands now load and execute successfully:
 Student: module, milestones, community, benchmark, olympics
 Developer: dev, system, src, package, nbgrader
 Shortcuts: export, test, grade, logo
 Essential: setup

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 08:19:26 -08:00
Vijay Janapa Reddi
47635d1550 Add three-phase testing to tito module test
- Phase 1: Inline unit tests (quick sanity checks)
- Phase 2: Module pytest with --tinytorch educational output
- Phase 3: Integration tests for modules 01-N

Added --unit-only and --no-integration flags for flexibility.
Students can now run comprehensive tests with clear feedback
about what each phase is checking and why it matters.
2025-12-02 23:06:17 -08:00
Vijay Janapa Reddi
73a229faa3 Add tito module list command for students to see all modules
New command shows all 21 modules with descriptions:
- tito module list - Shows numbered table of all modules
- Educational descriptions explain what each module covers
- Links to start and status commands for next steps
2025-12-02 22:50:43 -08:00
kai
c682ec2ee3 updates to submission to server database and login flow 2025-11-30 21:01:57 -05:00
Vijay Janapa Reddi
5ce54ce228 Add bulk testing and export commands for modules
New Commands:
- tito module test [NUMBER]    - Test single module
- tito module test --all        - Test all 20 modules sequentially
- tito module complete --all    - Complete all modules (test + export)
- tito module reset --all       - Reset all modules (already existed)

Features:
- Detailed test results with pass/fail status
- --verbose flag for full test output
- --stop-on-fail to halt on first failure
- Summary table showing all module test results
- 5-minute timeout per module test
- Proper error reporting and exit codes

This enables:
- Quick validation of all modules after global changes
- Bulk export workflow for package releases
- Easy testing during development

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 13:59:48 -05:00
Vijay Janapa Reddi
dab6ea215f Fix module complete: correct SrcCommand import path
Changed import from `.src` to `..src` since SrcCommand is in
tito/commands/src.py not tito/commands/module/src.py

This fixes the "No module named 'tito.commands.module.src'" error
when running `tito module complete`.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 21:10:55 -05:00
Vijay Janapa Reddi
f36abec2e7 Fix module completion tracking and add sequential validation
- Remove module from started_modules when marking complete
- Add validation to prevent completing modules out of order
- Show all modules in status (removed smart collapsing)
- Fix data integrity: modules must be completed sequentially

Prevents invalid states where module N is complete but N-1 is not.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 00:08:52 +01:00
Vijay Janapa Reddi
8d3025afc5 Refactor CLI commands into hierarchical folder structure
Reorganize TinyTorch CLI from flat structure to hierarchical organization
with subfolders for complex commands with subcommands.

Changes:
- Create subfolders: module/, system/, package/
- Move module commands: module_workflow.py → module/workflow.py
- Move module_reset.py → module/reset.py
- Move system commands: system.py → system/system.py
- Move system subcommands: info.py, health.py, jupyter.py → system/
- Move package commands: package.py → package/package.py
- Move package helpers: reset.py, nbdev.py → package/
- Archive deprecated files: clean.py, help.py, notebooks.py, status.py
- Update all imports in moved files and main.py
- Add __init__.py exports for each subfolder
- Create comprehensive CLI test suite (52 tests)
  - test_cli_registry.py: Validate command registration
  - test_cli_execution.py: Smoke tests for all commands
  - test_cli_help_consistency.py: Help text validation
- Update tests to match new structure

Benefits:
- Clear ownership: Easy to see which helpers belong to which commands
- Better organization: Related files grouped together
- Scales cleanly: Adding subcommands is straightforward
- Zero user impact: All commands work exactly the same

All 52 tests passing 

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 23:42:03 +01:00
Vijay Janapa Reddi
e159a65118 Fix module reset command: use getattr for optional args
- Fix AttributeError when calling reset without --all flag
- Use getattr() with defaults for 'all' and 'list_backups' attributes
2025-11-28 23:39:13 +01:00