v1.0.3
What's New in v1.0.3
Security
- Cache directory created with
0o700permissions, mitigating pickle deserialization risks - Path traversal checks on CSV and Parquet output paths (`.." rejection before resolve)
- Cache deserialization errors caught gracefully instead of propagating
Architecture
CacheLayerandTickerOrchestratorsupport context manager protocol (withstatement)CacheLayer.close()is idempotent;__del__releases file descriptors_set_identity()serialized via lock to prevent races in concurrent usage
Financial Accuracy (v1.0.2)
- Net Debt/EBITDA uses financial debt only (excluding lease liabilities) for consistency with standard EBITDA
- Amended filings (10-K/A) preferred over base filings when filed more recently
- 8 metrics restored in model round-trip (Quick Ratio, Cash Ratio, Debt/Total Capital, Cash Flow Coverage, Fixed Charge Coverage, Accruals Ratio, Earnings Quality, Sloan Accrual)
- JSON serialization round-trip: NaN → null → NaN survives correctly
- New
AnalysisResult.from_json_dict()for deserialization
Documentation
- README updated for all v0.8–v1.0.3 features (valuation ratios, financial company detection, Z'' model, context managers, JSON round-trip, alerts_config)
- setup.py version synced, development status upgraded to Production/Stable
- SECURITY.md supported versions updated to 1.0.x
Testing
- 400 tests passing on Python 3.10, 3.11, 3.12, 3.13
- +24 new tests across security, architecture, and financial accuracy
Full Changelog: https://github.com/zoharbabin/edgar_analytics/blob/main/CHANGELOG.md