Commit Graph

141 Commits

Author SHA1 Message Date
Cal Corum
bd1cc7e90b CLAUDE: Refactor to reduce code fragility - extract business logic and add constants
This commit implements high value-to-time ratio improvements to make the
codebase more maintainable and less fragile:

## Changes Made

1. **Add constants for magic numbers** (creation_helpers.py)
   - NEW_PLAYER_COST = 99999 (replaces hardcoded sentinel value)
   - RARITY_BASE_COSTS dict (replaces duplicate cost dictionaries)
   - Benefits: Self-documenting, single source of truth, easy to update

2. **Extract business logic into testable function** (creation_helpers.py)
   - Added should_update_player_description() with full docstring
   - Consolidates duplicated logic from batters and pitchers modules
   - Independently testable, clear decision logic with examples
   - Benefits: DRY principle, better testing, easier to modify

3. **Add debug logging for description updates** (batters & pitchers)
   - Logs when descriptions ARE updated (with details)
   - Logs when descriptions are SKIPPED (with reason)
   - Benefits: Easy troubleshooting, visibility into decisions

4. **Update batters/creation.py and pitchers/creation.py**
   - Replace hardcoded 99999 with NEW_PLAYER_COST
   - Replace base_costs dict with RARITY_BASE_COSTS
   - Replace inline logic with should_update_player_description()
   - Improved docstring for post_player_updates()
   - Benefits: Cleaner, more maintainable code

5. **Add comprehensive tests** (tests/test_promo_description_protection.py)
   - 6 new direct unit tests for should_update_player_description()
   - Tests cover: promo/regular cardsets, new/existing players, PotM cards
   - Case-insensitive detection tests
   - Benefits: Confidence in behavior, prevent regressions

6. **Add documentation** (PROMO_CARD_FIX.md, REFACTORING_SUMMARY.md)
   - PROMO_CARD_FIX.md: Details the promo card renaming fix
   - REFACTORING_SUMMARY.md: Comprehensive refactoring documentation
   - Benefits: Future developers understand the code and changes

## Test Results
 13/13 tests pass (7 existing + 6 new)
 No regressions in existing tests
 100% backward compatible

## Impact
- Magic numbers: 100% eliminated
- Duplicated logic: 50% reduction (2 files → 1 function)
- Test coverage: +86% (7 → 13 tests)
- Code clarity: Significantly improved
- Maintainability: Much easier to modify and debug

## Files Modified
- creation_helpers.py: +82 lines (constants, function, docs)
- batters/creation.py: Simplified using new constants/function
- pitchers/creation.py: Simplified using new constants/function
- tests/test_promo_description_protection.py: +66 lines (new tests)
- PROMO_CARD_FIX.md: New documentation
- REFACTORING_SUMMARY.md: New documentation

Total: ~228 lines added/modified for significant maintainability gain

