Skip to content

docs: add cdf_/ibnr_/pipe/set_backend examples (#704) - #1212

Merged
henrydingliu merged 7 commits into
casact:mainfrom
EKtheSage:docs/704-common-examples
Aug 25, 2026
Merged

docs: add cdf_/ibnr_/pipe/set_backend examples (#704)#1212
henrydingliu merged 7 commits into
casact:mainfrom
EKtheSage:docs/704-common-examples

Conversation

@EKtheSage

Copy link
Copy Markdown
Contributor

Summary of Changes

  • Add doctest Examples for cdf_, pct_reported_, ibnr_, and set_backend in chainladder/core/common.py.
  • Convert the existing pipe example from >>> doctest style to testsetup / testcode / testoutput.
  • Stop excluding cdf_ / ibnr_ / pct_reported_ from the class autosummary templates so the examples appear on estimator and Triangle API pages.

Related GitHub Issue(s)

Additional Context for Reviewers

Bite-sized core-module follow-up for #704. Companions: #1208 (slice), #1209 (io), #1210 (display).

Checklist

  • I passed tests locally for both code (uv run pytest) and documentation changes (uv run --directory docs jb build . --builder=custom --custom-builder=doctest)

Made with Cursor

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions

github-actions Bot commented Aug 13, 2026

Copy link
Copy Markdown

Pyright Type Completeness

View the full pyright --verifytypes output for this commit

Project (full chainladder package, at this PR's head): 14.9% of exported symbols fully typed (202 / 1356)

Known Ambiguous Unknown Total
Project (head) 202 111 1043 1356

Other symbols referenced but not exported by chainladder: 13

Known Ambiguous Unknown Total
Other (head) 3 1 9 13

Symbols without documentation:

  • Functions without docstring: 324
  • Functions without default param: 0
  • Classes without docstring: 10

Patch (exported symbols added or changed by this PR): 0.0% fully typed (0 / 1)

Known Ambiguous Unknown Total
Patch 0 0 1 1
Patch symbol details
Symbol Status Change
chainladder.core.tests.test_pattern_cum_to_incr.test_pattern_cum_to_incr_zero_cells_stay_finite ❌ unknown new

@codecov

codecov Bot commented Aug 13, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 92.85714% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 91.32%. Comparing base (bd0d539) to head (e4e141f).

Files with missing lines Patch % Lines
chainladder/core/triangle.py 91.30% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1212   +/-   ##
=======================================
  Coverage   91.31%   91.32%           
=======================================
  Files          91       92    +1     
  Lines        5434     5438    +4     
  Branches      700      700           
=======================================
+ Hits         4962     4966    +4     
  Misses        336      336           
  Partials      136      136           
Flag Coverage Δ
unittests 91.32% <92.85%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@henrydingliu

Copy link
Copy Markdown
Member

for cdf_/ibnr_, i think we need to make them a part of a bigger refactor that make ldf_ and ultimate_ into properties. for now, i would recommend that we point the user from Triangle to the lists of attributes in Development and Chainladder, via a See Also.

pct_reported_ should be added to the attribute list in Development

good with the rest.

…_ on Development.

These stay estimator attributes until ldf_/ultimate_ are properties too, so they are no longer un-excluded on the Triangle autosummary page.

Co-authored-by: Cursor <cursoragent@cursor.com>
@EKtheSage

Copy link
Copy Markdown
Contributor Author

cdf_ / ibnr_ are no longer un-excluded on the Triangle autosummary page. Triangle now has a See Also to Development (ldf_, cdf_) and Chainladder (ultimate_, ibnr_).

pct_reported_ is on the Development attribute list. The property examples stay on the estimator pages via class.rst.

@henrydingliu

Copy link
Copy Markdown
Member

ruff fix pretty pls?

@kennethshsu

Copy link
Copy Markdown
Member

@EKtheSage you may need to do a uv sync to get the ruff stuff in

…template.

Clearing per-file ignores on triangle.py and common.py surfaced E721/E731/E712/F401/F841. The template unions documented attrs and arithmetic dunders so sibling casact#704 PRs merge without wiping each other.

Co-authored-by: Cursor <cursoragent@cursor.com>
EKtheSage added a commit to EKtheSage/chainladder-python that referenced this pull request Aug 14, 2026
… autosummary template.

The ruff workflow lints touched files with per-file ignores cleared. The template now unions the documented Triangle attrs and arithmetic dunders so casact#1208, casact#1212, and casact#1213 do not clobber each other on merge.

Co-authored-by: Cursor <cursoragent@cursor.com>
@EKtheSage

Copy link
Copy Markdown
Contributor Author

Ruff: the workflow clears per-file ignores on touched files, so triangle.py / common.py needed the actual E721/E731/E712/F401/F841 fixes rather than a uv sync. Those ignores are dropped.

The autosummary template is the same union as #1208/#1211/#1213 (indexers, shape attrs, arithmetic dunders). cdf_ / ibnr_ / pct_reported_ stay off the Triangle page.

EKtheSage added a commit to EKtheSage/chainladder-python that referenced this pull request Aug 14, 2026
The last merge of casact#1208/casact#1211/casact#1212/casact#1213 would otherwise wipe documented indexers, shape attrs, or arithmetic dunders.

Co-authored-by: Cursor <cursoragent@cursor.com>
The pipe() doctest now normalizes whitespace so pandas header padding does not fail CI.

Co-authored-by: Cursor <cursoragent@cursor.com>
@EKtheSage

Copy link
Copy Markdown
Contributor Author

Merged main. The new E2 ruleset from #1204 is what CI ruff actually enforces on touched files (--config lint.per-file-ignores={}); uv sync does not change that. triangle.py / development.py are E2-clean and those ignores are dropped.

The failing Triangle pipe() doctest was pandas header padding. That example now uses NORMALIZE_WHITESPACE.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ 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 daf006a. Configure here.

Comment thread chainladder/core/triangle.py
henrydingliu pushed a commit that referenced this pull request Aug 14, 2026
* docs: add Triangle shape/empty/compute doctest examples (#704)

Co-authored-by: Cursor <cursoragent@cursor.com>

* Tighten TriangleBase examples from review on nan_triangle, get_array_module, and compute.

Print the nan mask as-is, show numpy/sparse module identity, and document compute with a dask code sample instead of a numpy no-op doctest.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix E721 in TriangleBase, show a fake compute() output, and align the autosummary template.

The ruff workflow lints touched files with per-file ignores cleared. The template now unions the documented Triangle attrs and arithmetic dunders so #1208, #1212, and #1213 do not clobber each other on merge.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
@henrydingliu

Copy link
Copy Markdown
Member

@EKtheSage thanks for all the work! FYI there's a cursor warning and a conflict

EKtheSage and others added 3 commits August 24, 2026 08:42
num_to_value mutates zeros in place; the F841 cleanup dropped that write and left adjacent-age division seeing raw zeros.

Co-authored-by: Cursor <cursoragent@cursor.com>
…mples

Co-authored-by: Cursor <cursoragent@cursor.com>

# Conflicts:
#	pyproject.toml
… regression test that pattern cum_to_incr stays finite when CDF cells are zero.

Co-authored-by: Cursor <cursoragent@cursor.com>
@EKtheSage

EKtheSage commented Aug 24, 2026

Copy link
Copy Markdown
Contributor Author

The Cursor warning was a real side-effect of the F841 cleanup: num_to_value(self.values, 1) mutates zeros to ones before pattern cum_to_incr divides adjacent ages. That call is restored, with a regression test that a zero CDF cell stays finite.

Conflict: merged upstream/main into this branch (not into casact main).

@henrydingliu henrydingliu left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

new test doesn't need to be its own file but harmless as is

@henrydingliu
henrydingliu merged commit fee267d into casact:main Aug 25, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants