docs: update outputs, notebooks, and GIFs for 0.835 flat detection threshold#246
Conversation
- Update print_summary() output in README.md and docs/index.md to reflect 8 segments (removed Flat Mar 15-17, extended Up to Mar 17) - Update filter_segments table with new Up segment dates and metrics - Re-execute gradual.ipynb and noise.ipynb with new threshold - Fix noise.ipynb markdown: 9 → 10 noise segments - Run normalize_notebooks.sh for JupyterLite compatibility
|
📚 Docs preview removed The docs preview for this PR has been cleaned up. |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (5)
📒 Files selected for processing (10)
👮 Files not reviewed due to content moderation or server errors (1)
📜 Recent review details🧰 Additional context used📓 Path-based instructions (2)docs/**/*📄 CodeRabbit inference engine (AGENTS.md)
Files:
docs/examples/**/*.ipynb📄 CodeRabbit inference engine (AGENTS.md)
Files:
🪛 Ruff (0.15.21)docs/examples/fundamentals/noise.ipynb[error] 35-35: Undefined name (F821) [error] 37-37: Undefined name (F821) [warning] 47-47: Unnecessary Rewrite as a literal (C408) scripts/generate_gifs/gradual.py[warning] 50-50: Missing return type annotation for private function Add return type annotation: (ANN202) [warning] 50-50: Boolean default positional argument in function definition (FBT002) [warning] 53-53: Missing return type annotation for private function Add return type annotation: (ANN202) [error] 60-60: Multiple statements on one line (semicolon) (E702) [error] 64-64: Multiple statements on one line (semicolon) (E702) [error] 67-67: Multiple statements on one line (semicolon) (E702) [error] 72-72: Multiple statements on one line (semicolon) (E702) [error] 75-75: Multiple statements on one line (semicolon) (E702) [error] 80-80: Multiple statements on one line (semicolon) (E702) [error] 85-85: Multiple statements on one line (semicolon) (E702) [error] 88-88: Multiple statements on one line (semicolon) (E702) scripts/generate_gifs/noise_spikes.py[warning] 58-58: Missing return type annotation for private function Add return type annotation: (ANN202) [warning] 58-58: Boolean default positional argument in function definition (FBT002) [warning] 61-61: Missing return type annotation for private function Add return type annotation: (ANN202) [error] 68-68: Multiple statements on one line (semicolon) (E702) [error] 72-72: Multiple statements on one line (semicolon) (E702) [error] 75-75: Multiple statements on one line (semicolon) (E702) [error] 80-80: Multiple statements on one line (semicolon) (E702) [error] 83-83: Multiple statements on one line (semicolon) (E702) [error] 88-88: Multiple statements on one line (semicolon) (E702) [error] 93-93: Multiple statements on one line (semicolon) (E702) [error] 96-96: Multiple statements on one line (semicolon) (E702) scripts/generate_gifs/abrupt.py[warning] 42-42: Too many statements (61 > 50) (PLR0915) [warning] 55-55: Unnecessary Rewrite as a literal (C408) [warning] 62-62: Missing return type annotation for private function Add return type annotation: (ANN202) [warning] 62-62: Boolean default positional argument in function definition (FBT002) [warning] 65-65: Missing return type annotation for private function Add return type annotation: (ANN202) [error] 72-72: Multiple statements on one line (semicolon) (E702) [error] 76-76: Multiple statements on one line (semicolon) (E702) [error] 79-79: Multiple statements on one line (semicolon) (E702) [error] 84-84: Multiple statements on one line (semicolon) (E702) [error] 87-87: Multiple statements on one line (semicolon) (E702) [error] 92-92: Multiple statements on one line (semicolon) (E702) [error] 108-108: Multiple statements on one line (semicolon) (E702) [error] 112-112: Multiple statements on one line (semicolon) (E702) [error] 115-115: Multiple statements on one line (semicolon) (E702) [error] 120-120: Multiple statements on one line (semicolon) (E702) [error] 123-123: Multiple statements on one line (semicolon) (E702) [error] 128-128: Multiple statements on one line (semicolon) (E702) scripts/generate_gifs/noise_random.py[warning] 87-87: Missing return type annotation for private function Add return type annotation: (ANN202) scripts/generate_gifs/utils.py[error] 67-67: Test for membership should be Convert to (E713) [error] 72-72: Test for membership should be Convert to (E713) [warning] 82-82: Self-assignment of variable (PLW0127) [error] 105-105: Test for membership should be Convert to (E713) [warning] 109-109: Self-assignment of variable (PLW0127) [warning] 125-125: Boolean-typed positional argument in function definition (FBT001) [warning] 125-125: Boolean default positional argument in function definition (FBT002) [warning] 189-189: Boolean positional value in function call (FBT003) [warning] 239-239: Unnecessary assignment to Remove unnecessary assignment (RET504) docs/examples/fundamentals/gradual.ipynb[warning] 36-36: Found useless expression. Either assign it to a variable or remove it. (B018) 🔇 Additional comments (19)
📝 WalkthroughSummary by CodeRabbit
WalkthroughThe PR adds shared GIF-rendering utilities and four executable animation generators. README, documentation, and the gradual tutorial notebook now show trend results produced with two flat segments and revised boundaries and metrics. ChangesTrend visualisation and documentation
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant Generator as Animation generator
participant PyTrendy as pytrendy
participant Renderer as render_frame
participant Saver as save_gif
Generator->>PyTrendy: Load data and detect trends
PyTrendy-->>Generator: Return segments
Generator->>Renderer: Render frames
Renderer-->>Generator: Return images
Generator->>Saver: Save frames and durations
Possibly related PRs
Suggested labels: Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 3❌ Failed checks (2 warnings, 1 inconclusive)
✅ Passed checks (2 passed)
📋 Issue PlannerLet us write the prompt for your AI agent so you can ship faster (with fewer bugs). View plan for ticket: ✨ Finishing Touches📝 Generate docstrings
✨ Simplify code
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
Updates documentation outputs, notebook tutorials, and GIFs to reflect the new 8-segment result from PR #224's 0.835x flat detection threshold.
Changes
print_summary()output block (9→8 segments, removed Flat Mar 15-17, extended Up to Mar 17) andfilter_segmentstable with corrected dates/metricsscripts/normalize_notebooks.sh(no content changes)scripts/normalize_notebooks.shacross all notebooks for JupyterLite compatibilityscripts/generate_gifs/with shared utilities and scripts for all four GIFs (Abrupt, Gradual, Noise-Random, Noise-Spikes)plots/pytrendy-gradual.pngupdated with current pytrendy behaviourScope
CHANGELOG.mdanddocs/whats-new.mdare not touched (automation targets)Verification
All 101 tests pass on this branch (74 core + 27 non-core).
Closes #233