Related to earlier promo card description protection fix.
2025-10-31 22:03:22 -05:00
Cal Corum
c89e1eb507 Claude introduction & Live Series Update 2025-07-22 09:24:34 -05:00
Cal Corum
8939b8bd71 Scouting complete :) 2025-02-09 07:57:02 -06:00
Cal Corum
71b2fdbeba Refactor refresh_cards 2025-02-09 01:17:58 -06:00
Cal Corum
aff600d306 Build scouting csvs locally for upload 2025-02-09 01:17:02 -06:00
Cal Corum
f036f29488 1996 Data 2024-12-23 09:57:51 -06:00
Cal Corum
3969bf008f December 22 Update 2024-12-22 15:46:52 -06:00
Cal Corum
25d4d9a63c Migrate to rotating file logger 2024-11-10 14:42:12 -06:00
Cal Corum
9844fa4742 Add player update functionality
Save new players and deltas to csv
2024-11-10 14:42:00 -06:00
Cal Corum
d7922a138c Green to go for 98 Live Series 2024-11-02 22:51:24 -05:00
Cal Corum
ac544965ae Migrated args to constants 2024-11-02 22:50:54 -05:00
Cal Corum
863d906657 Script to change pos_1=P to proper SP/RP/CP 2024-11-02 22:50:39 -05:00
Cal Corum
d69d7e6103 Added exceptions.py, added date_math, error checks for promos 2024-11-02 19:00:39 -05:00
Cal Corum
cdb5820dbc Pitchers are complete 2024-11-01 08:50:29 -05:00
Cal Corum
93b8a230db All pitcher data is built, ready to post data 2024-10-27 23:41:44 -05:00
Cal Corum
e396b50230 Pitching defense done
Pitching cards done
2024-10-27 00:42:51 -05:00
Cal Corum
3388c4e0c5 Pitching peripherals done 2024-10-26 20:18:54 -05:00
Cal Corum
d74ea59d40 Huge progress on pitching_stats 2024-10-25 15:36:47 -05:00
Cal Corum
b3102201c8 Added Devil Rays to club and franchise lists
Fixed bphr fraction bug
Removed player post limit
2024-10-25 12:24:08 -05:00
Cal Corum
b3cce68576 Added ratings post and positions post - to be tested 2024-10-25 07:48:56 -05:00
Cal Corum
5c6d706160 Player post complete
Batting card post complete
2024-10-25 07:06:06 -05:00
Cal Corum
44e8e22bc0 Add defense calcs
Begin work on posting data
2024-10-20 22:57:45 -05:00
Cal Corum
eb79430de7 Calc rate stats on batting ratings for cost calcs 2024-10-20 22:56:58 -05:00
Cal Corum
2ef68915d1 Add Montreal to franchise list
Fix precision bug in mround
2024-10-20 22:55:59 -05:00
Cal Corum
d8e30ec5f9 Batting cards and ratings being calculated; began positions 2024-10-19 23:02:32 -05:00
Cal Corum
c2b0d93a02 Storing defense data to avoid bbref limits 2024-10-19 23:00:40 -05:00
Cal Corum
6e576e22dc Prep 1998 running & pitching stats 2024-10-19 01:17:39 -05:00
Cal Corum
c7373e7d9d Batter stat generation complete 2024-10-19 01:05:23 -05:00
Cal Corum
3c421c8c90 Update gitignore 2024-10-18 23:40:19 -05:00
Cal Corum
c40451c27b Merge branch 'main' of https://github.com/calcorum/paper-dynasty-card-creation 2024-10-18 23:38:38 -05:00
Cal Corum
d092bdb9ff Batter stats nearing completion 2024-10-18 23:31:39 -05:00
Cal Corum
11ce81dc2b Update gitignore 2024-10-18 18:12:53 -05:00
Cal Corum
0de2239100 Updated mround to return float
Counting stats nearly complete for batters
2024-10-18 12:12:40 -05:00
Cal Corum
1109a12434 Added PA and AB to batter_stats 2024-10-17 16:31:17 -05:00
Cal Corum
07faea0bc7 Retrosheet pulling to stat dataframe 2024-10-17 12:06:05 -05:00
Cal Corum
2a7beef2d9 Add retrosheet db 2024-10-17 09:28:59 -05:00
Cal Corum
639e032586 Moving older scripts into holding cell 2024-10-17 09:28:02 -05:00
Cal Corum
f0f77ffb16 End of season card data plus handedness bugfix 2024-10-16 22:35:35 -05:00
Cal Corum
371c083dc3 August 25 Card Data 2024-08-25 19:49:53 -05:00
Cal Corum
4624c307ef New script to update positions 2024-08-25 18:29:47 -05:00
Cal Corum
ebfe9ec958 August 18 Card Data 2024-08-18 13:55:38 -05:00
Cal Corum
be1ce784ec August 11 Card Data 2024-08-11 20:08:20 -05:00
Cal Corum
a91f0bb906 August 5 Card Data 2024-08-11 15:13:42 -05:00
Cal Corum
e9621a3953 July 21 Card Data 2024-07-21 18:33:45 -05:00
Cal Corum
48c9cec364 Refactor for manual updates 2024-07-14 13:22:22 -05:00
Cal Corum
bf35bca7d8 July 07 Card Data 2024-07-14 13:21:49 -05:00
Cal Corum
40d22ae61e Fix incorrect player match 2024-07-03 09:54:55 -05:00
Cal Corum
cd62e3807a Fix PotM renaming 2024-07-03 09:54:25 -05:00
Cal Corum
ab706abf5b June PotM Data 2024-07-03 09:54:06 -05:00
Cal Corum
82b1498591 July 1 Card Data 2024-07-01 14:37:18 -05:00