fpstreams 2.4.0__tar.gz → 2.4.1__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 (207) hide show
  1. {fpstreams-2.4.0 → fpstreams-2.4.1}/CHANGELOG.md +8 -0
  2. {fpstreams-2.4.0 → fpstreams-2.4.1}/PKG-INFO +4 -3
  3. {fpstreams-2.4.0 → fpstreams-2.4.1}/README.md +3 -2
  4. {fpstreams-2.4.0 → fpstreams-2.4.1}/pyproject.toml +1 -1
  5. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/Cargo.lock +1 -1
  6. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/Cargo.toml +1 -1
  7. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/__init__.py +1 -1
  8. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/relational/__init__.py +31 -553
  9. fpstreams-2.4.1/src/fpstreams/execution/relational/collector_group.py +203 -0
  10. fpstreams-2.4.1/src/fpstreams/execution/relational/native_group.py +428 -0
  11. fpstreams-2.4.1/src/fpstreams/planning/compiler.py +424 -0
  12. fpstreams-2.4.1/src/fpstreams/planning/relational.py +320 -0
  13. fpstreams-2.4.0/src/fpstreams/planning/compiler.py → fpstreams-2.4.1/src/fpstreams/planning/relational_specs.py +4 -652
  14. fpstreams-2.4.1/src/fpstreams/streams/_flow_frequencies.py +203 -0
  15. fpstreams-2.4.1/src/fpstreams/streams/_flow_materialize.py +406 -0
  16. fpstreams-2.4.1/src/fpstreams/streams/_flow_numeric.py +354 -0
  17. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/streams/flow_terminals.py +175 -783
  18. {fpstreams-2.4.0 → fpstreams-2.4.1}/LICENSE +0 -0
  19. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/build.rs +0 -0
  20. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/common.rs +0 -0
  21. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/float/affine_pair.rs +0 -0
  22. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/float/endpoints.rs +0 -0
  23. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/float.rs +0 -0
  24. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/integer/endpoints.rs +0 -0
  25. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/integer.rs +0 -0
  26. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/lib.rs +0 -0
  27. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/numeric_mean.rs +0 -0
  28. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/numpy_export.rs +0 -0
  29. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/numpy_group/buffer.rs +0 -0
  30. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/numpy_group.rs +0 -0
  31. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/pair/expr.rs +0 -0
  32. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/pair/prefix.rs +0 -0
  33. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/pair/row_filter.rs +0 -0
  34. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/pair/unique.rs +0 -0
  35. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/pair/value_filter.rs +0 -0
  36. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/pair/value_map.rs +0 -0
  37. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/pair.rs +0 -0
  38. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/pivot.rs +0 -0
  39. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/records.rs +0 -0
  40. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/relational/adapters/namedtuple.rs +0 -0
  41. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/relational/adapters.rs +0 -0
  42. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/relational/global_numeric.rs +0 -0
  43. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/relational/group_numeric.rs +0 -0
  44. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/relational/group_pair_expr.rs +0 -0
  45. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/relational/join_callable/many.rs +0 -0
  46. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/relational/join_callable/unique.rs +0 -0
  47. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/relational/join_callable.rs +0 -0
  48. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/relational/join_exact.rs +0 -0
  49. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/relational/join_i64.rs +0 -0
  50. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/relational.rs +0 -0
  51. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/relational_fixed/composite.rs +0 -0
  52. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/relational_fixed/global_multi/same_field.rs +0 -0
  53. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/relational_fixed/global_multi.rs +0 -0
  54. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/relational_fixed/group_multi.rs +0 -0
  55. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/relational_fixed/single.rs +0 -0
  56. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/relational_fixed.rs +0 -0
  57. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/scalar_sort.rs +0 -0
  58. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/scalar_unique.rs +0 -0
  59. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/select.rs +0 -0
  60. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/tests/adapters.rs +0 -0
  61. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/tests/group_exact/pairs.rs +0 -0
  62. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/tests/group_exact/rows.rs +0 -0
  63. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/tests/group_exact.rs +0 -0
  64. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/tests/group_fixed.rs +0 -0
  65. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/tests/join_callable/behavior.rs +0 -0
  66. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/tests/join_callable/direct.rs +0 -0
  67. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/tests/join_callable.rs +0 -0
  68. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/tests/join_exact.rs +0 -0
  69. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/tests/numeric/buffers.rs +0 -0
  70. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/tests/numeric/kernels.rs +0 -0
  71. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/tests/numeric/reductions.rs +0 -0
  72. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/tests/numeric.rs +0 -0
  73. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/tests/numpy_group.rs +0 -0
  74. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/tests.rs +0 -0
  75. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/unnest.rs +0 -0
  76. {fpstreams-2.4.0 → fpstreams-2.4.1}/rust/src/unpivot.rs +0 -0
  77. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/_native.pyi +0 -0
  78. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/_provenance.py +0 -0
  79. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/aggregate.py +0 -0
  80. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/async_flow.py +0 -0
  81. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/collecting/__init__.py +0 -0
  82. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/collecting/_collector_base.py +0 -0
  83. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/collecting/aggregate_program.py +0 -0
  84. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/collecting/aggregation.py +0 -0
  85. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/collecting/collector.py +0 -0
  86. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/collecting/program.py +0 -0
  87. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/collecting/reducer.py +0 -0
  88. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/collecting/statistics.py +0 -0
  89. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/collectors.py +0 -0
  90. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/column.py +0 -0
  91. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/errors.py +0 -0
  92. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/exceptions.py +0 -0
  93. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/__init__.py +0 -0
  94. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/_pair_aggregate.py +0 -0
  95. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/_pair_dict.py +0 -0
  96. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/_pair_row_filter.py +0 -0
  97. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/_rows_fusion.py +0 -0
  98. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/_scalar_fusion.py +0 -0
  99. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/arrow.py +0 -0
  100. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/async_iterators.py +0 -0
  101. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/async_map.py +0 -0
  102. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/async_merge.py +0 -0
  103. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/async_ops.py +0 -0
  104. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/async_prefetch.py +0 -0
  105. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/async_queue.py +0 -0
  106. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/async_scheduler.py +0 -0
  107. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/async_timers.py +0 -0
  108. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/native.py +0 -0
  109. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/numpy_group.py +0 -0
  110. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/numpy_prefix.py +0 -0
  111. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/physical.py +0 -0
  112. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/relational/arrow_global.py +0 -0
  113. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/relational/arrow_group.py +0 -0
  114. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/relational/arrow_group_rows.py +0 -0
  115. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/relational/join.py +0 -0
  116. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/sorted_streams.py +0 -0
  117. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/sorting.py +0 -0
  118. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/sync.py +0 -0
  119. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/sync_ops.py +0 -0
  120. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/execution/window_reduce.py +0 -0
  121. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/expr.py +0 -0
  122. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/expressions/__init__.py +0 -0
  123. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/expressions/_codegen.py +0 -0
  124. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/expressions/_row_codegen.py +0 -0
  125. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/expressions/program.py +0 -0
  126. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/expressions/row.py +0 -0
  127. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/expressions/row_eval.py +0 -0
  128. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/expressions/row_ir.py +0 -0
  129. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/expressions/scalar.py +0 -0
  130. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/expressions/selectors.py +0 -0
  131. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/expressions/typed_ir.py +0 -0
  132. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/functional.py +0 -0
  133. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/gather.py +0 -0
  134. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/io_safety.py +0 -0
  135. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/option.py +0 -0
  136. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/physical/__init__.py +0 -0
  137. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/physical/async_plan.py +0 -0
  138. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/physical/compiled.py +0 -0
  139. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/physical/kernel_cache.py +0 -0
  140. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/physical/plan.py +0 -0
  141. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/physical/relational.py +0 -0
  142. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/planning/__init__.py +0 -0
  143. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/planning/_pair_stages.py +0 -0
  144. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/planning/arrow.py +0 -0
  145. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/planning/arrow_source.py +0 -0
  146. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/planning/async_.py +0 -0
  147. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/planning/async_utils.py +0 -0
  148. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/planning/explain.py +0 -0
  149. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/planning/gather.py +0 -0
  150. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/planning/logical.py +0 -0
  151. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/planning/native.py +0 -0
  152. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/planning/numpy.py +0 -0
  153. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/planning/pair_i64_expression.py +0 -0
  154. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/planning/plan_cache.py +0 -0
  155. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/planning/semantic_analyzer.py +0 -0
  156. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/planning/semantic_rules.py +0 -0
  157. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/planning/semantics.py +0 -0
  158. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/planning/source.py +0 -0
  159. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/planning/sync.py +0 -0
  160. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/primitives/__init__.py +0 -0
  161. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/primitives/option.py +0 -0
  162. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/primitives/result.py +0 -0
  163. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/py.typed +0 -0
  164. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/result.py +0 -0
  165. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/runtime/__init__.py +0 -0
  166. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/runtime/_distinct.py +0 -0
  167. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/runtime/executor.py +0 -0
  168. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/runtime/failpoints.py +0 -0
  169. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/runtime/files.py +0 -0
  170. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/runtime/iterators.py +0 -0
  171. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/runtime/limits.py +0 -0
  172. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/runtime/metrics.py +0 -0
  173. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/runtime/query.py +0 -0
  174. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/runtime/report.py +0 -0
  175. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/runtime/resources.py +0 -0
  176. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/runtime/spill.py +0 -0
  177. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/runtime/tasks.py +0 -0
  178. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/storage/__init__.py +0 -0
  179. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/storage/checkpoint.py +0 -0
  180. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/storage/codec.py +0 -0
  181. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/storage/spill_store.py +0 -0
  182. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/streams/__init__.py +0 -0
  183. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/streams/_async_identity.py +0 -0
  184. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/streams/_flow_structural_list.py +0 -0
  185. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/streams/_flow_unique_list.py +0 -0
  186. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/streams/async_flow.py +0 -0
  187. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/streams/async_terminals.py +0 -0
  188. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/streams/flow.py +0 -0
  189. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/streams/pairs.py +0 -0
  190. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/tabular/__init__.py +0 -0
  191. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/tabular/_text_sources.py +0 -0
  192. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/tabular/arrow.py +0 -0
  193. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/tabular/dataframe.py +0 -0
  194. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/tabular/factory.py +0 -0
  195. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/tabular/grouped.py +0 -0
  196. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/tabular/io.py +0 -0
  197. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/tabular/join.py +0 -0
  198. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/tabular/numpy.py +0 -0
  199. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/tabular/polars.py +0 -0
  200. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/tabular/records.py +0 -0
  201. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/tabular/rows.py +0 -0
  202. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/tabular/spill.py +0 -0
  203. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/tabular/spill_io.py +0 -0
  204. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/tabular/spill_limits.py +0 -0
  205. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/tabular/sql.py +0 -0
  206. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/tabular/sqlite_sink.py +0 -0
  207. {fpstreams-2.4.0 → fpstreams-2.4.1}/src/fpstreams/testing.py +0 -0
