Skip to content

chore(deps): Update ruff requirement from >=0.16.4 to >=0.16.8 - #335

Closed
dependabot[bot] wants to merge 1 commit into
devfrom
dependabot/pip/dev/ruff-gte-0.16.8
Closed

dependabot[bot] wants to merge 1 commit into
devfrom
dependabot/pip/dev/ruff-gte-0.16.8

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 28, 2026

Copy link
Copy Markdown
Contributor

Updates the requirements on ruff to permit the latest version.

Release notes

Sourced from ruff's releases.

0.16.8

Release Notes

Released on 2026-09-16.

Bug fixes

  • Visit functional TypedDict keyword arguments correctly (#28584)
  • [flake8-simplify] Detect nested async with under sync parent (SIM117) (#27821)
  • [flake8-simplify] Preserve operand order in SIM109 fix (#27824)
  • [pyupgrade] Preserve required parentheses in multiline UP040 fixes (#28164)
  • [pyupgrade] Skip TypeVarTuple and ParamSpec conversions with bounds or constraints (UP040, UP046, UP047) (#28505)

Rule changes

  • Add support for __lazy_modules__ (#28459)
  • Recognize PEP-728 TypedDict class keywords (#28533)
  • Recognize quoted types in typing.TypeForm (#28507)
  • Support conditional assignment to __lazy_modules__ (#28491)
  • [flake8-type-checking] Prefer lazy imports over TYPE_CHECKING on Python 3.15 and later (TC001, TC002, TC003) (#28541)
  • [pyupgrade] Make the fix for UP040 always unsafe (#28526)
  • [pyupgrade] Stop recommending deprecated ByteString aliases (UP035) (#28498)
  • [ruff, flake8-use-pathlib] Recognize the parent_mode argument (RUF064, PTH103) (#28528)
  • [ruff] Detect \Z in pytest.raises() match patterns (RUF043) (#28598)

CLI

  • Use rule name and code in formatter incompatibility warnings (#28571)

Configuration

  • [flake8-tidy-imports] Add extend-banned-api (#28644)

Contributors

Install ruff 0.16.8

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.16.8/ruff-installer.sh | sh
</tr></table> 

... (truncated)

Changelog

Sourced from ruff's changelog.

0.16.8

Released on 2026-09-16.

Bug fixes

  • Visit functional TypedDict keyword arguments correctly (#28584)
  • [flake8-simplify] Detect nested async with under sync parent (SIM117) (#27821)
  • [flake8-simplify] Preserve operand order in SIM109 fix (#27824)
  • [pyupgrade] Preserve required parentheses in multiline UP040 fixes (#28164)
  • [pyupgrade] Skip TypeVarTuple and ParamSpec conversions with bounds or constraints (UP040, UP046, UP047) (#28505)

Rule changes

  • Add support for __lazy_modules__ (#28459)
  • Recognize PEP-728 TypedDict class keywords (#28533)
  • Recognize quoted types in typing.TypeForm (#28507)
  • Support conditional assignment to __lazy_modules__ (#28491)
  • [flake8-type-checking] Prefer lazy imports over TYPE_CHECKING on Python 3.15 and later (TC001, TC002, TC003) (#28541)
  • [pyupgrade] Make the fix for UP040 always unsafe (#28526)
  • [pyupgrade] Stop recommending deprecated ByteString aliases (UP035) (#28498)
  • [ruff, flake8-use-pathlib] Recognize the parent_mode argument (RUF064, PTH103) (#28528)
  • [ruff] Detect \Z in pytest.raises() match patterns (RUF043) (#28598)

CLI

  • Use rule name and code in formatter incompatibility warnings (#28571)

Configuration

  • [flake8-tidy-imports] Add extend-banned-api (#28644)

Contributors

0.16.7

Released on 2026-09-10.

Preview features

  • [ruff] Add rule for default values on method receivers (RUF077) (#26700)

... (truncated)

Commits
  • 62914c4 Bump version to 0.16.8 (#28648)
  • c47e0cd [ty] Bound aliased intersection expansion during inference (#28546)
  • ff4747b renovate: update uv hashes correctly with setup-uv (#28621)
  • 94efeaa [ty] Compact reachable binding and declaration histories (#28349)
  • 50020fb [ty] Avoid storing constraint nodes twice (#28375)
  • 446bb68 [ty] Compare bound-method receivers before signatures (#28384)
  • 304ab86 [flake8-type-checking] Prefer lazy imports over TYPE_CHECKING on 3.15+ (`...
  • d940b24 [ty] Watch script dependencies in CLI watch mode (#28125)
  • fe9f065 [flake8-tidy-imports] Add extend-banned-api (#28644)
  • 31131db [ty] Support type[A & B] (#27124)
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Updates the requirements on [ruff](https://github.com/astral-sh/ruff) to permit the latest version.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.16.4...0.16.8)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.16.8
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Sep 28, 2026
@github-actions

Copy link
Copy Markdown

ASV continuous — benchmark diff (Python 3.11)

Exit code: 0 (1 = flagged regression at --factor 1.25; 2 = a benchmark raised, so nothing was compared)

Gate — blocks only at or above 0.01s, where this runner can measure reliably:

Faster (never blocks):
   0.91  bench_backtest.EvalKernels.time_profit_factor

Moved, but not blocking (under 1.25x, or under the 10ms floor where this runner's noise exceeds the factor):
   1.37  bench_common.IntervalCompression.time_compress_5m_large  (baseline 2.11596ms)

No benchmark at or above 10ms regressed by 1.25x or more (73 benchmarks compared).
Full benchmark output
· No executable found for python 3.13
· No executable found for python 3.14
· Creating environments
· Discovering benchmarks
·· Uninstalling from virtualenv-py3.11
·· Installing 58442f7f into virtualenv-py3.11
· Running 106 total benchmarks (2 commits * 1 environments * 53 benchmarks)
[ 0.00%] · For pybroker commit eb9d3400 (round 1/2):
[ 0.00%] ·· Building for virtualenv-py3.11
[ 0.00%] ·· Benchmarking virtualenv-py3.11
[ 0.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[ 6.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[ 9.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--)......
[12.26%] ··· Running (bench_backtest.ModelTrainPrep.time_train_models_per_symbol--)...........
[18.40%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models--).......
[21.70%] ··· Running (bench_common.IntervalCompression.time_compress_5m_large--)........
[25.00%] · For pybroker commit 58442f7f (round 1/2):
[25.00%] ·· Building for virtualenv-py3.11
[25.00%] ·· Benchmarking virtualenv-py3.11
[25.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[31.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[34.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--)......
[37.26%] ··· Running (bench_backtest.ModelTrainPrep.time_train_models_per_symbol--)...........
[43.40%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models--).......
[46.70%] ··· Running (bench_common.IntervalCompression.time_compress_5m_large--)........
[50.00%] · For pybroker commit 58442f7f (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.11
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop         97.4±0.3ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           410±10μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                    30.2±1μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get            2.77±0.05μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        10.8±0.03ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          21.1±0.05ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          23.2±0.02ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            11.7±0.3μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor             27.4±1μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            17.0±0.5μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== =============
              n_symbols               
             ----------- -------------
                  50      19.0±0.09ms 
                 200       39.8±0.6ms 
                 500       85.7±0.3ms 
             =========== =============

[56.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[56.13%] ··· ======== =============
              length               
             -------- -------------
               1000    7.92±0.08μs 
              100000   1.59±0.02ms 
             ======== =============

[56.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[56.60%] ··· ======== =============
              length               
             -------- -------------
               1000    6.64±0.07μs 
              100000   1.63±0.01ms 
             ======== =============

[57.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[57.08%] ··· ======== =============
              length               
             -------- -------------
               1000    6.55±0.04μs 
              100000     1.64±0ms  
             ======== =============

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.81±0.05μs 
              100000     335±5μs   
             ======== =============

[58.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[58.02%] ··· ======== =============
              length               
             -------- -------------
               1000     14.0±0.4μs 
              100000   3.92±0.01ms 
             ======== =============

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== ============
              length              
             -------- ------------
               1000    5.13±0.1μs 
              100000    902±2μs   
             ======== ============

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      131±6ms  
                 200      319±20ms 
             =========== ==========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      8.91±0.05ms   23.0±0.2ms 
                 200       33.9±0.5ms   90.4±0.5ms 
                 500       87.4±0.5ms    229±2ms   
             =========== ============= ============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled        5.75±0.07ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled            787±8μs
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           915±20μs
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         61.7±0.3μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        807±3ms  
                    True        469±20ms 
             ================= ==========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.35±0.02ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        2.87±0.02ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        3.97±0.02ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         75.2±0.7ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.00±0.01ms   1.86±0.02ms 
                  10      1.84±0.02ms   4.13±0.04ms 
             =========== ============= =============

[64.62%] ··· ...rnels.time_slice_symbol_array_store_by_dates                 ok
[64.62%] ··· =========== =============
             --              n_days   
             ----------- -------------
              n_symbols       1260    
             =========== =============
                  10      1.03±0.01ms 
             =========== =============

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                246M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward             68.3±0.3ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         69.3±0.6ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals            200±2ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            289±1ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models          318±0.8ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models          310±0.6ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached          311±0.8ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol          319±0.6ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window        87.2±0.05ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            630±3ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         65.9±0.5ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ============
             --                 symbols         
             --------- -------------------------
              windows       4            12     
             ========= ============ ============
                 1      47.1±0.3ms   92.3±0.5ms 
                 3      65.7±0.5ms    130±1ms   
                 10     87.6±0.7ms   180±0.7ms  
             ========= ============ ============

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large         2.90±0.4ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        5.53±0.03ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         60.4±0.2ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.44±0.01ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         26.2±0.4ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.57±0.01ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage          264±0.5ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage          266±0.8ms
[75.00%] · For pybroker commit eb9d3400 (round 2/2):
[75.00%] ·· Building for virtualenv-py3.11
[75.00%] ·· Benchmarking virtualenv-py3.11
[75.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop          100±0.5ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get            389±9μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                  29.3±0.3μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get            2.71±0.05μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        10.8±0.03ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          21.0±0.04ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          23.2±0.03ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            12.0±0.4μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor             30.2±1μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            18.6±0.7μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== =============
              n_symbols               
             ----------- -------------
                  50      18.8±0.08ms 
                 200       39.6±0.3ms 
                 500       84.8±0.4ms 
             =========== =============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== =============
              length               
             -------- -------------
               1000    7.93±0.07μs 
              100000   1.60±0.02ms 
             ======== =============

[81.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[81.60%] ··· ======== =============
              length               
             -------- -------------
               1000    6.48±0.07μs 
              100000   1.62±0.01ms 
             ======== =============

[82.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[82.08%] ··· ======== =============
              length               
             -------- -------------
               1000    6.54±0.07μs 
              100000   1.64±0.01ms 
             ======== =============

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.87±0.05μs 
              100000     326±6μs   
             ======== =============

[83.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[83.02%] ··· ======== ============
              length              
             -------- ------------
               1000    14.1±0.1μs 
              100000    3.91±0ms  
             ======== ============

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== =============
              length               
             -------- -------------
               1000    5.15±0.03μs 
              100000     900±4μs   
             ======== =============

[83.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[83.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      131±3ms  
                 200      324±20ms 
             =========== ==========

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============= =============
             --                  n_indicators       
             ----------- ---------------------------
              n_symbols        1             5      
             =========== ============= =============
                  50      8.96±0.07ms   22.9±0.07ms 
                 200       34.2±0.3ms    91.0±0.8ms 
                 500        87.8±1ms      228±2ms   
             =========== ============= =============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled        5.75±0.04ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           805±10μs
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store            917±9μs
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           61.3±1μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        811±5ms  
                    True        475±40ms 
             ================= ==========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.35±0.02ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        2.88±0.02ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.00±0.02ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         75.0±0.7ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.01±0.01ms   1.85±0.01ms 
                  10      1.85±0.02ms   4.12±0.03ms 
             =========== ============= =============

[89.62%] ··· ...rnels.time_slice_symbol_array_store_by_dates                 ok
[89.62%] ··· =========== =============
             --              n_days   
             ----------- -------------
              n_symbols       1260    
             =========== =============
                  10      1.05±0.01ms 
             =========== =============

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                246M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward             69.4±0.4ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         70.4±0.7ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals          200±0.5ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large          292±0.5ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models          318±0.7ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models          312±0.3ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached            313±1ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol          318±0.6ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         87.8±0.6ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            627±1ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         66.8±0.1ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ============
             --                 symbols         
             --------- -------------------------
              windows       4            12     
             ========= ============ ============
                 1      47.2±0.3ms   91.8±0.8ms 
                 3      66.2±0.7ms    130±1ms   
                 10     88.8±0.2ms    184±1ms   
             ========= ============ ============

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.12±0.01ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        5.57±0.03ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         60.4±0.1ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.43±0.01ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         25.9±0.2ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.59±0.01ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage          264±0.8ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            264±1ms

BENCHMARKS NOT SIGNIFICANTLY CHANGED.

Blocks only when a benchmark of at least 0.01s regresses by 1.25x. Shorter benchmarks are reported, never blocking: on this runner, identical code has produced ratios from 0.65 to 1.29 on sub-2ms benchmarks. Override via the bench-override PR label.

@github-actions

Copy link
Copy Markdown

ASV continuous — benchmark diff (Python 3.13)

Exit code: 0 (1 = flagged regression at --factor 1.25; 2 = a benchmark raised, so nothing was compared)

Gate — blocks only at or above 0.01s, where this runner can measure reliably:

Faster (never blocks):
   0.91  bench_backtest.ModelPrepKernels.time_indicator_values_for_dates

Moved, but not blocking (under 1.25x, or under the 10ms floor where this runner's noise exceeds the factor):
   1.24  bench_backtest.CacheDiskHit.time_cache_disk_get  (baseline 478.03us) [I/O-bound, never blocks]
   1.11  bench_backtest.CacheL1Hit.time_cache_l1_get  (baseline 2.5245us)

No benchmark at or above 10ms regressed by 1.25x or more (73 benchmarks compared).
Full benchmark output
· No executable found for python 3.11
· No executable found for python 3.14
· Creating environments
· Discovering benchmarks
·· Uninstalling from virtualenv-py3.13
·· Installing 58442f7f into virtualenv-py3.13
· Running 106 total benchmarks (2 commits * 1 environments * 53 benchmarks)
[ 0.00%] · For pybroker commit eb9d3400 (round 1/2):
[ 0.00%] ·· Building for virtualenv-py3.13
[ 0.00%] ·· Benchmarking virtualenv-py3.13
[ 0.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[ 6.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[ 9.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--).....
[11.79%] ··· Running (bench_backtest.ModelTrainParallel.time_train_models_parallel--).....
[14.15%] ··· Running (bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame--).......
[18.40%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models--).....
[20.75%] ··· Running (bench_backtest.WalkforwardProperCold.time_proper_cold_walkforward--)........
[24.53%] ··· Running (bench_slippage.WalkforwardVolatilitySlippage.time_walkforward_volatility_slippage--)..
[25.00%] · For pybroker commit 58442f7f (round 1/2):
[25.00%] ·· Building for virtualenv-py3.13
[25.00%] ·· Benchmarking virtualenv-py3.13
[25.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[31.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[34.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--).....
[36.79%] ··· Running (bench_backtest.ModelTrainParallel.time_train_models_parallel--).....
[39.15%] ··· Running (bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame--).......
[43.40%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models--).....
[45.75%] ··· Running (bench_backtest.WalkforwardProperCold.time_proper_cold_walkforward--)........
[49.53%] ··· Running (bench_slippage.WalkforwardVolatilitySlippage.time_walkforward_volatility_slippage--)..
[50.00%] · For pybroker commit 58442f7f (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.13
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop            101±1ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get          595±100μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                    33.9±1μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.80±0.3μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap         11.0±0.1ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf             22.0±1ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          22.9±0.05ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            11.9±0.3μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor             28.8±2μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio              18.8±1μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      22.0±0.4ms 
                 200      48.3±0.3ms 
                 500      106±0.7ms  
             =========== ============

[56.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[56.13%] ··· ======== ============
              length              
             -------- ------------
               1000    8.09±0.1μs 
              100000    691±10μs  
             ======== ============

[56.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[56.60%] ··· ======== =============
              length               
             -------- -------------
               1000    6.71±0.04μs 
              100000   1.38±0.01ms 
             ======== =============

[57.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[57.08%] ··· ======== =============
              length               
             -------- -------------
               1000    6.79±0.04μs 
              100000   1.39±0.01ms 
             ======== =============

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.88±0.04μs 
              100000     109±5μs   
             ======== =============

[58.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[58.02%] ··· ======== =============
              length               
             -------- -------------
               1000    14.2±0.06μs 
              100000     2.99±0ms  
             ======== =============

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== =============
              length               
             -------- -------------
               1000    5.38±0.09μs 
              100000     680±4μs   
             ======== =============

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== =========
             --          n_indicators
             ----------- ---------
              n_symbols      5    
             =========== =========
                  50      143±3ms 
                 200      357±3ms 
             =========== =========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============ ============
             --                 n_indicators      
             ----------- -------------------------
              n_symbols       1            5      
             =========== ============ ============
                  50      10.4±0.1ms   25.7±0.2ms 
                 200      40.7±0.4ms    103±1ms   
                 500      103±0.4ms     258±2ms   
             =========== ============ ============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled           6.10±1ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.01±0.01ms
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store            985±9μs
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           61.9±1μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= =========
              parallel_models           
             ----------------- ---------
                   False        860±4ms 
                    True        468±1ms 
             ================= =========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.76±0.03ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.26±0.02ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.50±0.01ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         90.9±0.7ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.18±0.01ms   2.36±0.04ms 
                  10      2.26±0.03ms    5.07±0.1ms 
             =========== ============= =============

[64.62%] ··· ...rnels.time_slice_symbol_array_store_by_dates                 ok
[64.62%] ··· =========== =============
             --              n_days   
             ----------- -------------
              n_symbols       1260    
             =========== =============
                  10      1.09±0.01ms 
             =========== =============

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                247M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward             78.5±0.8ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         78.0±0.4ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals          237±0.5ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            386±1ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models            415±3ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models            409±3ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached            412±2ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            416±1ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         93.4±0.6ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar           769±10ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward           77.3±1ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ===========
             --                symbols         
             --------- ------------------------
              windows       4            12    
             ========= ============ ===========
                 1      52.9±0.6ms   102±0.5ms 
                 3       75.2±1ms     160±10ms 
                 10     98.6±0.7ms    200±20ms 
             ========= ============ ===========

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.31±0.02ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        6.26±0.02ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         74.1±0.4ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.47±0.02ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         27.7±0.2ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.77±0.02ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage            302±1ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage          299±0.8ms
[75.00%] · For pybroker commit eb9d3400 (round 2/2):
[75.00%] ·· Building for virtualenv-py3.13
[75.00%] ·· Benchmarking virtualenv-py3.13
[75.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop          101±0.3ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get          478±100μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                  33.7±0.2μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             2.52±0.1μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        11.0±0.05ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           21.0±0.1ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          22.9±0.05ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            11.5±0.1μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor             30.0±2μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            18.5±0.5μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      21.4±0.2ms 
                 200      48.0±0.5ms 
                 500      103±0.7ms  
             =========== ============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== ============
              length              
             -------- ------------
               1000    8.32±0.1μs 
              100000    685±9μs   
             ======== ============

[81.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[81.60%] ··· ======== =============
              length               
             -------- -------------
               1000    6.66±0.03μs 
              100000   1.38±0.01ms 
             ======== =============

[82.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[82.08%] ··· ======== =============
              length               
             -------- -------------
               1000    6.70±0.04μs 
              100000   1.39±0.01ms 
             ======== =============

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== =============
              length               
             -------- -------------
               1000    3.00±0.06μs 
              100000     110±4μs   
             ======== =============

[83.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[83.02%] ··· ======== =============
              length               
             -------- -------------
               1000    14.2±0.06μs 
              100000   2.99±0.01ms 
             ======== =============

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== =============
              length               
             -------- -------------
               1000    5.30±0.05μs 
              100000     679±2μs   
             ======== =============

[83.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[83.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      141±2ms  
                 200      352±10ms 
             =========== ==========

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============ ============
             --                 n_indicators      
             ----------- -------------------------
              n_symbols       1            5      
             =========== ============ ============
                  50      10.5±0.2ms   25.6±0.1ms 
                 200      40.4±0.3ms   103±0.9ms  
                 500       105±1ms      256±2ms   
             =========== ============ ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         6.30±0.9ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.00±0.01ms
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           993±30μs
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           68.3±5μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        864±10ms 
                    True        465±1ms  
             ================= ==========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.76±0.02ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.34±0.04ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.45±0.02ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         90.0±0.7ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4         1.18±0ms    2.33±0.01ms 
                  10      2.26±0.02ms    5.23±0.1ms 
             =========== ============= =============

[89.62%] ··· ...rnels.time_slice_symbol_array_store_by_dates                 ok
[89.62%] ··· =========== =============
             --              n_days   
             ----------- -------------
              n_symbols       1260    
             =========== =============
                  10      1.09±0.01ms 
             =========== =============

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                246M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward             77.7±0.9ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         77.9±0.3ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals          237±0.5ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               255M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            390±8ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models            415±1ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models            411±1ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached            409±2ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            420±1ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window           93.0±1ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            758±3ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         74.9±0.5ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ========== ===========
             --               symbols        
             --------- ----------------------
              windows      4           12    
             ========= ========== ===========
                 1      53.1±1ms   103±0.3ms 
                 3      74.8±1ms    161±10ms 
                 10     99.9±1ms    199±20ms 
             ========= ========== ===========

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.38±0.04ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        6.36±0.05ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         74.7±0.4ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.51±0.02ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         28.4±0.5ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.71±0.02ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage            302±2ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            302±1ms

BENCHMARKS NOT SIGNIFICANTLY CHANGED.

Blocks only when a benchmark of at least 0.01s regresses by 1.25x. Shorter benchmarks are reported, never blocking: on this runner, identical code has produced ratios from 0.65 to 1.29 on sub-2ms benchmarks. Override via the bench-override PR label.

@github-actions

Copy link
Copy Markdown

ASV continuous — benchmark diff (Python 3.12)

Exit code: 0 (1 = flagged regression at --factor 1.25; 2 = a benchmark raised, so nothing was compared)

Gate — blocks only at or above 0.01s, where this runner can measure reliably:

Faster (never blocks):
   0.83  bench_backtest.CacheL1Hit.time_cache_l1_get
   0.88  bench_backtest.LagPrepBottlenecks.time_apply_lags_pooled

No benchmark at or above 10ms regressed by 1.25x or more (73 benchmarks compared).
Full benchmark output
· No executable found for python 3.11
· No executable found for python 3.13
· No executable found for python 3.14
· Creating environments
· Discovering benchmarks
·· Uninstalling from virtualenv-py3.12
·· Installing 58442f7f into virtualenv-py3.12
· Running 106 total benchmarks (2 commits * 1 environments * 53 benchmarks)
[ 0.00%] · For pybroker commit eb9d3400 (round 1/2):
[ 0.00%] ·· Building for virtualenv-py3.12
[ 0.00%] ·· Benchmarking virtualenv-py3.12
[ 0.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[ 6.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[ 9.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--)....
[11.32%] ··· Running (bench_backtest.ModelPrepKernels.time_indicator_values_for_dates--)......
[14.15%] ··· Running (bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame--)........
[18.87%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models_cached--)......
[21.70%] ··· Running (bench_common.IntervalCompression.time_compress_5m_large--)........
[25.00%] · For pybroker commit 58442f7f (round 1/2):
[25.00%] ·· Building for virtualenv-py3.12
[25.00%] ·· Benchmarking virtualenv-py3.12
[25.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[31.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[34.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--).....
[36.79%] ··· Running (bench_backtest.ModelTrainParallel.time_train_models_parallel--)......
[39.62%] ··· Running (bench_backtest.StoreSliceKernels.time_slice_symbol_array_store_by_dates--)........
[44.34%] ··· Running (bench_backtest.WalkforwardModelsPerSymbol.time_walkforward_models_per_symbol--).....
[46.70%] ··· Running (bench_common.IntervalCompression.time_compress_5m_large--)........
[50.00%] · For pybroker commit 58442f7f (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.12
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop         99.1±0.6ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           499±40μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                  27.3±0.5μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get            3.29±0.05μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        11.9±0.09ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           23.0±0.2ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          25.2±0.09ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            12.5±0.4μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor             34.9±1μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            22.3±0.4μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      20.2±0.1ms 
                 200      49.7±0.4ms 
                 500       109±1ms   
             =========== ============

[56.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[56.13%] ··· ======== =============
              length               
             -------- -------------
               1000     6.98±0.2μs 
              100000   1.63±0.01ms 
             ======== =============

[56.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[56.60%] ··· ======== =============
              length               
             -------- -------------
               1000    6.84±0.04μs 
              100000   1.81±0.01ms 
             ======== =============

[57.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[57.08%] ··· ======== =============
              length               
             -------- -------------
               1000    6.83±0.03μs 
              100000     1.81±0ms  
             ======== =============

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.68±0.05μs 
              100000     382±20μs  
             ======== =============

[58.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[58.02%] ··· ======== =============
              length               
             -------- -------------
               1000      16.4±1μs  
              100000   4.38±0.01ms 
             ======== =============

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== =============
              length               
             -------- -------------
               1000    4.56±0.02μs 
              100000     982±7μs   
             ======== =============

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      134±5ms  
                 200      333±10ms 
             =========== ==========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============ ============
             --                 n_indicators      
             ----------- -------------------------
              n_symbols       1            5      
             =========== ============ ============
                  50      9.80±0.2ms   20.4±0.2ms 
                 200      37.9±0.3ms   80.3±0.5ms 
                 500       97.2±2ms    203±0.6ms  
             =========== ============ ============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         5.71±0.8ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.16±0.01ms
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store        1.05±0.09ms
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         52.0±0.6μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        735±7ms  
                    True        449±20ms 
             ================= ==========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.27±0.01ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.02±0.02ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.24±0.09ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops         70.6±0.9ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.11±0.01ms   2.30±0.04ms 
                  10      2.28±0.02ms   5.42±0.05ms 
             =========== ============= =============

[64.62%] ··· ...rnels.time_slice_symbol_array_store_by_dates                 ok
[64.62%] ··· =========== =========
             --            n_days 
             ----------- ---------
              n_symbols     1260  
             =========== =========
                  10      957±1μs 
             =========== =========

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                245M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward             62.7±0.2ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         63.5±0.6ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals            200±2ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               253M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            273±2ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models            351±2ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models          345±0.8ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached          343±0.9ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            349±1ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         87.8±0.6ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            648±2ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         62.3±0.6ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ============ ============
             --                 symbols         
             --------- -------------------------
              windows       4            12     
             ========= ============ ============
                 1      44.4±0.4ms   88.7±0.2ms 
                 3      60.8±0.5ms   123±0.7ms  
                 10     82.6±0.9ms    173±6ms   
             ========= ============ ============

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large         2.55±0.3ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        5.43±0.07ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize         59.8±0.5ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.51±0.02ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         26.6±0.2ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.53±0.01ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage          253±0.3ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            257±3ms
[75.00%] · For pybroker commit eb9d3400 (round 2/2):
[75.00%] ·· Building for virtualenv-py3.12
[75.00%] ·· Benchmarking virtualenv-py3.12
[75.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop         99.7±0.4ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           488±50μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                  28.0±0.5μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             3.94±0.3μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        11.9±0.09ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           23.2±0.4ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          25.4±0.06ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown            12.5±0.1μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor             34.3±2μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            22.2±0.7μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      20.8±0.1ms 
                 200      49.5±0.7ms 
                 500       111±1ms   
             =========== ============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== =============
              length               
             -------- -------------
               1000    6.63±0.09μs 
              100000   1.62±0.01ms 
             ======== =============

[81.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[81.60%] ··· ======== =============
              length               
             -------- -------------
               1000    6.75±0.04μs 
              100000   1.82±0.01ms 
             ======== =============

[82.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[82.08%] ··· ======== =============
              length               
             -------- -------------
               1000    6.83±0.05μs 
              100000   1.82±0.01ms 
             ======== =============

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== =============
              length               
             -------- -------------
               1000    2.85±0.07μs 
              100000     349±7μs   
             ======== =============

[83.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[83.02%] ··· ======== =============
              length               
             -------- -------------
               1000    15.0±0.02μs 
              100000   4.39±0.02ms 
             ======== =============

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== =============
              length               
             -------- -------------
               1000    4.49±0.04μs 
              100000     975±6μs   
             ======== =============

[83.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[83.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      138±4ms  
                 200      325±40ms 
             =========== ==========

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============= ============
             --                 n_indicators       
             ----------- --------------------------
              n_symbols        1            5      
             =========== ============= ============
                  50      9.53±0.07ms   20.3±0.2ms 
                 200       38.0±0.9ms   81.3±0.4ms 
                 500       98.2±0.9ms    206±1ms   
             =========== ============= ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled           6.52±1ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled        1.15±0.01ms
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store        1.08±0.03ms
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         52.8±0.7μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        736±9ms  
                    True        440±20ms 
             ================= ==========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.27±0.03ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.05±0.06ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.23±0.03ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops           69.9±2ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.13±0.01ms   2.31±0.09ms 
                  10      2.30±0.02ms    5.80±0.2ms 
             =========== ============= =============

[89.62%] ··· ...rnels.time_slice_symbol_array_store_by_dates                 ok
[89.62%] ··· =========== =========
             --            n_days 
             ----------- ---------
              n_symbols     1260  
             =========== =========
                  10      966±4μs 
             =========== =========

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                245M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward               64.3±1ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward           64.1±1ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals            199±1ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               253M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            275±4ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models          352±0.5ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models            347±3ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached           353±10ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            351±3ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window         87.2±0.9ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            645±4ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward         61.1±0.8ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ============ ============
             --                 symbols         
             --------- -------------------------
              windows       4            12     
             ========= ============ ============
                 1      43.6±0.7ms   87.3±0.2ms 
                 3      61.6±0.9ms    125±1ms   
                 10     82.7±0.4ms   171±0.7ms  
             ========= ============ ============

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large         2.57±0.4ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        5.40±0.04ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         59.8±0.6ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.50±0.01ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         26.9±0.4ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.53±0.02ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage          253±0.4ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage            255±1ms
| Change   | Before [eb9d3400]    | After [58442f7f]    |   Ratio | Benchmark (Parameter)                       |
|----------|----------------------|---------------------|---------|---------------------------------------------|
| -        | 3.94±0.3μs           | 3.29±0.05μs         |    0.83 | bench_backtest.CacheL1Hit.time_cache_l1_get |

SOME BENCHMARKS HAVE CHANGED SIGNIFICANTLY.
PERFORMANCE INCREASED.

Blocks only when a benchmark of at least 0.01s regresses by 1.25x. Shorter benchmarks are reported, never blocking: on this runner, identical code has produced ratios from 0.65 to 1.29 on sub-2ms benchmarks. Override via the bench-override PR label.

@github-actions

Copy link
Copy Markdown

ASV continuous — benchmark diff (Python 3.14)

Exit code: 0 (1 = flagged regression at --factor 1.25; 2 = a benchmark raised, so nothing was compared)

Gate — blocks only at or above 0.01s, where this runner can measure reliably:

Faster (never blocks):
   0.86  bench_data.DataSourceCacheRead.time_cache_read

No benchmark at or above 10ms regressed by 1.25x or more (73 benchmarks compared).
Full benchmark output
· No executable found for python 3.11
· No executable found for python 3.13
· Creating environments
· Discovering benchmarks
·· Uninstalling from virtualenv-py3.14
·· Installing 58442f7f into virtualenv-py3.14
· Running 106 total benchmarks (2 commits * 1 environments * 53 benchmarks)
[ 0.00%] · For pybroker commit eb9d3400 (round 1/2):
[ 0.00%] ·· Building for virtualenv-py3.14
[ 0.00%] ·· Benchmarking virtualenv-py3.14
[ 0.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[ 6.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[ 9.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--)....
[11.32%] ··· Running (bench_backtest.ModelPrepKernels.time_indicator_values_for_dates--)......
[14.15%] ··· Running (bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame--).......
[18.40%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models--).....
[20.75%] ··· Running (bench_backtest.WalkforwardProperCold.time_proper_cold_walkforward--)......
[23.58%] ··· Running (bench_data.DataSourceCacheWrite.time_cache_write--)....
[25.00%] · For pybroker commit 58442f7f (round 1/2):
[25.00%] ·· Building for virtualenv-py3.14
[25.00%] ·· Benchmarking virtualenv-py3.14
[25.47%] ··· Running (bench_backtest.BacktestBarLoop.time_backtest_bar_loop--)...........
[31.13%] ··· Running (bench_backtest.IndicatorKernels.time_cross--).......
[34.43%] ··· Running (bench_backtest.IndicatorPreprocess.time_indicator_set_call--)....
[36.32%] ··· Running (bench_backtest.ModelPrepKernels.time_indicator_values_for_dates--)......
[39.15%] ··· Running (bench_backtest.StoreBuildKernels.time_symbol_array_store_from_frame--).......
[43.40%] ··· Running (bench_backtest.WalkforwardModelsCached.time_walkforward_models--).....
[45.75%] ··· Running (bench_backtest.WalkforwardProperCold.time_proper_cold_walkforward--)........
[49.53%] ··· Running (bench_slippage.WalkforwardVolatilitySlippage.time_walkforward_volatility_slippage--)..
[50.00%] · For pybroker commit 58442f7f (round 2/2):
[50.00%] ·· Benchmarking virtualenv-py3.14
[50.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop            113±1ms
[50.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           509±40μs
[51.42%] ··· bench_backtest.CacheHit.time_cache_get                  34.0±0.3μs
[51.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             3.02±0.2μs
[52.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[52.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        10.9±0.07ms
[53.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf          21.0±0.01ms
[53.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          22.9±0.05ms
[54.25%] ··· bench_backtest.EvalKernels.time_max_drawdown              12.2±1μs
[54.72%] ··· bench_backtest.EvalKernels.time_profit_factor           28.9±0.6μs
[55.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio              18.6±2μs
[55.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[55.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      21.4±0.4ms 
                 200      46.1±0.6ms 
                 500       99.1±1ms  
             =========== ============

[56.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[56.13%] ··· ======== =============
              length               
             -------- -------------
               1000    8.23±0.06μs 
              100000     676±10μs  
             ======== =============

[56.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[56.60%] ··· ======== =============
              length               
             -------- -------------
               1000    7.38±0.05μs 
              100000     1.40±0ms  
             ======== =============

[57.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[57.08%] ··· ======== =============
              length               
             -------- -------------
               1000    7.16±0.04μs 
              100000     1.43±0ms  
             ======== =============

[57.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[57.55%] ··· ======== ============
              length              
             -------- ------------
               1000    3.27±0.1μs 
              100000    114±4μs   
             ======== ============

[58.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[58.02%] ··· ======== =============
              length               
             -------- -------------
               1000    15.1±0.05μs 
              100000   3.07±0.01ms 
             ======== =============

[58.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[58.49%] ··· ======== =============
              length               
             -------- -------------
               1000    5.50±0.08μs 
              100000     677±7μs   
             ======== =============

[58.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[58.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      139±10ms 
                 200      357±40ms 
             =========== ==========

[59.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[59.43%] ··· =========== ============ ============
             --                 n_indicators      
             ----------- -------------------------
              n_symbols       1            5      
             =========== ============ ============
                  50      10.3±0.1ms   25.8±0.4ms 
                 200      40.0±0.8ms    99.8±2ms  
                 500      99.9±0.6ms    255±3ms   
             =========== ============ ============

[59.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled         5.73±0.5ms
[60.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           988±10μs
[60.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store           945±30μs
[61.32%] ··· ...lPrepKernels.time_indicator_values_for_dates         79.7±0.9μs
[61.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[61.79%] ··· ================= =========
              parallel_models           
             ----------------- ---------
                   False        837±4ms 
                    True        455±4ms 
             ================= =========

[62.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.85±0.02ms
[62.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.40±0.01ms
[63.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.55±0.05ms
[63.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops           91.8±1ms
[64.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[64.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.23±0.01ms   2.34±0.02ms 
                  10      2.22±0.02ms   5.13±0.03ms 
             =========== ============= =============

[64.62%] ··· ...rnels.time_slice_symbol_array_store_by_dates                 ok
[64.62%] ··· =========== =============
             --              n_days   
             ----------- -------------
              n_symbols       1260    
             =========== =============
                  10      1.07±0.01ms 
             =========== =============

[65.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                260M
[65.57%] ··· bench_backtest.Walkforward.time_walkforward             80.0±0.4ms
[66.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward         79.9±0.3ms
[66.51%] ··· ...kforwardIntervals.time_walkforward_intervals            243±3ms
[66.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               268M
[67.45%] ··· ...test.WalkforwardLarge.time_walkforward_large           392±20ms
[67.92%] ··· ...st.WalkforwardModels.time_walkforward_models            414±3ms
[68.40%] ··· ...kforwardModelsCached.time_walkforward_models            411±6ms
[68.87%] ··· ...dModelsCached.time_walkforward_models_cached            410±2ms
[69.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            418±1ms
[69.81%] ··· ...ardMultiWindow.time_walkforward_multi_window            103±2ms
[70.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar            757±3ms
[70.75%] ··· ...rwardProperCold.time_proper_cold_walkforward           77.6±1ms
[71.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[71.23%] ··· ========= ========== ==========
             --               symbols       
             --------- ---------------------
              windows      4          12    
             ========= ========== ==========
                 1      55.7±2ms   112±5ms  
                 3      81.2±3ms   167±8ms  
                 10     104±2ms    222±10ms 
             ========= ========== ==========

[71.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.30±0.05ms
[72.17%] ··· ...valCompression.time_compress_intervals_multi        6.53±0.06ms
[72.64%] ··· ...h_common.ResultQuantize.time_result_quantize           77.8±2ms
[73.11%] ··· bench_data.DataSourceCacheRead.time_cache_read         1.52±0.07ms
[73.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write           29.9±1ms
[74.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.76±0.01ms
[74.53%] ··· ...lippage.time_walkforward_volatility_slippage            315±4ms
[75.00%] ··· ...umeSlippage.time_walkforward_volume_slippage          316±0.5ms
[75.00%] · For pybroker commit eb9d3400 (round 2/2):
[75.00%] ·· Building for virtualenv-py3.14
[75.00%] ·· Benchmarking virtualenv-py3.14
[75.47%] ··· ...ktest.BacktestBarLoop.time_backtest_bar_loop          115±0.8ms
[75.94%] ··· bench_backtest.CacheDiskHit.time_cache_disk_get           518±20μs
[76.42%] ··· bench_backtest.CacheHit.time_cache_get                  34.0±0.3μs
[76.89%] ··· bench_backtest.CacheL1Hit.time_cache_l1_get             3.14±0.2μs
[77.36%] ··· ...st.Determinism.track_walkforward_equity_hash         2106212405
[77.83%] ··· ...cktest.EvalBootstrap.time_evaluate_bootstrap        10.9±0.04ms
[78.30%] ··· bench_backtest.EvalKernels.time_bca_boot_conf           21.2±0.4ms
[78.77%] ··· bench_backtest.EvalKernels.time_drawdown_conf          22.9±0.03ms
[79.25%] ··· bench_backtest.EvalKernels.time_max_drawdown              12.2±1μs
[79.72%] ··· bench_backtest.EvalKernels.time_profit_factor             29.8±1μs
[80.19%] ··· bench_backtest.EvalKernels.time_sharpe_ratio            18.8±0.4μs
[80.66%] ··· ...rPreprocess.time_exit_on_last_bar_preprocess                 ok
[80.66%] ··· =========== ============
              n_symbols              
             ----------- ------------
                  50      21.4±0.1ms 
                 200      46.7±0.3ms 
                 500       99.1±2ms  
             =========== ============

[81.13%] ··· bench_backtest.IndicatorKernels.time_cross                      ok
[81.13%] ··· ======== =============
              length               
             -------- -------------
               1000    8.33±0.05μs 
              100000     672±20μs  
             ======== =============

[81.60%] ··· bench_backtest.IndicatorKernels.time_highv                      ok
[81.60%] ··· ======== =============
              length               
             -------- -------------
               1000    7.42±0.08μs 
              100000   1.40±0.01ms 
             ======== =============

[82.08%] ··· bench_backtest.IndicatorKernels.time_lowv                       ok
[82.08%] ··· ======== =============
              length               
             -------- -------------
               1000    7.16±0.04μs 
              100000   1.42±0.01ms 
             ======== =============

[82.55%] ··· bench_backtest.IndicatorKernels.time_returnv                    ok
[82.55%] ··· ======== =============
              length               
             -------- -------------
               1000    3.22±0.08μs 
              100000     108±2μs   
             ======== =============

[83.02%] ··· bench_backtest.IndicatorKernels.time_stochastic                 ok
[83.02%] ··· ======== =============
              length               
             -------- -------------
               1000     15.2±0.2μs 
              100000   3.07±0.01ms 
             ======== =============

[83.49%] ··· bench_backtest.IndicatorKernels.time_sumv                       ok
[83.49%] ··· ======== =============
              length               
             -------- -------------
               1000    5.52±0.02μs 
              100000     686±4μs   
             ======== =============

[83.96%] ··· ...torParallel.time_indicator_set_call_parallel                 ok
[83.96%] ··· =========== ==========
             --          n_indicators
             ----------- ----------
              n_symbols      5     
             =========== ==========
                  50      139±7ms  
                 200      359±10ms 
             =========== ==========

[84.43%] ··· ....IndicatorPreprocess.time_indicator_set_call                 ok
[84.43%] ··· =========== ============ ============
             --                 n_indicators      
             ----------- -------------------------
              n_symbols       1            5      
             =========== ============ ============
                  50      10.0±0.1ms   26.0±0.5ms 
                 200      39.7±0.5ms    102±1ms   
                 500      101±0.9ms     256±2ms   
             =========== ============ ============

[84.91%] ··· ...st.LagPrepBottlenecks.time_apply_lags_pooled           5.42±1ms
[85.38%] ··· ...lenecks.time_build_lag_feature_matrix_pooled           999±20μs
[85.85%] ··· ...pBottlenecks.time_merge_lag_cache_from_store          965±300μs
[86.32%] ··· ...lPrepKernels.time_indicator_values_for_dates           81.0±1μs
[86.79%] ··· ...odelTrainParallel.time_train_models_parallel                 ok
[86.79%] ··· ================= ==========
              parallel_models            
             ----------------- ----------
                   False        852±4ms  
                    True        467±10ms 
             ================= ==========

[87.26%] ··· ....ModelTrainPrep.time_train_models_per_symbol        3.87±0.03ms
[87.74%] ··· ...test.ModelTrainPrep.time_train_models_pooled        3.39±0.06ms
[88.21%] ··· ...lTrainPrepLags.time_train_models_pooled_lags        4.62±0.06ms
[88.68%] ··· ...PortfolioHeldStops.time_portfolio_held_stops           94.2±2ms
[89.15%] ··· ...ldKernels.time_symbol_array_store_from_frame                 ok
[89.15%] ··· =========== ============= =============
             --                     n_days          
             ----------- ---------------------------
              n_symbols       504           1260    
             =========== ============= =============
                  4       1.25±0.01ms   2.32±0.03ms 
                  10      2.28±0.07ms   5.18±0.06ms 
             =========== ============= =============

[89.62%] ··· ...rnels.time_slice_symbol_array_store_by_dates                 ok
[89.62%] ··· =========== ==========
             --            n_days  
             ----------- ----------
              n_symbols     1260   
             =========== ==========
                  10      1.08±0ms 
             =========== ==========

[90.09%] ··· bench_backtest.Walkforward.peakmem_walkforward                260M
[90.57%] ··· bench_backtest.Walkforward.time_walkforward               84.5±2ms
[91.04%] ··· ...cktest.WalkforwardCold.time_cold_walkforward           81.4±1ms
[91.51%] ··· ...kforwardIntervals.time_walkforward_intervals            244±1ms
[91.98%] ··· ...t.WalkforwardLarge.peakmem_walkforward_large               268M
[92.45%] ··· ...test.WalkforwardLarge.time_walkforward_large            385±2ms
[92.92%] ··· ...st.WalkforwardModels.time_walkforward_models            421±3ms
[93.40%] ··· ...kforwardModelsCached.time_walkforward_models            414±1ms
[93.87%] ··· ...dModelsCached.time_walkforward_models_cached            415±2ms
[94.34%] ··· ...PerSymbol.time_walkforward_models_per_symbol            420±5ms
[94.81%] ··· ...ardMultiWindow.time_walkforward_multi_window            105±2ms
[95.28%] ··· ...t.WalkforwardPerBar.time_walkforward_per_bar           773±20ms
[95.75%] ··· ...rwardProperCold.time_proper_cold_walkforward           81.1±2ms
[96.23%] ··· ...st.WalkforwardScaled.time_walkforward_scaled                 ok
[96.23%] ··· ========= ========== ==========
             --               symbols       
             --------- ---------------------
              windows      4          12    
             ========= ========== ==========
                 1      59.2±1ms   112±2ms  
                 3      81.9±3ms   167±7ms  
                 10     111±2ms    216±10ms 
             ========= ========== ==========

[96.70%] ··· ...n.IntervalCompression.time_compress_5m_large        2.38±0.04ms
[97.17%] ··· ...valCompression.time_compress_intervals_multi        6.51±0.03ms
[97.64%] ··· ...h_common.ResultQuantize.time_result_quantize         80.2±0.5ms
[98.11%] ··· bench_data.DataSourceCacheRead.time_cache_read          1.77±0.2ms
[98.58%] ··· ...h_data.DataSourceCacheWrite.time_cache_write         29.6±0.3ms
[99.06%] ··· ...ta.YFinanceMultiSymbol.time_yfinance_reshape        1.78±0.03ms
[99.53%] ··· ...lippage.time_walkforward_volatility_slippage            325±2ms
[100.00%] ··· ...umeSlippage.time_walkforward_volume_slippage          321±0.7ms

BENCHMARKS NOT SIGNIFICANTLY CHANGED.

Blocks only when a benchmark of at least 0.01s regresses by 1.25x. Shorter benchmarks are reported, never blocking: on this runner, identical code has produced ratios from 0.65 to 1.29 on sub-2ms benchmarks. Override via the bench-override PR label.

@dependabot @github

dependabot Bot commented on behalf of github Oct 5, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #337.

@dependabot dependabot Bot closed this Oct 5, 2026
@dependabot
dependabot Bot deleted the dependabot/pip/dev/ruff-gte-0.16.8 branch October 5, 2026 16:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants