rust-pyfunc 0.78.0__tar.gz → 0.81.0__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.
Files changed (234) hide show
  1. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/.gitignore +1 -0
  2. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/Cargo.lock +35 -1
  3. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/Cargo.toml +9 -2
  4. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/PKG-INFO +1 -1
  5. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/alter.sh +5 -0
  6. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/core_functions.pyi +101 -0
  7. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/backup_column_cache.rs +416 -50
  8. rust_pyfunc-0.81.0/src/bin/worker_pipeline.rs +104 -0
  9. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/factor_neutralization_io_optimized.rs +37 -25
  10. rust_pyfunc-0.81.0/src/factor_pipeline.rs +1201 -0
  11. rust_pyfunc-0.81.0/src/fast_csv_reader.rs +882 -0
  12. rust_pyfunc-0.81.0/src/features.rs +910 -0
  13. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/lib.rs +39 -21
  14. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/lz_complexity.rs +2 -2
  15. rust_pyfunc-0.81.0/src/observable_order_metrics.rs +1253 -0
  16. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/order_pair_metrics.rs +131 -34
  17. rust_pyfunc-0.81.0/src/order_pair_metrics_pipeline.rs +1968 -0
  18. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/statistics/mod.rs +1 -1
  19. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/tail_v4_pipeline.rs +4 -3
  20. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/time_series/trend_mod.rs +1 -1
  21. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/.factory/settings.json +0 -0
  22. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/.github/workflows/CI.yml +0 -0
  23. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/.github/workflows/deploy.yml +0 -0
  24. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/FACTOR_NEUTRALIZATION_REQUIREMENTS.md +0 -0
  25. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/README.md +0 -0
  26. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/agents/skills/agent-trading-builder/SKILL.md +0 -0
  27. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/PriceTree.html +0 -0
  28. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/PriceTreeViz.html +0 -0
  29. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/RollingFutureAccessor.html +0 -0
  30. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/TRADE_PEAK_ANALYSIS_README.md +0 -0
  31. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/brachistochrone_curve.html +0 -0
  32. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/calculate_shannon_entropy_change.html +0 -0
  33. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/calculate_shannon_entropy_change_at_low.html +0 -0
  34. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/compute_max_eigenvalue.html +0 -0
  35. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/dct_basis_functions.html +0 -0
  36. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/dct_path_patterns.html +0 -0
  37. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/dct_reconstruction.html +0 -0
  38. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/dct_visualization.py +0 -0
  39. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/dtw_distance.html +0 -0
  40. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/find_follow_volume_sum_same_price.html +0 -0
  41. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/find_follow_volume_sum_same_price_and_flag.html +0 -0
  42. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/find_half_energy_time.html +0 -0
  43. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/find_local_peaks_within_window.html +0 -0
  44. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/find_max_range_product.html +0 -0
  45. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/identify_segments.html +0 -0
  46. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/index.html +0 -0
  47. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/jaccard_similarity.html +0 -0
  48. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/mark_follow_groups.html +0 -0
  49. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/mark_follow_groups_with_flag.html +0 -0
  50. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/max_range_loop.html +0 -0
  51. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/min_range_loop.html +0 -0
  52. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/min_word_edit_distance.html +0 -0
  53. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/ols.html +0 -0
  54. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/ols_predict.html +0 -0
  55. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/ols_residuals.html +0 -0
  56. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/parallel_computing_system.md +0 -0
  57. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/rolling_cv.html +0 -0
  58. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/rolling_qcv.html +0 -0
  59. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/rolling_volatility.html +0 -0
  60. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/rolling_window_stat.html +0 -0
  61. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/search_data.json +0 -0
  62. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/static/search.js +0 -0
  63. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/static/style.css +0 -0
  64. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/sum_as_string.html +0 -0
  65. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/transfer_entropy.html +0 -0
  66. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/trend.html +0 -0
  67. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/trend_fast.html +0 -0
  68. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/vectorize_sentences.html +0 -0
  69. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs/vectorize_sentences_list.html +0 -0
  70. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs//344/275/277/347/224/250/350/257/264/346/230/216.md" +0 -0
  71. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs//345/256/214/346/210/220/346/200/273/347/273/223.md" +0 -0
  72. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/docs_generator.py +0 -0
  73. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/ds_plan_true.md +0 -0
  74. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/freeze_version.sh +0 -0
  75. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/hmm_visualizer.py +0 -0
  76. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/pyproject.toml +0 -0
  77. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/__init__.py +0 -0
  78. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/__init__.pyi +0 -0
  79. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/abm_analysis.py +0 -0
  80. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/agent_simulator.pyi +0 -0
  81. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/agent_trading_daily.py +0 -0
  82. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/agent_trading_daily.pyi +0 -0
  83. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/copula.pyi +0 -0
  84. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/factor_task.py +0 -0
  85. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/factor_taskd.py +0 -0
  86. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/minute_data_reader.py +0 -0
  87. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/pandas_correlation.py +0 -0
  88. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/pandas_correlation.pyi +0 -0
  89. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/pandas_corrwith.py +0 -0
  90. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/pandas_extensions.pyi +0 -0
  91. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/pandas_merge.py +0 -0
  92. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/pandas_rank.py +0 -0
  93. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/parallel_computing.pyi +0 -0
  94. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/rolling_future.py +0 -0
  95. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/rolling_past.py +0 -0
  96. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/statistical_analysis.pyi +0 -0
  97. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/text_analysis.pyi +0 -0
  98. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/theme_cluster_factors.pyi +0 -0
  99. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/theme_feature_expansion.pyi +0 -0
  100. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/theme_feature_expansion_data.py +0 -0
  101. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/theme_feature_expansion_data.pyi +0 -0
  102. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/time_series.pyi +0 -0
  103. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/trading_analysis.pyi +0 -0
  104. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/trading_data_utils.py +0 -0
  105. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/trading_data_utils.pyi +0 -0
  106. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/trading_day.py +0 -0
  107. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/tree_structures.pyi +0 -0
  108. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/treevisual.py +0 -0
  109. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/web_manager.py +0 -0
  110. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/python/rust_pyfunc/web_manager.pyi +0 -0
  111. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/rust-toolchain.toml +0 -0
  112. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/abnormal_asks_analyzer.rs +0 -0
  113. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/agent_simulator/acceleration_follow_agent.rs +0 -0
  114. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/agent_simulator/bottom_fishing_agent.rs +0 -0
  115. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/agent_simulator/buy_ratio_agent.rs +0 -0
  116. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/agent_simulator/exhaustion_reversal_agent.rs +0 -0
  117. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/agent_simulator/follow_flow_agent.rs +0 -0
  118. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/agent_simulator/mod.rs +0 -0
  119. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/agent_simulator/momentum_agent.rs +0 -0
  120. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/agent_simulator/py_bindings.rs +0 -0
  121. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/agent_simulator/simulator.rs +0 -0
  122. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/agent_simulator/trait_def.rs +0 -0
  123. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/agent_simulator/types.rs +0 -0
  124. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/agent_simulator/utils.rs +0 -0
  125. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/agent_trading_features/core.rs +0 -0
  126. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/agent_trading_features/metrics.rs +0 -0
  127. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/agent_trading_features/mod.rs +0 -0
  128. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/agent_trading_features/py_bindings.rs +0 -0
  129. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/agent_trading_features/types.rs +0 -0
  130. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/agent_validation/factors_extra.rs +0 -0
  131. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/agent_validation/mod.rs +0 -0
  132. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/agent_validation/py_bindings.rs +0 -0
  133. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/allo_microstructure.rs +0 -0
  134. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/allo_microstructure_v2.rs +0 -0
  135. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/allo_microstructure_v3.rs +0 -0
  136. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/backup_reader.rs +0 -0
  137. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/backup_writer.rs +0 -0
  138. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/column_correlation.rs +0 -0
  139. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/copula.rs +0 -0
  140. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/corr_diff_features.rs +0 -0
  141. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/cross_stock_regression.rs +0 -0
  142. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/cross_stock_regression_fast.rs +0 -0
  143. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/cross_stock_regression_peak.rs +0 -0
  144. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/dct_transform.rs +0 -0
  145. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/difference_matrix.rs +0 -0
  146. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/effective_memory_length.rs +0 -0
  147. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/entropy_analysis.rs +0 -0
  148. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/error/mod.rs +0 -0
  149. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/frontier_dist.rs +0 -0
  150. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/ghost_market_maker.rs +0 -0
  151. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/gp_correlation_dimension.rs +0 -0
  152. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/grouping.rs +0 -0
  153. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/hawkes_advisor.rs +0 -0
  154. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/hawkes_analysis.rs +0 -0
  155. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/illusion_liquidity_distance.rs +0 -0
  156. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/integer_small_peak_features.rs +0 -0
  157. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/lagged_regression.rs +0 -0
  158. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/lagged_regression_incremental.rs +0 -0
  159. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/lagged_regression_optimized.rs +0 -0
  160. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/lagged_regression_simd.rs +0 -0
  161. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/limit_order_lifecycle.rs +0 -0
  162. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/limit_order_lifecycle_v2.rs +0 -0
  163. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/long_order_analysis.rs +0 -0
  164. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/lz_complexity_detailed.rs +0 -0
  165. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/market_correlation.rs +0 -0
  166. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/microstructure_pattern_features.rs +0 -0
  167. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/microstructure_pattern_features_optimized.rs +0 -0
  168. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/microstructure_pattern_features_v2.rs +0 -0
  169. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/mutual_information.rs +0 -0
  170. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/mutual_information_2d.rs +0 -0
  171. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/mutual_information_2d_final.rs +0 -0
  172. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/mutual_information_2d_fixed.rs +0 -0
  173. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/order_contamination.rs +0 -0
  174. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/order_neighborhood.rs +0 -0
  175. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/order_price_statistics.rs +0 -0
  176. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/order_price_statistics_bucketed.rs +0 -0
  177. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/order_price_statistics_order_level.rs +0 -0
  178. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/order_records_ultra_sorted.rs +0 -0
  179. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/order_records_ultra_sorted_bucketed.rs +0 -0
  180. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/order_records_ultra_sorted_v2_optimized.rs +0 -0
  181. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/order_records_ultra_sorted_v3.rs +0 -0
  182. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/orderbook_volume_cov_factors.rs +0 -0
  183. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/pandas_ext/mod.rs +0 -0
  184. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/parallel_computing.rs +0 -0
  185. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/parallel_computing_date_only.rs +0 -0
  186. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/passive_order_features.rs +0 -0
  187. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/permutation_analysis_v0816_fixed.rs +0 -0
  188. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/personalized_meeting_features.rs +0 -0
  189. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/price_breakthrough_stats.rs +0 -0
  190. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/price_cycle_b_segments_enhanced.rs +0 -0
  191. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/safe_eigenvalue.rs +0 -0
  192. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/sequence/mod.rs +0 -0
  193. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/series_rank.rs +0 -0
  194. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/simple_parallel.rs +0 -0
  195. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/skewness.rs +0 -0
  196. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/statistics/eigenvalue_analysis.rs +0 -0
  197. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/statistics/eigenvalue_analysis_modified.rs +0 -0
  198. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/statistics/fast_correlation.rs +0 -0
  199. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/statistics/fast_correlation_v2.rs +0 -0
  200. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/statistics/hmm_trend_prediction.rs +0 -0
  201. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/statistics/local_correlation.rs +0 -0
  202. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/statistics/rolling_correlation_mean.rs +0 -0
  203. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/statistics/rolling_window_core_feature.rs +0 -0
  204. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/statistics/rolling_window_core_feature_optimized.rs +0 -0
  205. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/statistics/rolling_window_core_feature_simd.rs +0 -0
  206. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/statistics/rolling_window_core_feature_ultra.rs +0 -0
  207. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/tail_v2_backtest_block.rs +0 -0
  208. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/tail_v2_block_neutralizer.rs +0 -0
  209. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/tail_v2_ic_corr_filter.rs +0 -0
  210. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/tail_v2_rank_roll_factor.rs +0 -0
  211. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/text/mod.rs +0 -0
  212. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/text/string_proximity.rs +0 -0
  213. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/theme_cluster_factors.rs +0 -0
  214. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/theme_cluster_factors_batch.rs +0 -0
  215. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/theme_feature_expansion.rs +0 -0
  216. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/time_irreversibility.rs +0 -0
  217. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/time_series/fast_extreme.rs +0 -0
  218. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/time_series/lyapunov.rs +0 -0
  219. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/time_series/mod.rs +0 -0
  220. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/time_series/retreat_advance.rs +0 -0
  221. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/time_series/retreat_advance_v2.rs +0 -0
  222. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/time_series/super_extreme.rs +0 -0
  223. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/topk_corr_matrix.rs +0 -0
  224. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/trade_analysis_ultra_turbo.rs +0 -0
  225. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/trade_peak_analysis.rs +0 -0
  226. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/trade_records_ultra_sorted.rs +0 -0
  227. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/tree/mod.rs +0 -0
  228. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/vector_similarity.rs +0 -0
  229. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/vector_similarity_optimized.rs +0 -0
  230. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/yand_affine_centroid.rs +0 -0
  231. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/src/yand_divergence.rs +0 -0
  232. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/templates/base.html +0 -0
  233. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/templates/function.html +0 -0
  234. {rust_pyfunc-0.78.0 → rust_pyfunc-0.81.0}/templates/index.html +0 -0
