Skip to content

Commit a8ff2c8

Browse files
committed
feat: Academic-grade package overhaul with scientific precision
- Add explicit float64 dtype and VALIDATION_TOLERANCE constants - Add bounds validation warning for values >10 SD from mean - Add infinity handling (converts to NaN) - Add __all__ exports to calculator.py and reference.py - Move imports to module top - Complete README rewrite with: - Full methodology section with equations - Complete units table for all 45 nutrients - All 3 visualizations with images - Templates documentation - Enhanced validation section - API reference - Enhanced validation notebook with side-by-side comparison - Complete CHANGELOG with version history
1 parent a7301f7 commit a8ff2c8

6 files changed

Lines changed: 1096 additions & 200 deletions

File tree

CHANGELOG.md

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,121 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [Unreleased]
9+
10+
## [1.0.13] - 2025-12-17
11+
12+
### Added
13+
- **Scientific Precision Constants**: Explicit `FLOAT_DTYPE` (numpy.float64) and `VALIDATION_TOLERANCE` (1e-10) constants for reproducibility
14+
- **Bounds Validation**: New `validate_bounds` parameter warns about nutrient values >10 SD from global mean (catches unit errors like mg vs g)
15+
- **Infinity Handling**: Division edge cases now properly convert to NaN instead of inf
16+
- **Module Exports**: Added `__all__` to `calculator.py` and `reference.py` for explicit API definition
17+
- **Comprehensive README**: Complete rewrite with:
18+
- Full methodology section with mathematical equations
19+
- Complete units table for all 45 nutrients
20+
- All three visualization examples with images
21+
- Templates documentation
22+
- Enhanced validation section with precision metrics
23+
- API reference
24+
- Proper academic citations
25+
26+
### Changed
27+
- All internal calculations now explicitly use `numpy.float64` dtype
28+
- Improved warning messages for low nutrient coverage (<25%)
29+
- Enhanced docstrings with more examples and precision notes
30+
- Validation notebook now includes side-by-side comparison tables and statistical summaries
31+
32+
### Fixed
33+
- Import statements moved to module top (was inside functions)
34+
- Type hints now use `Tuple` from typing for Python 3.9 compatibility
35+
36+
### Documentation
37+
- Added complete units reference for all 45 DII nutrients
38+
- Enhanced CITATION.cff with full reference metadata
39+
- Added methodology section explaining z-score, centered percentile, and weighting
40+
41+
## [1.0.12] - 2025-12-16
42+
43+
### Fixed
44+
- PyPI badge caching issue resolved with cache-busting parameter
45+
- Combined GitHub Release and PyPI publish into single workflow
46+
47+
## [1.0.11] - 2025-12-16
48+
49+
### Fixed
50+
- GitHub Actions workflow for trusted PyPI publishing
51+
52+
## [1.0.10] - 2025-12-16
53+
54+
### Fixed
55+
- BumpVer configuration for CITATION.cff pattern matching
56+
57+
## [1.0.9] - 2025-12-16
58+
59+
### Added
60+
- Automated version synchronization with BumpVer across pyproject.toml, __init__.py, and CITATION.cff
61+
62+
## [1.0.8] - 2025-12-16
63+
64+
### Fixed
65+
- Version consistency across all package files
66+
67+
## [1.0.7] - 2025-12-16
68+
69+
### Changed
70+
- Updated minimum Python version to 3.10
71+
- Removed Python 3.8 and 3.9 from test matrix
72+
73+
### Fixed
74+
- CI test failures on older Python versions
75+
76+
## [1.0.6] - 2025-12-16
77+
78+
### Added
79+
- Trusted publisher configuration for PyPI
80+
81+
## [1.0.5] - 2025-12-15
82+
83+
### Added
84+
- GitHub Actions workflows for automated testing and PyPI publishing
85+
- Input validation with TypeError for non-DataFrame inputs
86+
- Low nutrient coverage warning (<25% of DII nutrients)
87+
- Numeric coercion for string columns with warnings
88+
89+
### Changed
90+
- Made matplotlib a required dependency (was optional)
91+
92+
### Fixed
93+
- Visualization module simplified after matplotlib became required
94+
95+
## [1.0.4] - 2025-12-15
96+
97+
### Fixed
98+
- Fresh installation test verification
99+
- Package data inclusion in builds
100+
101+
## [1.0.3] - 2025-12-15
102+
103+
### Changed
104+
- README updates for PyPI display
105+
106+
## [1.0.2] - 2025-12-15
107+
108+
### Added
109+
- Visualization functions: `plot_dii_distribution`, `plot_nutrient_contributions`, `plot_dii_categories_pie`
110+
- Command-line interface (`dii` command)
111+
- Input templates in `templates/` folder
112+
113+
## [1.0.1] - 2025-12-14
114+
115+
### Added
116+
- CITATION.cff for proper academic citation
117+
- DATA_SOURCES.md documenting reference table provenance
118+
119+
### Changed
120+
- Restructured to src/ layout
121+
- Added comprehensive docstrings
122+
8123
## [1.0.0] - 2025-06-01
9124

10125
### Added
@@ -24,3 +139,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
24139
- Cross-validated with [dietaryindex R package](https://github.com/jamesjiadazhan/dietaryindex)
25140
- Tested with 13,580 NHANES participants - perfect match with original calculations
26141

142+
[Unreleased]: https://github.com/strathlab-data/DII/compare/v1.0.13...HEAD
143+
[1.0.13]: https://github.com/strathlab-data/DII/compare/v1.0.12...v1.0.13
144+
[1.0.12]: https://github.com/strathlab-data/DII/compare/v1.0.11...v1.0.12
145+
[1.0.11]: https://github.com/strathlab-data/DII/compare/v1.0.10...v1.0.11
146+
[1.0.10]: https://github.com/strathlab-data/DII/compare/v1.0.9...v1.0.10
147+
[1.0.9]: https://github.com/strathlab-data/DII/compare/v1.0.8...v1.0.9
148+
[1.0.8]: https://github.com/strathlab-data/DII/compare/v1.0.7...v1.0.8
149+
[1.0.7]: https://github.com/strathlab-data/DII/compare/v1.0.6...v1.0.7
150+
[1.0.6]: https://github.com/strathlab-data/DII/compare/v1.0.5...v1.0.6
151+
[1.0.5]: https://github.com/strathlab-data/DII/compare/v1.0.4...v1.0.5
152+
[1.0.4]: https://github.com/strathlab-data/DII/compare/v1.0.3...v1.0.4
153+
[1.0.3]: https://github.com/strathlab-data/DII/compare/v1.0.2...v1.0.3
154+
[1.0.2]: https://github.com/strathlab-data/DII/compare/v1.0.1...v1.0.2
155+
[1.0.1]: https://github.com/strathlab-data/DII/compare/v1.0.0...v1.0.1
156+
[1.0.0]: https://github.com/strathlab-data/DII/releases/tag/v1.0.0

0 commit comments

Comments
 (0)