pineforge-codegen 0.7.4__tar.gz → 0.7.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/.github/workflows/release.yml +36 -5
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/PKG-INFO +1 -1
- pineforge_codegen-0.7.6/VERSION +1 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/codegen/emit_top.py +21 -11
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/golden/matrix_eigen_pca.cpp +2 -2
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_codegen_new.py +34 -0
- pineforge_codegen-0.7.4/VERSION +0 -1
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/.github/dependabot.yml +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/.github/workflows/gate.yml +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/.github/workflows/publish-pyodide.yml +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/.github/workflows/test.yml +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/.gitignore +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/CLAUDE.md +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/LEGAL.md +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/LICENSE +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/PYODIDE_TARGET +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/README.md +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/docs/codegen-coverage-gaps.md +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/gate/compare.mjs +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/gate/glue.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/gate/oracle.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/gate/run-gate.mjs +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/gate/selftest.mjs +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/npm/README.md +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/npm/index.mjs +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/npm/package.json +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/package-lock.json +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/package.json +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/__init__.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/analyzer/__init__.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/analyzer/base.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/analyzer/call_handlers.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/analyzer/contracts.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/analyzer/diagnostics.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/analyzer/tables.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/analyzer/types.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/ast_nodes.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/codegen/__init__.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/codegen/base.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/codegen/helpers.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/codegen/helpers_syminfo.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/codegen/input.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/codegen/security.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/codegen/ta.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/codegen/tables.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/codegen/types.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/codegen/visit_call.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/codegen/visit_expr.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/codegen/visit_stmt.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/errors.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/lexer.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/parser.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/pragmas.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/signatures.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/support_checker.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/symbols.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/tokens.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/tv_input_choices.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pyproject.toml +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/scripts/build-npm-package.mjs +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/scripts/dump-tables.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/scripts/worker-template.mjs +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/__init__.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/_compile.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/chart_bg_color.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/const_ns_plot_style_free.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/const_ns_shape_free.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/divergent_last_bar_index.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/divergent_time_close.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/export_func.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/footprint_new.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/hard_reject_dividends.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/matrix_unknown_elem.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/multi_error_one_line.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/sec_tf_invalid.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/unknown_color.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/unknown_math.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/unknown_str.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/unknown_strategy_fn.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/unknown_syminfo.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/unknown_ta.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/AAPL__session-ismarket-nyse-rth-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/AAPL__time-tradingday-daily-reset-counter-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/QQQ__session-ispremarket-nasdaq-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/SPY__session-firstbar-vwap-anchor-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/SPY__session-lastbar-flatten-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/crypto-htf__mtf-htf-monthly-ema-cross-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/crypto-leverage__leverage-margin-call-perp-5x-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/forex__symbol-fx-5dp-eurusd-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/futures__symbol-futures-pointvalue-es-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/tutorial__macd__strategy.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/tutorial__mtf__strategy_htf.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/tutorial__mtf__strategy_ltf.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/us-equity__symbol-equity-rth-gaps-aapl-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/us-equity__us-equity-exchange-tz-intraday-cap-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__analyzer-parity-choch-bos-isolator-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__analyzer-parity-edge-margin-50-pct-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__analyzer-parity-percent-of-equity-sizing-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__analyzer-parity-small-equity-fraction-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__analyzer-parity-stop-limit-timing-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__analyzer-self-test-multi-mode-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__anomaly-equity-mirror-strategy-equity-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__barstate-isconfirmed-magnifier-off-01b.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__barstate-isconfirmed-magnifier-on-01a.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__bracket-atr-trail-series-int-points-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__bracket-atr-trailing-stop-state-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__bracket-entry-exit-same-pass-attach-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__bracket-exit-stop-limit-trail-same-bar-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__bracket-exit-three-way-set-once-entry-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__bracket-exit-tp-sl-fixed-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__bracket-narrow-stop-limit-with-trail8-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__bracket-partial-exit-qty-percent-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__bracket-same-id-exit-replace-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__bracket-tp-sl-oca-reduce-isolate-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__bracket-trail-points-no-offset-explicit-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__bracket-trail-points-with-offset-only-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__bracket-trailing-activation-offset-path-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__cap-max-intraday-filled-orders-isolate-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__cap-risk-gates-allow-max-intraday-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-4emarsi-integration-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-4emarsi-quad-ema-stack-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-4emarsi-rsi-pullback-latch-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-4emarsi-session-window-nbar-exit-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-boscurv-integration-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-boscurv-linreg-slope-channel-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-boscurv-pivot-bos-trigger-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-bracket-cap-range-pending-stop-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-ies-adx-regime-classify-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-ies-bb-kc-squeeze-release-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-ies-cooldown-daily-cap-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-ies-equity-feedback-sizing-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-ies-integration-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-ies-pivot-liquidity-sweep-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-ies-pressure-gauge-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-ies-rsi-macd-momentum-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-ies-three-ema-bias-score-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-kanuck-calc-on-every-tick-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-kanuck-integration-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-kanuck-kama-state-recurrence-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-kanuck-max-bars-back-500-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-kkb-ema-atr-breakout-band-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-kkb-integration-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-kkb-kalman-filter-1d-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-kkb-margin-100-pct-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-liqsweep-integration-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-liqsweep-pivot-hh-ll-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-liqsweep-wait-one-continuation-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-liqsweep-wick-pierce-close-back-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-marketshift-integration-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-marketshift-pivot-state-machine-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-marketshift-rolling-highest-lowest-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-marketshift-state-edge-detector-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-scalping-fast-ma-cross-trigger-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-scalping-integration-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-scalping-tight-tp-sl-points-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-trendmaster-integration-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-trendmaster-line-new-projection-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-trendmaster-pivot-anchored-bracket-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-trendmaster-three-tier-ema-state-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-trendmaster-trend-momentum-structure-gate-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-vcp-cumulative-volume-delta-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-vcp-fvg-active-zones-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-vcp-integration-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-vcp-manual-adx-regime-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-vcp-pivot-strength-5-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-vcp-rsi-smooth-divergence-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-vcp-session-tz-newyork-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-vcp-vol-zscore-anomaly-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-wunderscalper-alert-templates-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-wunderscalper-explicit-reverse-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__composite-wunderscalper-integration-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__input-source-runtime-override-high-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__input-source-subscript-hl2-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ltf-bool-array-bull-majority-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ltf-numeric-float-ratio15-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__magnifier-tick-dist-endpoints-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__magnifier-tick-dist-endpoints-rsi-cross-08a.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__magnifier-tick-dist-volume-weighted-on-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__matrix-bool-mask-explicit-utc-tz-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__matrix-bool-mask-no-transpose-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__matrix-bool-mask-transpose-roundtrip-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__matrix-bool-regime-mask-24x7-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__matrix-covariance-eigen-pca-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__matrix-eigen-rank-deficient-cov-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__max-bars-back-function-call-deep-history-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__mtf-daily-array-median-percentrank-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__mtf-daily-ema26-warmup-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__mtf-daily-prev-high-break-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__mtf-dual-tf-60-240-rising-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__mtf-htf-60-close-change-baseline-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__mtf-htf-60-close-roll-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__mtf-htf-60-gaps-on-roll-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__mtf-htf-60-rsi14-inside-security-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__mtf-htf-60-sma20-inside-security-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__mtf-htf-60-volume-spike-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__mtf-htf-confluence-manual-trail-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__mtf-htf-confluence-static-bracket-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__mtf-htf-weekly-sma-cross-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__mtf-roll-state-60-240-d-minimal-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__mtf-triple-tf-close-confluence-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__mtf-triple-tf-macd-hist-confluence-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__na-deep-history-int-na-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__na-nz-fixnan-history-chain-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__oca-exit-bracket-internal-cancel-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__oca-multi-bracket-isolation-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__oca-raw-strategy-order-reduce-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-close-all-cancel-all-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-close-immediate-vs-next-bar-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-cross-entry-cancel-same-pass-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-cross-entry-close-same-pass-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-cross-exit-close-same-pass-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-deferred-flip-guaranteed-gap-stops-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-deferred-flip-pooc-cross-bar-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-dual-four-bar-stop-no-close-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-dual-side-same-id-stop-no-cancel-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-dual-stop-both-touch-priority-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-dual-stop-cancel-rotation-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-dual-stop-far-only-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-dual-stop-near-only-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-dual-stop-open-high-first-path-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-dual-stop-open-low-first-path-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-dual-stop-open-tie-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-dual-stop-source-order-long-first-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-dual-stop-source-order-short-first-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-entry-implicit-reversal-exit-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-flip-stop-no-paired-close-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-market-close-fill-basis-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-one-side-four-bar-far-opposite-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-opposite-entry-close-same-pass-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-percent-equity-cash-commission-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-process-on-close-false-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-process-on-close-true-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-range-expansion-pending-stop-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-same-id-entry-close-same-bar-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-same-id-market-entry-repeat-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-same-id-stop-after-flat-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-same-id-stop-cross-before-modify-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-same-id-stop-minute-zero-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-same-id-stop-modification-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-same-id-stop-raise-only-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-same-id-stop-window-four-bars-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-stale-stop-after-close-no-cancel-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-stop-cancel-no-regime-close-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-stop-entry-cancel-opposite-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-stop-entry-reversal-grouping-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__order-stop-entry-touch-boundary-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__pyramid-cash-fractional-commission-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__pyramid-close-id-grouping-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__pyramid-deferred-flip-close-all-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__pyramid-flip-stop-pyramiding-2-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__recompute-alma-sar-corr-magnifier-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__recompute-mtf-rsi-macd-bb-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__risk-max-contracts-held-gate-pyramid-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__session-hour-minute-pulse-filter-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__session-ny-spring-forward-dst-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__stats-eventrades-zero-pnl-count-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-accdist-ema-cross-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-bb-kc-squeeze-breakout-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-bb-rsi-mean-reversion-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-cci-threshold-cross-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-chandelier-exit-direction-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-closedtrades-risk-introspection-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-cmo-9-zero-cross-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-cog-10-signal-cross-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-dmi-adx-di-cross-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-donchian-channel-breakout-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-dual-ma-switch-dispatch-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-dual-thrust-open-anchored-range-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-elder-ray-bull-bear-power-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-ema-ribbon-stack-transition-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-engulfing-candle-pattern-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-highestbars-lowestbars-breakout-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-hma-55-close-cross-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-hma-fast-slow-cross-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-inside-bar-engulfing-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-kama-style-efficiency-ratio-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-keltner-channel-break-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-linreg-stdev-channel-revert-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-macd-12-26-9-line-signal-cross-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-macd-histogram-reversal-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-macd-line-gt-signal-continuous-state-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-map-regime-threshold-lookup-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-median-vs-ema-cross-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-mfi-14-bands-20-80-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-momentum-roc-zero-cross-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-multi-indicator-score-composite-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-nvi-pvi-cross-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-obv-ema-cross-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-percentrank-mean-reversion-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-pivot-array-unshift-pop-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-pivot-atr-stop-target-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-pivot-confirmed-break-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-pivot-point-levels-break-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-pvt-ema-cross-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-range-filter-var-band-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-rci-14-zero-cross-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-rsi-bb-self-bands-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-rsi-ema-signal-cross-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-rsi-macd-and-continuous-state-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-rsi14-bands-30-70-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-rsi14-cross-50-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-rsi14-gt-50-continuous-state-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-rsi14-gt60-lt45-no-matrix-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-sar-flip-entry-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-sma-152-close-cross-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-sma-dual-cross-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-stdev-sma-expansion-break-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-stoch-slow-k-d-cross-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-stochastic-rsi-cross-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-str-match-regex-filter-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-supertrend-adx-filter-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-supertrend-direction-flip-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-triple-sma-stack-latch-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-tsi-25-13-signal-cross-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-volume-spike-atr-breakout-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-vwma-vs-sma-divergence-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__ta-wpr-14-bands-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__timeframe-main-period-self-adaptive-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__udt-method-calls-sibling-cumulative-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__udt-method-default-param-kwargs-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__udt-method-drives-strategy-entry-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__udt-method-extra-primitive-args-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__udt-method-feeds-strategy-exit-prices-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__udt-method-in-for-loop-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__udt-method-in-if-else-branch-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__udt-method-in-switch-arms-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__udt-method-in-while-loop-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__udt-method-mutating-self-ref-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__udt-method-on-array-element-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__udt-method-reads-strategy-state-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__udt-method-receives-ta-series-param-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__udt-method-scalar-return-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__udt-method-tuple-return-destructure-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__udt-method-udt-return-from-func-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__udt-method-uses-history-globals-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__udt-method-uses-math-funcs-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__udt-method-uses-na-nz-fixnan-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__udt-method-var-instance-streak-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__udt-method-windowed-method-chain-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__udt-regime-stack-stress-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__vwap-bands-breakout-1sigma-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/ok/validation__vwap-bands-mean-reversion-2sigma-01.pine +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_analyzer.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_analyzer_matrix_inference.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_analyzer_ta_return_types.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_codegen_audit_fixes.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_codegen_determinism.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_codegen_fallthrough_guards.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_codegen_golden.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_codegen_input_getters.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_codegen_matrix_typed.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_compile_corpus.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_compile_smoke.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_errors.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_extract_inputs.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_glue_smoke.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_import_all.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_input_time_int64.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_int64_time_storage.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_lexer.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_official_surface.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_parser.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_security_tf_literal.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_signatures.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_support_checker.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_support_checker_chart_visible_bar_time.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_support_checker_color_cast.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_support_checker_const_namespaces.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_support_checker_dividends_earnings.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_support_checker_footprint.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_support_checker_input_color.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_support_checker_input_source.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_support_checker_matrix.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_support_checker_security_adjustment.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_support_checker_syminfo_gap_fields.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_support_checker_timeframe_from_seconds.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_support_checker_varip.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_support_checker_volume_row.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_symbols.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_ta_official_surface.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_transpile_division.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_transpile_enum_order.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_transpile_pf_trace.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_transpile_tr_handle_na.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_transpiler_matrix_kwargs.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_typespec_matrix.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_udt_drawing_field_cleanup.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_unsupported_reporting.py +0 -0
- {pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/test_vwap_tuple_unpack.py +0 -0
|
@@ -40,12 +40,24 @@ jobs:
|
|
|
40
40
|
OVERRIDE: ${{ inputs.override }}
|
|
41
41
|
PYTHONHASHSEED: "0" # deterministic gate runtime (match gate.yml)
|
|
42
42
|
steps:
|
|
43
|
+
# Org GitHub App token (no PAT — never expires). Authorizes BOTH the
|
|
44
|
+
# release commit/tag push to protected main (the App is a bypass actor on
|
|
45
|
+
# the org ruleset) AND the downstream hub dispatch. Scoped to this repo +
|
|
46
|
+
# the hub. Minted first so checkout can push with it.
|
|
47
|
+
- name: Mint org App token
|
|
48
|
+
id: app
|
|
49
|
+
uses: actions/create-github-app-token@v1
|
|
50
|
+
with:
|
|
51
|
+
app-id: ${{ secrets.PINEFORGE_APP_ID }}
|
|
52
|
+
private-key: ${{ secrets.PINEFORGE_APP_PRIVATE_KEY }}
|
|
53
|
+
owner: pineforge-4pass
|
|
54
|
+
repositories: pineforge-codegen-oss,pineforge-release
|
|
55
|
+
|
|
43
56
|
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
44
57
|
with:
|
|
45
58
|
fetch-depth: 0
|
|
46
|
-
#
|
|
47
|
-
|
|
48
|
-
token: ${{ secrets.RELEASE_PAT || secrets.GITHUB_TOKEN }}
|
|
59
|
+
# App token bypasses the main ruleset for the release commit/tag push.
|
|
60
|
+
token: ${{ steps.app.outputs.token }}
|
|
49
61
|
|
|
50
62
|
- name: Compute new version
|
|
51
63
|
id: ver
|
|
@@ -132,8 +144,8 @@ jobs:
|
|
|
132
144
|
- name: Create GitHub Release
|
|
133
145
|
if: ${{ !inputs.dry_run }}
|
|
134
146
|
env:
|
|
135
|
-
# Org disables write for the default Actions token; use the
|
|
136
|
-
GH_TOKEN: ${{
|
|
147
|
+
# Org disables write for the default Actions token; use the App token.
|
|
148
|
+
GH_TOKEN: ${{ steps.app.outputs.token }}
|
|
137
149
|
NEW_VERSION: ${{ steps.ver.outputs.new }}
|
|
138
150
|
run: |
|
|
139
151
|
gh release create "v${NEW_VERSION}" \
|
|
@@ -141,3 +153,22 @@ jobs:
|
|
|
141
153
|
--generate-notes \
|
|
142
154
|
--notes "Install: \`pip install pineforge-codegen==${NEW_VERSION}\`" \
|
|
143
155
|
dist/*
|
|
156
|
+
|
|
157
|
+
# Notify the pineforge-release hub: it bumps its CODEGEN_VERSION pin,
|
|
158
|
+
# rebuilds the combined image, and fans out to the MCPs. FAIL LOUD (no
|
|
159
|
+
# continue-on-error) — a dropped notify means downstream never picks up the
|
|
160
|
+
# new codegen. Uses the App token minted above (no PAT). Runs AFTER the
|
|
161
|
+
# PyPI publish so the version is installable.
|
|
162
|
+
- name: Dispatch codegen-release -> pineforge-release
|
|
163
|
+
if: ${{ !inputs.dry_run }}
|
|
164
|
+
env:
|
|
165
|
+
GH_TOKEN: ${{ steps.app.outputs.token }}
|
|
166
|
+
NEW_VERSION: ${{ steps.ver.outputs.new }}
|
|
167
|
+
RUN_ID: ${{ github.run_id }}
|
|
168
|
+
run: |
|
|
169
|
+
set -euo pipefail
|
|
170
|
+
gh api repos/pineforge-4pass/pineforge-release/dispatches \
|
|
171
|
+
-f event_type=codegen-release \
|
|
172
|
+
-F "client_payload[version]=${NEW_VERSION}" \
|
|
173
|
+
-F "client_payload[run_id]=${RUN_ID}"
|
|
174
|
+
echo "dispatched codegen-release -> pineforge-release (${NEW_VERSION})"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pineforge-codegen
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.6
|
|
4
4
|
Summary: PineScript v6 to C++ transpiler that targets the pineforge-engine runtime.
|
|
5
5
|
Project-URL: Homepage, https://github.com/pineforge-4pass/pineforge-codegen-oss
|
|
6
6
|
Project-URL: Issues, https://github.com/pineforge-4pass/pineforge-codegen-oss/issues
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.7.6
|
|
@@ -611,17 +611,27 @@ class TopLevelEmitter:
|
|
|
611
611
|
lines.append(" static_cast<MagnifierDistribution>(magnifier_dist));")
|
|
612
612
|
else:
|
|
613
613
|
# The magnifier-aware run() overload handles ratio=1 (no
|
|
614
|
-
# aggregation)
|
|
615
|
-
#
|
|
616
|
-
#
|
|
617
|
-
#
|
|
618
|
-
#
|
|
619
|
-
#
|
|
620
|
-
#
|
|
621
|
-
#
|
|
622
|
-
#
|
|
614
|
+
# aggregation), empty itf (auto-detect from bar timestamps),
|
|
615
|
+
# and empty stf (default-to-input) entirely on its own, so we
|
|
616
|
+
# route through it whenever ANY TF/magnifier knob is set. We
|
|
617
|
+
# only fall back to the simple ``run(bars, n)`` path when the
|
|
618
|
+
# caller passed NO magnifier AND NO timeframe at all.
|
|
619
|
+
#
|
|
620
|
+
# The previous guard ``(!itf.empty() && !stf.empty() && itf != stf)``
|
|
621
|
+
# required BOTH timeframes to be present before aggregating.
|
|
622
|
+
# The cloud caller passes ``input_tf=""`` (auto-detect) with a
|
|
623
|
+
# concrete ``script_tf="240"``; that made the guard false and
|
|
624
|
+
# the chosen ``script_tf`` was silently ignored — the strategy
|
|
625
|
+
# ran on raw 1m bars with no aggregation. It also dropped the
|
|
626
|
+
# bar_magnifier flag whenever the host passed empty TFs,
|
|
627
|
+
# producing 0.21% exit-price drift on the magnifier probes.
|
|
628
|
+
#
|
|
629
|
+
# Over-approximating to ``!itf.empty() || !stf.empty()`` is
|
|
630
|
+
# always correct: the TF-aware overload is a no-op when the
|
|
631
|
+
# ratio resolves to 1, so the only thing lost in that case is
|
|
632
|
+
# the precalc optimization — never correctness.
|
|
623
633
|
lines.append(" bool needs_full_run = (bar_magnifier != 0)")
|
|
624
|
-
lines.append(" ||
|
|
634
|
+
lines.append(" || !itf.empty() || !stf.empty();")
|
|
625
635
|
lines.append(" if (!needs_full_run) {")
|
|
626
636
|
lines.append(" strat->run(bars, n);")
|
|
627
637
|
lines.append(" } else {")
|
|
@@ -865,7 +875,7 @@ class TopLevelEmitter:
|
|
|
865
875
|
lines.append(" bool bar_magnifier = false,")
|
|
866
876
|
lines.append(" int magnifier_samples = 4,")
|
|
867
877
|
lines.append(" MagnifierDistribution magnifier_dist = MagnifierDistribution::ENDPOINTS) {")
|
|
868
|
-
lines.append(" bool needs_dynamic = bar_magnifier ||
|
|
878
|
+
lines.append(" bool needs_dynamic = bar_magnifier || !input_tf.empty() || !script_tf.empty();")
|
|
869
879
|
lines.append(" if (needs_dynamic) {")
|
|
870
880
|
lines.append(" _use_precalc = false;")
|
|
871
881
|
lines.append(" } else {")
|
|
@@ -233,7 +233,7 @@ public:
|
|
|
233
233
|
bool bar_magnifier = false,
|
|
234
234
|
int magnifier_samples = 4,
|
|
235
235
|
MagnifierDistribution magnifier_dist = MagnifierDistribution::ENDPOINTS) {
|
|
236
|
-
bool needs_dynamic = bar_magnifier ||
|
|
236
|
+
bool needs_dynamic = bar_magnifier || !input_tf.empty() || !script_tf.empty();
|
|
237
237
|
if (needs_dynamic) {
|
|
238
238
|
_use_precalc = false;
|
|
239
239
|
} else {
|
|
@@ -262,7 +262,7 @@ extern "C" {
|
|
|
262
262
|
std::string itf = input_tf ? input_tf : "";
|
|
263
263
|
std::string stf = script_tf ? script_tf : "";
|
|
264
264
|
bool needs_full_run = (bar_magnifier != 0)
|
|
265
|
-
||
|
|
265
|
+
|| !itf.empty() || !stf.empty();
|
|
266
266
|
if (!needs_full_run) {
|
|
267
267
|
strat->run(bars, n);
|
|
268
268
|
} else {
|
|
@@ -43,6 +43,40 @@ strategy("Test")
|
|
|
43
43
|
assert "run_backtest" in cpp # backward compat
|
|
44
44
|
|
|
45
45
|
|
|
46
|
+
def test_run_backtest_full_routes_to_tf_aware_run_when_only_script_tf_set():
|
|
47
|
+
"""Regression: a chosen script_tf must not be silently ignored.
|
|
48
|
+
|
|
49
|
+
The cloud caller passes ``input_tf=""`` (auto-detect) with a concrete
|
|
50
|
+
``script_tf`` (e.g. "240"). The old ``run_backtest_full`` guard required
|
|
51
|
+
BOTH timeframes present (``!itf.empty() && !stf.empty() && itf != stf``),
|
|
52
|
+
so an empty input_tf made ``needs_full_run`` false and the strategy ran
|
|
53
|
+
on raw 1m bars — the chosen script_tf was dropped and no aggregation
|
|
54
|
+
happened. The fix over-approximates: route through the TF-aware overload
|
|
55
|
+
whenever ANY TF/magnifier knob is set.
|
|
56
|
+
|
|
57
|
+
This pins the emitted guard so the regression cannot silently return.
|
|
58
|
+
``run_backtest_full`` is emitted for every strategy (no security calls
|
|
59
|
+
needed), so a bare strategy exercises the shim guard. The precalc-gating
|
|
60
|
+
``run(...)`` overload is only emitted when there is a static TA call
|
|
61
|
+
site (``ta.sma`` here), so the body uses one to cover both guards.
|
|
62
|
+
"""
|
|
63
|
+
cpp = _generate('//@version=6\nstrategy("T")\nx = ta.sma(close, 14)\nplot(x)\n')
|
|
64
|
+
|
|
65
|
+
# The C ABI shim guard must fire on a non-empty script_tf alone.
|
|
66
|
+
assert "bool needs_full_run = (bar_magnifier != 0)" in cpp
|
|
67
|
+
assert "|| !itf.empty() || !stf.empty();" in cpp
|
|
68
|
+
# The old AND-of-both-TFs guard must be gone.
|
|
69
|
+
assert "!itf.empty() && !stf.empty() && itf != stf" not in cpp
|
|
70
|
+
|
|
71
|
+
# The run(...) overload that gates precalc must also route dynamically
|
|
72
|
+
# whenever either TF is set (not only when both differ).
|
|
73
|
+
assert (
|
|
74
|
+
"bool needs_dynamic = bar_magnifier || !input_tf.empty() || !script_tf.empty();"
|
|
75
|
+
in cpp
|
|
76
|
+
)
|
|
77
|
+
assert "!input_tf.empty() && !script_tf.empty() && input_tf != script_tf" not in cpp
|
|
78
|
+
|
|
79
|
+
|
|
46
80
|
# === Task 9: Basic structure and translations ===
|
|
47
81
|
|
|
48
82
|
|
pineforge_codegen-0.7.4/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.7.4
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/analyzer/call_handlers.py
RENAMED
|
File without changes
|
|
File without changes
|
{pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/analyzer/diagnostics.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/pineforge_codegen/codegen/helpers_syminfo.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/chart_bg_color.pine
RENAMED
|
File without changes
|
|
File without changes
|
{pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/const_ns_shape_free.pine
RENAMED
|
File without changes
|
|
File without changes
|
{pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/divergent_time_close.pine
RENAMED
|
File without changes
|
|
File without changes
|
{pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/footprint_new.pine
RENAMED
|
File without changes
|
{pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/hard_reject_dividends.pine
RENAMED
|
File without changes
|
{pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/matrix_unknown_elem.pine
RENAMED
|
File without changes
|
{pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/multi_error_one_line.pine
RENAMED
|
File without changes
|
{pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/sec_tf_invalid.pine
RENAMED
|
File without changes
|
{pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/unknown_color.pine
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/unknown_strategy_fn.pine
RENAMED
|
File without changes
|
{pineforge_codegen-0.7.4 → pineforge_codegen-0.7.6}/tests/gate-corpus/err/unknown_syminfo.pine
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|