Skip to content

TODO Evaluation

Catalog of all TODO comments in the codebase, with context and recommendations.

# File Line TODO Comment Date Introduced Context Recommendation
1 src/fbcm/constants.py 13 Think harder about this name? 2026-01-27 The PHOTO_BASE_DIR env var/constant name. Refers to the directory used for storing player photos downloaded during draft report generation. Low priority. The name is descriptive enough. If renamed, update all references in draft_buzz.py and word_gen.py. Consider closing as-is.
2 src/fbcm/docx/word_gen.py 367 Parameterize the fontpath here 2026-01-29 Font path (/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf) is hardcoded in _gen_championship_ring. Falls back to default font on failure. Medium priority. Hardcoded path will fail on non-Linux or systems without DejaVu fonts. Could be added as a config option or constant.
3 src/fbcm/docx/word_gen.py 394 Split this into smaller methods 2026-01-29 _gen_header_table builds the entire header section of the draft report (photo cell, info cell, ring cell) in one method. Medium priority. Refactoring target. Method handles photo insertion, player info formatting, and championship ring placement. Splitting would improve readability and testability.
4 src/fbcm/docx/word_gen.py 700 Skills, comparisons, and recruiting should probably all be distinct methods 2026-01-29 The section after this TODO in _gen_skills_section handles skill ratings, NFL comparisons, and recruiting info all within the same method body. Medium priority. Related to #3 — part of a broader refactoring effort for word_gen.py. Splitting would improve readability and testability.
5 src/fbcm/draft_buzz.py 119 Returning both text_content and page.content is a temporary kludge 2026-01-14 _fetch_page returns text_content (parsed text) but the caller also needs raw HTML (page.content) for image extraction. Currently only text_content is returned alongside image data. Medium priority. The return signature may need reworking if callers ever need the raw HTML content. Evaluate whether text_content alone is sufficient for all downstream use cases.
6 src/fbcm/models.py 291 Find a source for age and DOB, DraftBuzz doesn't provide it 2026-01-24 DraftProspect model has age and dob fields that are always empty strings because DraftBuzz (the data source) doesn't include this information. Low priority. Requires finding an alternative data source. Fields exist as placeholders for future enrichment. No functional impact.
7 src/fbcm/fbcm.py 217 Ensure jellyfin isn't running..it borks the post processing 2026-01-06 Comment inside nfl_games CLI command. Jellyfin media server can interfere with post-processing of downloaded game files (likely file locking or premature scanning). Low priority. Could add a pre-flight check for running Jellyfin processes, or document as a known limitation. Edge case that only affects users running Jellyfin on the same machine.
8 src/fbcm/file_namer.py 23 This needs to be generalized 2026-03-09 _get_bowl_game_str has a hardcoded list of bowl/championship game names (SEC Championship, Orange Bowl, CFP Final, etc.) used for file naming. Medium priority. The list will need updating as bowl games change names or new ones are added. Could be moved to a config file or constants module.
9 src/fbcm/nfl.py 233 This class requires a lot of work to leverage yt-dlp fully 2026-01-06 Docstring for NFLShowDownloader. The class is a basic wrapper around YoutubeDL for downloading NFL Plus TV series. Low priority. Broad refactoring note. Would need a specific plan for what "leverage yt-dlp fully" means (e.g., post-processors, progress hooks, better error handling).
10 tests/test_fbcm/test_base.py 207 Make the mocking cleaner 2026-01-06 test_download_from_file test method. The mocking setup for yt_dlp.YoutubeDL could be simplified or extracted into a fixture. Low priority. Test quality improvement. Does not affect functionality.