This document describes the new features and improvements added to the Python Features Explorer application.
Purpose: Quickly find specific chapters by name, description, or examples.
How to Use:
- When the main menu displays, type a keyword at the search prompt
- Examples:
"os","module",math - Press Enter to see all chapters
- You can continue searching or exit to view all chapters
Features:
- Searches chapter titles, descriptions, and example names
- Configurable minimum characters (default: 2)
- Fuzzy matching support (can be enabled in config)
Purpose: Remember your learning progress between sessions.
What Gets Saved:
- Completed chapters
- Examples viewed per chapter
- Quiz scores
- Example ratings
- Favorited chapters
- Total time spent
- Last session timestamp
How to Use:
- Progress is automatically saved after each chapter
- Manual save through quit command
- Load automatically on next session
Configuration:
progress:
enabled: true
storage_file: "user_progress.json"
auto_save: truePurpose: Monitor your learning progress.
Access: Type stats at the main menu.
Statistics Displayed:
- Total chapters and completed chapters
- Progress percentage
- Favorited chapters count
- Examples rated
- Last session time
- Total time spent
- Per-chapter example completion rates
Purpose: Mark important chapters for quick access.
How to Use:
- Enable favorite mode: type
fav - Browse chapters - favorites shown with β
- Toggle individual chapters using
f<number> - Favorites appear at top of menu
Configuration:
favorites:
enabled: true
max_favorites: 10Purpose: Customizable terminal display for better readability.
Available Themes:
light- Light-colored outputdark- Dark-colored outputauto- Auto-detect (system default)
Color Options:
- Header and separators: Cyan
- Chapter titles: Green
- Example text: Blue
- Output messages: White
- Error messages: Red
- Success: Green
- Warnings: Yellow
Installation Required:
pip install coloramaConfiguration:
theme:
mode: "auto"
colors:
header: "cyan"
chapter_title: "green"
example: "blue"Purpose: Test your understanding after completing chapters.
Features:
- Randomized questions from generated pool
- Multiple choice format
- Instant feedback with explanations
- Pass/fail determination
- Score tracking
- Retry attempts allowed
How to Use:
- Enable quizzes in config:
"enabled": true - Type
ywhen prompted after viewing examples - Answer questions displayed
- See results and explanations
Question Generation:
- Run
python generate_quizzes.pyto generate quiz files - Automatically extracts questions from chapter README content
- Custom questions can be added manually
Quiz Files Location: quizzes/quiz_ch<chapter_number>.json
Purpose: Customize application behavior without modifying code.
Configuration File: config.yaml
Key Configuration Options:
app:
name: "Python Features Explorer"
version: "2.0.0"
debug: falseexecution:
timeout_seconds: 30
max_examples_per_session: 0
shell: "python3"display:
show_descriptions: true
show_progress_bars: true
content_width: 80
wide_separators: truesearch:
fuzzy_match: true
min_characters: 2
search_scope: "all"security:
sandbox_mode: false
allowed_directories: ["examples"]
blocked_functions: ["os.system", "eval", "exec"]Purpose: Better user experience when things go wrong.
New Error Classes:
ConfigurationError- Configuration file issuesExampleExecutionError- Code execution problemsChapterNotFoundError- Invalid chapter selection
Better Error Messages:
- Context-aware error display
- Helpful suggestions
- Fallback behavior when possible
Purpose: Track application activity for debugging and insights.
Log File: python_explorer.log
Log Entries Include:
- Application start/end times
- Configuration loaded
- Chapters discovered
- Chapter examples executed
- User progress updates
- Errors and warnings
Log Level Configurable:
logging:
level: "INFO" # DEBUG, INFO, WARNING, ERROR, CRITICAL- 1-N: Select chapter
- exit, quit, q: Exit application
- stats: Show statistics
- fav: Toggle favorite mode
- help: Show available commands
- config: Display current configuration
- y: Try quiz (if enabled)
- f: Mark favorite (in favorite mode)
cd /home/dido/projects/python/python_quick_robert_oliver/using_math
pip install -r requirements.txtRequired:
colorama>=0.4.6- Terminal colorsPyYAML>=6.0- Configuration parsing
Edit config.yaml for your preferences:
- Set color theme
- Configure timeout
- Customize search behavior
- Enable/disable features
python generate_quizzes.pyThis creates quiz files in the quizzes/ directory.
python main.pyβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MAIN MENU β
β - Shows progress β
β - Search bar β
β - Favorites section β
β - All chapters with status indicators β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββ
β SELECT CHAPTER (1-N) β
βββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββ
β CHAPTER DETAILS VIEW β
β - Display content β
β - List examples β
β - Progress indicators β
βββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββ
β RUN EXAMPLE β
β - Execute code β
β - Capture output β
β - Track viewing β
β - Timeout handling β
βββββββββββββββββββββββββββββββ
β
βββββββββ΄ββββββββ
β β
βΌ βΌ
ββββββββββββββββ ββββββββββββββββ
β COMPLETE? β β QUIZ? β
ββββββββββββββββ ββββββββββββββββ
β β
βΌ βΌ
ββββββββββββββββ ββββββββββββββββ
β Mark Done β β Answer Qs β
β Update Score β β Track Score β
ββββββββββββββββ ββββββββββββββββ
β
ββββββ΄βββββ
β YES β NO
ββββββ¬βββββ
βΌ
ββββββββββββββββ
β Continue β
β Next β
ββββββββββββββββ
- Complete examples sequentially - This helps track learning systematically
- Take quizzes - Reinforce what you've learned
- Bookmark favorites - Return to challenging chapters
- Start with defaults - Adjust settings as you learn what works for you
- Use dark mode - Easier on eyes for long sessions
- Enable auto-save - Never lose your progress
- Use keywords - Focus on specific terms you're learning
- Search examples - Find specific code patterns
- Combine terms - Type multiple words for broader search
- Check
config.yamlhasprogress.enabled: true - Ensure write permissions on storage directory
- Check
user_progress.jsonis not read-only
- Install
colorama:pip install colorama - Check terminal supports ANSI colors
- Try different terminal emulator
- Verify quizzes are enabled in
config.yaml - Ensure quiz files exist in
quizzes/directory - Run quiz generation:
python generate_quizzes.py
- Check Python version compatibility (3.8+)
- Verify example file exists and is executable
- Check timeout value is sufficient
- Check
python_explorer.logfor errors - Try starting with
config.yamldefaults - Ensure all requirements are installed
Added:
- π Search functionality
- πΎ Progress tracking
- β Favorites system
- π Statistics display
- π Dark mode support
- π Quiz functionality
- βοΈ Configuration support
- π Logging system
Improved:
- Error handling and messages
- Input validation
- Session persistence
- User experience flow
- Code organization
Performance:
- Added result caching
- Optimized file loading
- Reduced memory footprint
- Faster search operations
- No sandboxing by default - Examples execute with full privileges
- File path validation - Only allows execution of .py files
- Timeout protection - Prevents infinite loops
- Configurable execution - Can restrict to specific directories
- Enable sandbox mode in config (
sandbox_mode: true) - Review allowed_directories carefully
- Monitor blocked_functions list
- Log all executions for audit trail
- Examples run with user's privileges
- No file system sandboxing (requires external tool)
- Network access not restricted
- Video tutorial integration
- Interactive documentation viewer
- Group/quizzes for team learning
- Performance benchmarking
- Community contribution system
- Multi-language support
- Mobile companion app
- Progress analytics dashboard
- Dark/light theme toggle on the fly
- Export progress as PDF
- Chapter difficulty ratings
- Estimated time to completion
- Bookmark specific code snippets
README.md- Main project documentationdocs/- Additional documentationconfig.yaml.example- Template configuration
- Check
python_explorer.logfor errors - Review relevant documentation
- Verify configuration settings
- Check example Python version compatibility
When reporting issues, include:
- Error messages from log file
- Configuration settings used
- Steps to reproduce
- Python version
- Operating system
Release Date: April 2024
- Search functionality
- Progress tracking
- Theme support
- Quiz system
- Configuration file support
- Enhanced error handling
- Statistics display
- Initial release
- Basic chapter navigation
- Example execution
- Manual state persistence
Last updated: April 2024