- Add return type hints to all methods in
game_ui.py - Fix return type hint in
ai_gen.py'sgenerate()method to match actual return (ArticleModel | None) - Add return type hints to
get_random_article()inlocal_article.py - Fix
count(ArticlesLocal.local_articles == 0)tolen(ArticlesLocal.local_articles) == 0inlocal_article.py - Simplify
check_answer()ingame_ui.pyto a one-liner - Fix typo in variable name
concatinated_summaryinwiki_article.py
- Add input validation for user selections in
game_ui.py - Add retry logic for API failures in
ai_gen.py - Add error handling for Wikipedia API failures in
wiki_article.py - Add error handling for file operations in
local_article.py - Add proper error handling for JSON parsing in
local_article.py
- Move
main()fromai_gen.pyto a separate test file - Implement singleton pattern in
local_article.pyinstead of static methods -
Move hardcoded categories incategory.pyto a configuration file - Create a common base class/interface for
wiki_article.pyandlocal_article.py - Move duplicate input validation logic in
game_ui.pyto a helper method
- Implement caching for Wikipedia API responses in
wiki_article.py - Load articles only once in
local_article.py - Add lazy loading for articles in
local_article.py - Implement proper singleton pattern to prevent multiple loads
- Make OpenAI model name configurable in
ai_gen.py - Make Wikipedia language configurable in
wiki_article.py - Move API keys and other sensitive data to environment variables
- Add configuration validation
- Add unit tests for all classes and methods
- Add integration tests for game flow
- Add mock tests for external API calls
- Add end-to-end tests for the complete application
- Add docstrings to all public methods
- Add module-level docstrings
- Document the expected JSON structure for
responses.json - Add a README with setup and usage instructions
- Remove API key exposure in error messages in
ai_gen.py - Add input validation for JSON in
local_article.py - Add rate limiting for API calls
- Add input sanitization for user inputs
- Add text wrapping for console output to improve readability
- Replace print statements with proper logging
- Add type checking with mypy
- Add code formatting with black
- Add linting with flake8 or pylint
- Add pre-commit hooks for code quality checks
- Add difficulty levels
- Add score tracking
- Add multiplayer support
- Add more categories and articles
- Add a web interface
- Remove commented code
- Fix TODOs in the codebase
- Update dependencies
- Add version compatibility checks