@@ -5,6 +5,14 @@ including changed defaults.
5
5
 
6
6
  ## Unreleased
7
7
 
8
+ ## 2.4.1 - 2026-10-18
9
+
10
+ ### Changed
11
+
12
+ - Separate relational candidate recognition and tree compilation from the general
13
+ compiler. Native grouping, Collector grouping, and synchronous terminal helpers
14
+ now live in domain modules; public interfaces and execution rules stay the same.
15
+
8
16
  ## 2.4.0 - 2026-10-18
9
17
 
10
18
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fpstreams
3
- Version: 2.4.0
3
+ Version: 2.4.1
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Programming Language :: Python :: 3.11
@@ -66,8 +66,9 @@ Lazy Python pipelines for iterables and records, with bounded async concurrency.
66
66
 
67
67
  Python 3.11 or newer is required.
68
68
 
69
- The current stable release is [2.4.0](https://github.com/steventimes/fpstreams/releases/tag/v2.4.0).
70
- It adds stateful pipeline operations, composed aggregation, shared execution
69
+ The current stable release is [2.4.1](https://github.com/steventimes/fpstreams/releases/tag/v2.4.1).
70
+ This maintenance release reorganizes planner and execution internals with no public API changes.
71
+ Version 2.4.0 added stateful pipeline operations, composed aggregation, shared execution
71
72
  limits, file recovery, and versioned execution metadata. See the
72
73
  [changelog](https://github.com/steventimes/fpstreams/blob/master/CHANGELOG.md) for its scope and the
73
74
  [performance guide](https://steventimes.github.io/fpstreams/user-guide/performance/#process-mapping-and-explicit-batches)
@@ -11,8 +11,9 @@ Lazy Python pipelines for iterables and records, with bounded async concurrency.
11
11
 
12
12
  Python 3.11 or newer is required.
13
13
 
14
- The current stable release is [2.4.0](https://github.com/steventimes/fpstreams/releases/tag/v2.4.0).
15
- It adds stateful pipeline operations, composed aggregation, shared execution
14
+ The current stable release is [2.4.1](https://github.com/steventimes/fpstreams/releases/tag/v2.4.1).
15
+ This maintenance release reorganizes planner and execution internals with no public API changes.
16
+ Version 2.4.0 added stateful pipeline operations, composed aggregation, shared execution
16
17
  limits, file recovery, and versioned execution metadata. See the
17
18
  [changelog](https://github.com/steventimes/fpstreams/blob/master/CHANGELOG.md) for its scope and the
18
19
  [performance guide](https://steventimes.github.io/fpstreams/user-guide/performance/#process-mapping-and-explicit-batches)
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "fpstreams"
7
- version = "2.4.0"
7
+ version = "2.4.1"
8
8
  description = "Lazy Python pipelines for iterables and records, with bounded async concurrency."
9
9
  readme = "README.md"
10
10
  authors = [
@@ -4,7 +4,7 @@ version = 4
4
4
 
5
5
  [[package]]
6
6
  name = "fpstreams-native"
7
- version = "2.4.0"
7
+ version = "2.4.1"
8
8
  dependencies = [
9
9
  "pyo3",
10
10
  "pyo3-build-config",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "fpstreams-native"
3
- version = "2.4.0"
3
+ version = "2.4.1"
4
4
  edition = "2024"
5
5
  rust-version = "1.85"
6
6
  description = "Native fused execution kernels for fpstreams."
@@ -44,7 +44,7 @@ from .streams import (
44
44
  from .tabular import Rows, SpillLimits
45
45
  from .tabular.factory import rows as rows
46
46
 
47
- __version__ = "2.4.0"
47
+ __version__ = "2.4.1"
48
48
  Stream = Flow
49
49
  ParallelStream = Flow
50
50