@@ -239,3 +239,4 @@ docs/theme_feature_expansion_explanation.md
239
239
  .mindfs/sessions/session-list.db
240
240
  .maturin_zig/*
241
241
  dist_versions/*
242
+ python/rust_pyfunc/rust_pyfunc_worker
@@ -550,6 +550,17 @@ version = "0.8.7"
550
550
  source = "registry+https://github.com/rust-lang/crates.io-index"
551
551
  checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
552
552
 
553
+ [[package]]
554
+ name = "core_affinity"
555
+ version = "0.8.3"
556
+ source = "registry+https://github.com/rust-lang/crates.io-index"
557
+ checksum = "a034b3a7b624016c6e13f5df875747cc25f884156aad2abd12b6c46797971342"
558
+ dependencies = [
559
+ "libc",
560
+ "num_cpus",
561
+ "winapi",
562
+ ]
563
+
553
564
  [[package]]
554
565
  name = "cpufeatures"
555
566
  version = "0.2.17"
@@ -2181,12 +2192,13 @@ checksum = "082f11ffa03bbef6c2c6ea6bea1acafaade2fd9050ae0234ab44a2153742b058"
2181
2192
 
2182
2193
  [[package]]
2183
2194
  name = "rust_pyfunc"
2184
- version = "0.78.0"
2195
+ version = "0.81.0"
2185
2196
  dependencies = [
2186
2197
  "arrow",
2187
2198
  "base64 0.21.7",
2188
2199
  "bincode",
2189
2200
  "chrono",
2201
+ "core_affinity",
2190
2202
  "criterion",
2191
2203
  "crossbeam",
2192
2204
  "csv",
@@ -2671,6 +2683,22 @@ dependencies = [
2671
2683
  "safe_arch",
2672
2684
  ]
2673
2685
 
2686
+ [[package]]
2687
+ name = "winapi"
2688
+ version = "0.3.9"
2689
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2690
+ checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
2691
+ dependencies = [
2692
+ "winapi-i686-pc-windows-gnu",
2693
+ "winapi-x86_64-pc-windows-gnu",
2694
+ ]
2695
+
2696
+ [[package]]
2697
+ name = "winapi-i686-pc-windows-gnu"
2698
+ version = "0.4.0"
2699
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2700
+ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
2701
+
2674
2702
  [[package]]
2675
2703
  name = "winapi-util"
2676
2704
  version = "0.1.9"
@@ -2680,6 +2708,12 @@ dependencies = [
2680
2708
  "windows-sys 0.59.0",
2681
2709
  ]
2682
2710
 
2711
+ [[package]]
2712
+ name = "winapi-x86_64-pc-windows-gnu"
2713
+ version = "0.4.0"
2714
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2715
+ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
2716
+
2683
2717
  [[package]]
2684
2718
  name = "windows-core"
2685
2719
  version = "0.61.2"
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "rust_pyfunc"
3
- version = "0.78.0"
3
+ version = "0.81.0"
4
4
  edition = "2021"
5
5
  description = "A collection of high-performance Python functions implemented in Rust"
6
6
  readme = "README.md"
@@ -46,9 +46,15 @@ log = "0.4"
46
46
  once_cell = "1.19"
47
47
  csv = "1.3"
48
48
  ndarray-npy = "0.8"
49
+ core_affinity = "0.8"
49
50
  hdf5-metno = { version = "0.12", features = ["static", "zlib"], optional = true }
50
51
  zstd = "0.13"
51
52
 
53
+ # Worker 二进制(多进程因子流水线)
54
+ [[bin]]
55
+ name = "rust_pyfunc_worker"
56
+ path = "src/bin/worker_pipeline.rs"
57
+
52
58
  [features]
53
59
  default = ["hdf5"]
54
60
  hdf5 = ["hdf5-metno"]
@@ -65,8 +71,9 @@ criterion = "0.5"
65
71
  [profile.release]
66
72
  lto = true
67
73
  codegen-units = 1
68
- panic = "abort"
69
74
  opt-level = 3
75
+ # 注意:不用 panic = "abort",因为 worker bin 需要 catch_unwind 捕获计算 panic,
76
+ # 避免整个 worker 进程崩溃重启。pyo3 0.18 在 unwind 下正常工作。
70
77
 
71
78
  [build-dependencies]
72
79
  pkg-config = "0.3"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rust_pyfunc
3
- Version: 0.78.0
3
+ Version: 0.81.0
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  Classifier: Programming Language :: Python :: Implementation :: PyPy
@@ -26,5 +26,10 @@ conda activate chenzongwei311
26
26
  export PATH="/home/chenzongwei/.local/bin:$PATH"
27
27
  /home/chenzongwei/.local/bin/mold -run maturin develop --release
28
28
 
29
+ # 5. 编译并部署 worker 二进制(多进程因子流水线 mode="multiprocess" 需要)
30
+ /home/chenzongwei/.local/bin/mold -run cargo build --release --bin rust_pyfunc_worker
31
+ cp target/release/rust_pyfunc_worker python/rust_pyfunc/rust_pyfunc_worker
32
+ echo "✅ worker 二进制已部署到 python/rust_pyfunc/rust_pyfunc_worker"
33
+
29
34
  # 如果需要,你也可以在脚本结束时停用环境
30
35
  # conda deactivate
@@ -2288,3 +2288,104 @@ def compute_ts_stats(series: List[float]) -> List[float]:
2288
2288
  数据不足5个时返回空列表
2289
2289
  """
2290
2290
  ...
2291
+
2292
+
2293
+ def read_trade_fast(
2294
+ code: str,
2295
+ date: int,
2296
+ with_retreat: int = 0,
2297
+ with_afternoon_adjust: bool = False,
2298
+ ) -> NDArray[np.float64]:
2299
+ """高速读取逐笔成交数据(Rust 多线程实现,替代 read_trade 的加速版)。
2300
+
2301
+ 用 memmap2 内存映射文件,大文件按字节块切分并行解析(rayon),
2302
+ 读取时即完成全部预处理:flag!=32 过滤、exchtime 微秒整数→epoch 秒、
2303
+ 可选的下午时段平移(adjust_afternoon)。
2304
+
2305
+ 与 read_trade 的差异:
2306
+ - 直接返回 (n, 7) float64 numpy 数组,跳过 DataFrame 构造与 Timestamp 往返转换
2307
+ - with_afternoon_adjust=True 时在读时一步完成下午时段平移并过滤非盘中数据
2308
+ - time_sec 列为 epoch 秒(与 prepare() 中 exchtime.astype(int64)//1e9 一致)
2309
+
2310
+ 列顺序(n×7 矩阵):
2311
+ [0] time_sec 成交时间,epoch 秒
2312
+ [1] price 成交价
2313
+ [2] volume 成交量
2314
+ [3] turnover 成交额
2315
+ [4] flag 成交标志(66=主买, 83=主卖;32=撤单,已被过滤)
2316
+ [5] bid_order 买方订单号
2317
+ [6] ask_order 卖方订单号
2318
+
2319
+ Parameters
2320
+ ----------
2321
+ code : str
2322
+ 股票代码,如 "000001"
2323
+ date : int
2324
+ 交易日,如 20260605
2325
+ with_retreat : int, 默认 0
2326
+ 1 时保留 flag==32 的撤单记录,0 时过滤(与 read_trade 默认一致)
2327
+ with_afternoon_adjust : bool, 默认 False
2328
+ True 时做 adjust_afternoon 平移:保留 [09:30,11:30],下午 [13:00,14:57]
2329
+ 整体前移 90 分钟,过滤集合竞价前/收盘后的数据
2330
+
2331
+ Returns
2332
+ -------
2333
+ numpy.ndarray
2334
+ (n, 7) float64 数组
2335
+ """
2336
+ ...
2337
+
2338
+
2339
+ def run_factor_pipeline(
2340
+ pipeline: str,
2341
+ tasks: List,
2342
+ n_jobs: int,
2343
+ backup_file: str,
2344
+ expected_result_length: int,
2345
+ trading_days: List[int],
2346
+ params: object = None,
2347
+ update_mode: bool = False,
2348
+ bind_cores: bool = True,
2349
+ backup_batch_size: int = 2000,
2350
+ progress_log: bool = False,
2351
+ ) -> None:
2352
+ """纯 Rust 因子流水线引擎(run_factor_pipeline 优化方案 Phase 3)。
2353
+
2354
+ 把 go 函数(如 hm90.go)的整条链路在 Rust 内部一气呵成,消除 Python worker、
2355
+ pandas、pyo3 往返、msgpack 等所有流转浪费。并行控制采用自适应嵌套并行 + 核绑定,
2356
+ 总线程恒定 = n_jobs。
2357
+
2358
+ backup 格式与现有 run_pools_queue 完全兼容(复用 backup_writer),
2359
+ 后续 query_backup / query_backup_factor_only_ultra_fast 无需改动。
2360
+
2361
+ Parameters
2362
+ ----------
2363
+ pipeline : str
2364
+ 流水线标识,目前支持 "order_pair_hm90"(hm90.go 的 Rust 翻译)
2365
+ tasks : List[[int, str]]
2366
+ 任务列表,每个元素 [date, code]
2367
+ n_jobs : int
2368
+ 并行线程数(总 CPU 占用 ≈ n_jobs × 100%,默认生产用 200)
2369
+ backup_file : str
2370
+ 备份文件路径(与 run_pools_queue 的 backup_file 格式兼容)
2371
+ expected_result_length : int
2372
+ 每个任务的预期结果长度(因子数)
2373
+ trading_days : List[int]
2374
+ 交易日历数组(由 rp.td.trading_days.tolist() 提供,用于 last_trading_day 查找)
2375
+ params : dict, 可选
2376
+ 流水线参数,如 {"tolerance_v1": 0.001, "tolerance_v2": 0.00001}
2377
+ update_mode : bool, 默认 False
2378
+ 断点续算:True 时跳过 backup 中已完成的任务
2379
+ bind_cores : bool, 默认 True
2380
+ 核绑定:把 n_jobs 个线程各绑定到一个物理核,CPU 占用精确稳定
2381
+ backup_batch_size : int, 默认 2000
2382
+ 每攒满 N 个结果写一次 backup(批量 zstd 压缩)
2383
+ progress_log : bool, 默认 False
2384
+ 每 500 个任务打印一次进度
2385
+
2386
+ Notes
2387
+ -----
2388
+ "order_pair_hm90" 流水线关闭了 lyapunov 特征(原 get_features_factors 默认开启,
2389
+ 但花 69% 时间只产生 2.3% 特征)。如需 lyapunov,仍可用原 run_pools_queue。
2390
+ """
2391
+ ...