You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+25-5Lines changed: 25 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,27 @@ All notable changes to this project will be documented in this file.
5
5
Format follows [Keep a Changelog](https://keepachangelog.com/).
6
6
Numerical changes are marked with [NUMERICAL].
7
7
8
-
## [Unreleased]
8
+
## [0.4.0] - 2026-03-26
9
+
10
+
### Added
11
+
-`show_versions()` for environment diagnostics in bug reports
12
+
- Pyright static type checking in CI pipeline
13
+
- Community templates: issue templates (bug, feature, new operator), CODE_OF_CONDUCT, SECURITY
14
+
- CONTRIBUTING.md with workflow, numerical invariants, and design rationale
15
+
- Timestamp type validation in loader (must be pl.Date or pl.Datetime)
16
+
-`_check_intervals()` warns about irregular timestamp spacing
17
+
-`Panel.gc()` to drop intermediate columns
18
+
-`Panel.select()` to export specific factors
19
+
20
+
### Changed
21
+
-**Column-based Factor architecture.** Factor stores a column name + Panel reference instead of a full DataFrame. Eliminates all hash joins (24 removed), reduces memory by ~60% per Factor, ~2x faster on large panels. All data lives in Panel._df.
22
+
-[NUMERICAL] Removed arbitrary `1e-10` zero guards across all operators. Pure divisions (divide, inverse) now produce Inf → null via Panel._add_col. Statistical and regression operators use exact zero checks for degenerate cases (constant series).
23
+
- Replaced interval-based panel skeleton with union-based skeleton (no frequency inference)
0 commit comments