Repository navigation
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1304 +/- ##
==========================================
+ Coverage 94.36% 94.58% +0.22%
==========================================
Files 97 97
Lines 6188 6313 +125
Branches 798 826 +28
==========================================
+ Hits 5839 5971 +132
+ Misses 225 214 -11
- Partials 124 128 +4
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Pyright Type CompletenessView the full Project (full
Other symbols referenced but not exported by
Symbols without documentation:
Patch (exported symbols added or changed by this PR): 12.5% fully typed (2 / 16)
Patch symbol details
|
7bcf3d0 to
0c87d2e
Compare
a9f5c57 to
c6e0c8d
Compare
7d7efdc to
4253b6e
Compare
4253b6e to
8b192f3
Compare
Folded the descriptor commits into this branch per your note. origin and development are now wired through TriangleAxis (axis 2 and 3) with _set_origin and _set_development in axis.py, and _axes stores all four dimensions (0..3). Since bringing the descriptors and call-site updates together touches around 40 files, we can either review it in one go to get the full dimension stack in, or split it up if you'd rather review in smaller chunks. |
|
I can review it one go, let's get the |
6673db5 to
a9066cf
Compare
Works for me. The swap to origin and development is in place, so all set for review. |
|
I'm still seeing a lot of references to |
Sorry about that, the changes were stashed locally while I was testing, and I mistakenly thought they had already been pushed when I replied. |
…1012, #1013) - Encapsulate internal date dimensions into _odims and _ddims - Provide backward-compatible odims and ddims properties emitting FutureWarning - Migrate legacy pickled instances with odims/ddims in Triangle.__setstate__ - Decouple internal usages across core, estimators, tails, and tests - Address ruff linting and formatting on touched files Closes #1012, closes #1013, refs #1216, refs #601
738f622 to
94a86a1
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want reviews to match your repository better? Bugbot Learning can learn team-specific rules from PR activity. A team admin can enable Learning in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 94a86a1. Configure here.
| obj.values = 1 / self._G(age) | ||
| obj.ddims = age | ||
| obj._axes[2] = self.incremental_act_._axes[2][0:1] | ||
| obj.development = age |
There was a problem hiding this comment.
G_ list ages fail length check
Low Severity
Passing a Python list of ages to G_() now raises a length-mismatch error. The list is wrapped as a 2-D array, so len(age) is 1, while _G broadcasts values along the last axis. Assigning that array to development then fails the new _len_check against values.shape[3].
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 94a86a1. Configure here.


Summary of Changes
Triangle.__setstate__to migrate legacy pickled instances cleanly.Related GitHub Issue(s)
Closes #1012, closes #1013, closes #1053 , #1454, refs #601, refs #1216, refs #1466
Additional Context for Reviewers
Checklist
uv run pytest) and documentation changes (uv run --directory docs jb build . --builder=custom --custom-builder=doctest)Note
Medium Risk
This is a wide refactor of Triangle’s four-axis model and pickle migration; backward-compatible shims limit user breakage, but incorrect axis assignment could still affect reserving and development logic.
Overview
Origin and development are now first-class
TriangleAxisdescriptors (axes 2 and 3), with raw storage in_axesand get/set logic moved tochainladder.core.axis. Publicorigin/developmentreplace direct use of internal date arrays;odimsandddimsremain asFutureWarningshims that delegate to the new properties.Internal code across core, development, methods, tails, and adjustments now reads/writes
_axes[2]/_axes[3]or the public properties instead ofodims/ddims. Slicing, concat, arithmetic alignment, andis_val_trichecks follow the same model (e.g. bootstrap/incremental useX.is_val_triinstead of inspectingddimstype).Triangle.__setstate__migrates legacy pickles that still carryodims/ddims(and related keys) into_axes.Axis helpers are shared via
utility_functions/typing, andDevelopmentConstantpattern detection no longer treats arbitrary DataFrames withorigin/developmentcolumns as Triangles. Tests cover descriptor edge cases, deprecation warnings, pickle round-trips, and a few new validation paths (valuation triangles on bootstrap/incremental, predict age limits).Reviewed by Cursor Bugbot for commit 94a86a1. Bugbot is set up for automated code reviews on this repo. Configure here.