Flowfile 0.3.3__tar.gz → 0.3.3.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.

Potentially problematic release.


This version of Flowfile might be problematic. Click here for more details.

Files changed (312) hide show
  1. {flowfile-0.3.3 → flowfile-0.3.3.1}/PKG-INFO +4 -3
  2. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/__init__.py +1 -1
  3. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_frame/flowfile_frame/flow_frame.py +11 -14
  4. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_frame/flowfile_frame/flow_frame.pyi +119 -87
  5. {flowfile-0.3.3 → flowfile-0.3.3.1}/pyproject.toml +6 -3
  6. {flowfile-0.3.3 → flowfile-0.3.3.1}/LICENSE +0 -0
  7. {flowfile-0.3.3 → flowfile-0.3.3.1}/build_backends/build_backends/__init__.py +0 -0
  8. {flowfile-0.3.3 → flowfile-0.3.3.1}/build_backends/build_backends/main.py +0 -0
  9. {flowfile-0.3.3 → flowfile-0.3.3.1}/build_backends/build_backends/main_prd.py +0 -0
  10. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/__main__.py +0 -0
  11. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/api.py +0 -0
  12. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/readme.md +0 -0
  13. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/__init__.py +0 -0
  14. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/AirbyteReader-1ac35765.css +0 -0
  15. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/AirbyteReader-2b1cf2d8.js +0 -0
  16. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/CrossJoin-41efa4cb.css +0 -0
  17. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/CrossJoin-cc3ab73c.js +0 -0
  18. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/DatabaseConnectionSettings-0c04b2e5.css +0 -0
  19. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/DatabaseConnectionSettings-307c4652.js +0 -0
  20. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/DatabaseManager-30fa27e5.css +0 -0
  21. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/DatabaseManager-69faa6e1.js +0 -0
  22. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/DatabaseReader-e4134cd0.js +0 -0
  23. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/DatabaseReader-f50c6558.css +0 -0
  24. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/DatabaseWriter-2f570e53.css +0 -0
  25. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/DatabaseWriter-d32d75b1.js +0 -0
  26. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/ExploreData-5bdae813.css +0 -0
  27. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/ExploreData-5eb48389.js +0 -0
  28. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/ExternalSource-29489051.js +0 -0
  29. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/ExternalSource-e37b6275.css +0 -0
  30. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/Filter-031332bb.js +0 -0
  31. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/Filter-a9d08ba1.css +0 -0
  32. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/Formula-3b900540.js +0 -0
  33. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/Formula-b8cefc31.css +0 -0
  34. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/FuzzyMatch-6857de82.css +0 -0
  35. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/FuzzyMatch-dee31153.js +0 -0
  36. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/GraphSolver-17fd26db.css +0 -0
  37. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/GraphSolver-ca74eb47.js +0 -0
  38. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/GroupBy-081b6591.js +0 -0
  39. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/GroupBy-ab1ea74b.css +0 -0
  40. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/Join-41c0f331.css +0 -0
  41. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/Join-b467376f.js +0 -0
  42. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/ManualInput-ac7b9972.css +0 -0
  43. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/ManualInput-ffffb80a.js +0 -0
  44. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/Output-48f81019.css +0 -0
  45. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/Output-9a87d4ba.js +0 -0
  46. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/Pivot-ee3e6093.js +0 -0
  47. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/Pivot-f415e85f.css +0 -0
  48. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/PolarsCode-03921254.js +0 -0
  49. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/PolarsCode-650322d1.css +0 -0
  50. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/PopOver-3bdf8951.js +0 -0
  51. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/PopOver-bccfde04.css +0 -0
  52. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/Read-67fee3a0.js +0 -0
  53. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/Read-80dc1675.css +0 -0
  54. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/RecordCount-a2acd02d.js +0 -0
  55. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/RecordId-0c8bcd77.js +0 -0
  56. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/Sample-60594a3a.js +0 -0
  57. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/SecretManager-bbcec2ac.js +0 -0
  58. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/Select-9540e6ca.js +0 -0
  59. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/SettingsSection-48f28104.js +0 -0
  60. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/SettingsSection-9c836ecc.css +0 -0
  61. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/Sort-6dbe3633.js +0 -0
  62. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/Sort-7ccfa0fe.css +0 -0
  63. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/TextToRows-27aab4a8.js +0 -0
  64. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/TextToRows-c92d1ec2.css +0 -0
  65. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/UnavailableFields-5edd5322.css +0 -0
  66. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/UnavailableFields-8143044b.js +0 -0
  67. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/Union-52460248.js +0 -0
  68. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/Union-8d9ac7f9.css +0 -0
  69. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/Unique-b5615727.css +0 -0
  70. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/Unique-f6962644.js +0 -0
  71. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/Unpivot-1ff1e938.js +0 -0
  72. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/Unpivot-246e9bbd.css +0 -0
  73. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/airbyte-292aa232.png +0 -0
  74. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/api-3b345d92.js +0 -0
  75. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/cross_join-d30c0290.png +0 -0
  76. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/database_reader-ce1e55f3.svg +0 -0
  77. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/database_writer-b4ad0753.svg +0 -0
  78. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/designer-2394122a.css +0 -0
  79. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/designer-4736134f.js +0 -0
  80. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/documentation-12216a74.css +0 -0
  81. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/documentation-b9545eba.js +0 -0
  82. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/dropDown-35135ba8.css +0 -0
  83. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/dropDown-d5a4014c.js +0 -0
  84. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/dropDownGeneric-1f4e32ec.js +0 -0
  85. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/dropDownGeneric-895680d6.css +0 -0
  86. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/element-icons-9c88a535.woff +0 -0
  87. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/element-icons-de5eb258.ttf +0 -0
  88. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/explore_data-8a0a2861.png +0 -0
  89. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/fa-brands-400-808443ae.ttf +0 -0
  90. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/fa-brands-400-d7236a19.woff2 +0 -0
  91. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/fa-regular-400-54cf6086.ttf +0 -0
  92. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/fa-regular-400-e3456d12.woff2 +0 -0
  93. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/fa-solid-900-aa759986.woff2 +0 -0
  94. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/fa-solid-900-d2f05935.ttf +0 -0
  95. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/fa-v4compatibility-0ce9033c.woff2 +0 -0
  96. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/fa-v4compatibility-30f6abf6.ttf +0 -0
  97. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/filter-d7708bda.png +0 -0
  98. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/formula-eeeb1611.png +0 -0
  99. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/fullEditor-178376bb.css +0 -0
  100. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/fullEditor-f4791c23.js +0 -0
  101. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/fuzzy_match-40c161b2.png +0 -0
  102. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/genericNodeSettings-1d456350.js +0 -0
  103. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/genericNodeSettings-924759c7.css +0 -0
  104. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/graph_solver-8b7888b8.png +0 -0
  105. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/group_by-80561fc3.png +0 -0
  106. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/index-681a3ed0.css +0 -0
  107. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/index-f25c9283.js +0 -0
  108. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/input_data-ab2eb678.png +0 -0
  109. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/join-349043ae.png +0 -0
  110. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/manual_input-ae98f31d.png +0 -0
  111. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/nodeTitle-cad6fd9d.js +0 -0
  112. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/nodeTitle-f4b12bcb.css +0 -0
  113. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/old_join-5d0eb604.png +0 -0
  114. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/output-06ec0371.png +0 -0
  115. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/pivot-9660df51.png +0 -0
  116. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/polars_code-05ce5dc6.png +0 -0
  117. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/record_count-dab44eb5.png +0 -0
  118. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/record_id-0b15856b.png +0 -0
  119. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/sample-693a88b5.png +0 -0
  120. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/secretApi-01f07e2c.js +0 -0
  121. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/select-b0d0437a.png +0 -0
  122. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/selectDynamic-b062bc9b.css +0 -0
  123. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/selectDynamic-f46a4e3f.js +0 -0
  124. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/sort-2aa579f0.png +0 -0
  125. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/summarize-2a099231.png +0 -0
  126. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/text_to_rows-859b29ea.png +0 -0
  127. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/union-2d8609f4.png +0 -0
  128. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/unique-1958b98a.png +0 -0
  129. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/unpivot-d3cb4b5b.png +0 -0
  130. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/view-7a0f0be1.png +0 -0
  131. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/vue-codemirror.esm-eb98fc8b.js +0 -0
  132. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/assets/vue-content-loader.es-860c0380.js +0 -0
  133. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/favicon.ico +0 -0
  134. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/flowfile.svg +0 -0
  135. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/icons/flowfile.png +0 -0
  136. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/images/airbyte.png +0 -0
  137. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/images/flowfile.svg +0 -0
  138. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/images/google.svg +0 -0
  139. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/images/sheets.png +0 -0
  140. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/index.html +0 -0
  141. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/vite.svg +0 -0
  142. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile/web/static/vue.svg +0 -0
  143. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/__init__.py +0 -0
  144. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/auth/__init__.py +0 -0
  145. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/auth/jwt.py +0 -0
  146. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/auth/models.py +0 -0
  147. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/auth/secrets.py +0 -0
  148. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/configs/__init__.py +0 -0
  149. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/configs/flow_logger.py +0 -0
  150. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/configs/node_store/__init__.py +0 -0
  151. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/configs/node_store/nodes.py +0 -0
  152. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/configs/settings.py +0 -0
  153. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/configs/utils.py +0 -0
  154. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/database/__init__.py +0 -0
  155. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/database/connection.py +0 -0
  156. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/database/init_db.py +0 -0
  157. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/database/models.py +0 -0
  158. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/fileExplorer/__init__.py +0 -0
  159. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/fileExplorer/funcs.py +0 -0
  160. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/fileExplorer/utils.py +0 -0
  161. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/FlowfileFlow.py +0 -0
  162. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/__init__.py +0 -0
  163. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/_extensions/__init__.py +0 -0
  164. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/_extensions/real_time_interface.py +0 -0
  165. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/analytics/__init__.py +0 -0
  166. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/analytics/analytics_processor.py +0 -0
  167. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/analytics/graphic_walker.py +0 -0
  168. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/analytics/schemas/__init__.py +0 -0
  169. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/analytics/utils.py +0 -0
  170. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/connection_manager/__init__.py +0 -0
  171. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/connection_manager/_connection_manager.py +0 -0
  172. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/connection_manager/models.py +0 -0
  173. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/database_connection_manager/__init__.py +0 -0
  174. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/database_connection_manager/db_connections.py +0 -0
  175. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/database_connection_manager/models.py +0 -0
  176. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/extensions.py +0 -0
  177. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/__init__.py +0 -0
  178. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/create/__init__.py +0 -0
  179. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/create/funcs.py +0 -0
  180. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/flow_data_engine.py +0 -0
  181. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/flow_file_column/__init__.py +0 -0
  182. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/flow_file_column/main.py +0 -0
  183. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/flow_file_column/polars_type.py +0 -0
  184. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/flow_file_column/utils.py +0 -0
  185. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/fuzzy_matching/__init__.py +0 -0
  186. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/fuzzy_matching/prepare_for_fuzzy_match.py +0 -0
  187. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/fuzzy_matching/settings_validator.py +0 -0
  188. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/join/__init__.py +0 -0
  189. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/join/verify_integrity.py +0 -0
  190. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/pivot_table.py +0 -0
  191. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/polars_code_parser.py +0 -0
  192. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/read_excel_tables.py +0 -0
  193. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/sample_data.py +0 -0
  194. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/subprocess_operations/__init__.py +0 -0
  195. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/subprocess_operations/models.py +0 -0
  196. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/subprocess_operations/subprocess_operations.py +0 -0
  197. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/threaded_processes.py +0 -0
  198. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/types.py +0 -0
  199. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_data_engine/utils.py +0 -0
  200. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_graph_utils.py +0 -0
  201. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_node/__init__.py +0 -0
  202. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_node/flow_node.py +0 -0
  203. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_node/models.py +0 -0
  204. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/flow_node/schema_callback.py +0 -0
  205. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/handler.py +0 -0
  206. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/manage/__init__.py +0 -0
  207. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/manage/compatibility_enhancements.py +0 -0
  208. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/manage/manage_flowfile.py +0 -0
  209. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/manage/open_flowfile.py +0 -0
  210. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/setting_generator/__init__.py +0 -0
  211. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/setting_generator/setting_generator.py +0 -0
  212. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/setting_generator/settings.py +0 -0
  213. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/sources/__init__.py +0 -0
  214. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/sources/external_sources/__init__.py +0 -0
  215. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/sources/external_sources/airbyte_sources/__init__.py +0 -0
  216. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/sources/external_sources/airbyte_sources/airbyte.py +0 -0
  217. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/sources/external_sources/airbyte_sources/models.py +0 -0
  218. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/sources/external_sources/airbyte_sources/settings.py +0 -0
  219. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/sources/external_sources/base_class.py +0 -0
  220. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/sources/external_sources/custom_external_sources/__init__.py +0 -0
  221. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/sources/external_sources/custom_external_sources/exchange_rate.py +0 -0
  222. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/sources/external_sources/custom_external_sources/external_source.py +0 -0
  223. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/sources/external_sources/custom_external_sources/sample_users.py +0 -0
  224. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/sources/external_sources/factory.py +0 -0
  225. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/sources/external_sources/sql_source/__init__.py +0 -0
  226. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/sources/external_sources/sql_source/models.py +0 -0
  227. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/sources/external_sources/sql_source/sql_source.py +0 -0
  228. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/sources/external_sources/sql_source/utils.py +0 -0
  229. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/util/__init__.py +0 -0
  230. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/util/calculate_layout.py +0 -0
  231. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/util/execution_orderer.py +0 -0
  232. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/flowfile/utils.py +0 -0
  233. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/main.py +0 -0
  234. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/routes/__init__.py +0 -0
  235. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/routes/auth.py +0 -0
  236. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/routes/logs.py +0 -0
  237. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/routes/public.py +0 -0
  238. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/routes/routes.py +0 -0
  239. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/routes/secrets.py +0 -0
  240. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/run_lock.py +0 -0
  241. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/schemas/__init__.py +0 -0
  242. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/schemas/analysis_schemas/__init__.py +0 -0
  243. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/schemas/analysis_schemas/graphic_walker_schemas.py +0 -0
  244. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/schemas/defaults.py +0 -0
  245. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/schemas/external_sources/__init__.py +0 -0
  246. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/schemas/external_sources/airbyte_schemas.py +0 -0
  247. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/schemas/input_schema.py +0 -0
  248. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/schemas/models.py +0 -0
  249. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/schemas/output_model.py +0 -0
  250. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/schemas/schemas.py +0 -0
  251. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/schemas/transform_schema.py +0 -0
  252. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/secret_manager/__init__.py +0 -0
  253. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/secret_manager/secret_manager.py +0 -0
  254. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/utils/__init__.py +0 -0
  255. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/utils/arrow_reader.py +0 -0
  256. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/utils/excel_file_manager.py +0 -0
  257. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/utils/fileManager.py +0 -0
  258. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/utils/fl_executor.py +0 -0
  259. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_core/flowfile_core/utils/utils.py +0 -0
  260. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_frame/flowfile_frame/__init__.py +0 -0
  261. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_frame/flowfile_frame/adapters.py +0 -0
  262. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_frame/flowfile_frame/adding_expr.py +0 -0
  263. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_frame/flowfile_frame/config.py +0 -0
  264. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_frame/flowfile_frame/expr.py +0 -0
  265. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_frame/flowfile_frame/expr.pyi +0 -0
  266. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_frame/flowfile_frame/expr_name.py +0 -0
  267. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_frame/flowfile_frame/flow_frame_methods.py +0 -0
  268. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_frame/flowfile_frame/group_frame.py +0 -0
  269. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_frame/flowfile_frame/join.py +0 -0
  270. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_frame/flowfile_frame/lazy.py +0 -0
  271. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_frame/flowfile_frame/lazy_methods.py +0 -0
  272. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_frame/flowfile_frame/list_name_space.py +0 -0
  273. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_frame/flowfile_frame/selectors.py +0 -0
  274. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_frame/flowfile_frame/series.py +0 -0
  275. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_frame/flowfile_frame/utils.py +0 -0
  276. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/__init__.py +0 -0
  277. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/configs.py +0 -0
  278. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/create/__init__.py +0 -0
  279. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/create/funcs.py +0 -0
  280. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/create/models.py +0 -0
  281. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/create/pl_types.py +0 -0
  282. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/create/read_excel_tables.py +0 -0
  283. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/create/utils.py +0 -0
  284. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/external_sources/__init__.py +0 -0
  285. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/external_sources/airbyte_sources/__init__.py +0 -0
  286. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/external_sources/airbyte_sources/cache_manager.py +0 -0
  287. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/external_sources/airbyte_sources/main.py +0 -0
  288. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/external_sources/airbyte_sources/models.py +0 -0
  289. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/external_sources/airbyte_sources/settings.py +0 -0
  290. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/external_sources/sql_source/__init__.py +0 -0
  291. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/external_sources/sql_source/main.py +0 -0
  292. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/external_sources/sql_source/models.py +0 -0
  293. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/flow_logger.py +0 -0
  294. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/funcs.py +0 -0
  295. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/main.py +0 -0
  296. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/models.py +0 -0
  297. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/polars_fuzzy_match/__init__.py +0 -0
  298. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/polars_fuzzy_match/matcher.py +0 -0
  299. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/polars_fuzzy_match/models.py +0 -0
  300. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/polars_fuzzy_match/pre_process.py +0 -0
  301. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/polars_fuzzy_match/process.py +0 -0
  302. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/polars_fuzzy_match/utils.py +0 -0
  303. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/process_manager.py +0 -0
  304. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/routes.py +0 -0
  305. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/secrets.py +0 -0
  306. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/spawner.py +0 -0
  307. {flowfile-0.3.3 → flowfile-0.3.3.1}/flowfile_worker/flowfile_worker/utils.py +0 -0
  308. {flowfile-0.3.3 → flowfile-0.3.3.1}/readme-pypi.md +0 -0
  309. {flowfile-0.3.3 → flowfile-0.3.3.1}/test_utils/__init__.py +0 -0
  310. {flowfile-0.3.3 → flowfile-0.3.3.1}/test_utils/postgres/__init__.py +0 -0
  311. {flowfile-0.3.3 → flowfile-0.3.3.1}/test_utils/postgres/commands.py +0 -0
  312. {flowfile-0.3.3 → flowfile-0.3.3.1}/test_utils/postgres/fixtures.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: Flowfile
3
- Version: 0.3.3
3
+ Version: 0.3.3.1
4
4
  Summary: Project combining flowfile core (backend) and flowfile_worker (compute offloader) and flowfile_frame (api)
5
5
  Author: Edward van Eechoud
6
6
  Author-email: evaneechoud@gmail.com
@@ -23,10 +23,11 @@ Requires-Dist: methodtools (>=0.4.7,<0.5.0)
23
23
  Requires-Dist: openpyxl (>=3.1.2,<3.2.0)
24
24
  Requires-Dist: passlib (>=1.7.4,<1.8.0)
25
25
  Requires-Dist: pendulum (==2.1.2) ; python_version < "3.12"
26
- Requires-Dist: polars (>1.8.2,<=1.25.2)
26
+ Requires-Dist: polars (>=1.8.2,<2.0.0) ; sys_platform != "win32"
27
+ Requires-Dist: polars (>=1.8.2,<=1.25.2) ; sys_platform == "win32"
27
28
  Requires-Dist: polars-distance (>=0.4.3,<0.5.0)
28
29
  Requires-Dist: polars-ds (>=0.6.0)
29
- Requires-Dist: polars-expr-transformer (>0.4.7.0)
30
+ Requires-Dist: polars-expr-transformer (>=0.4.9.0)
30
31
  Requires-Dist: polars-grouper (>=0.3.0,<0.4.0)
31
32
  Requires-Dist: polars_simed (>=0.3.4,<0.4.0)
32
33
  Requires-Dist: pyairbyte-flowfile (==0.20.2)
@@ -7,7 +7,7 @@ This package ties together the FlowFile ecosystem components:
7
7
  - flowfile_worker: Computation engine
8
8
  """
9
9
 
10
- __version__ = "0.3.1"
10
+ __version__ = "0.3.3.1"
11
11
 
12
12
  import os
13
13
  import logging
@@ -738,10 +738,9 @@ class FlowFrame:
738
738
  all_input_expr_objects: List[Expr] = []
739
739
  pure_polars_expr_strings_for_select: List[str] = []
740
740
  collected_raw_definitions: List[str] = []
741
- selected_col_names_for_native: List[str] = [] # For native node
741
+ selected_col_names_for_native: List[transform_schema.SelectInput] = [] # For native node
742
742
 
743
743
  can_use_native_node = True
744
-
745
744
  if len(columns_iterable) == 1 and isinstance(columns_iterable[0], str) and columns_iterable[0] == '*':
746
745
  effective_columns_iterable = [col(c_name) for c_name in self.columns]
747
746
  else:
@@ -752,15 +751,14 @@ class FlowFrame:
752
751
 
753
752
  if isinstance(expr_input, str):
754
753
  current_expr_obj = col(expr_input)
755
- selected_col_names_for_native.append(expr_input)
754
+ selected_col_names_for_native.append(transform_schema.SelectInput(old_name=expr_input))
756
755
  is_simple_col_for_native = True
757
- elif isinstance(expr_input, Column) and not expr_input._select_input.is_altered: # type: ignore
758
- selected_col_names_for_native.append(expr_input.column_name) # type: ignore
756
+ elif isinstance(expr_input, Column):
757
+ selected_col_names_for_native.append(expr_input.to_select_input())
759
758
  is_simple_col_for_native = True
760
- elif isinstance(expr_input, Selector): # Selectors imply Polars code path
759
+ elif isinstance(expr_input, Selector):
761
760
  can_use_native_node = False
762
- # current_expr_obj = expr_input # Already an Expr-like via selector
763
- elif not isinstance(expr_input, Expr): # Includes Column
761
+ elif not isinstance(expr_input, Expr):
764
762
  current_expr_obj = lit(expr_input)
765
763
 
766
764
  all_input_expr_objects.append(current_expr_obj) # type: ignore
@@ -772,20 +770,19 @@ class FlowFrame:
772
770
  collected_raw_definitions.append(raw_defs_str)
773
771
 
774
772
  if not is_simple_col_for_native and not isinstance(expr_input, Selector):
775
- can_use_native_node = False # Complex expressions require Polars code
773
+ can_use_native_node = False
776
774
  if collected_raw_definitions: # Has to use Polars code if there are definitions
777
775
  can_use_native_node = False
778
776
  if can_use_native_node:
779
- select_inputs_for_node = [transform_schema.SelectInput(old_name=name) for name in
780
- selected_col_names_for_native]
781
777
  existing_cols = self.columns
778
+ selected_col_names = {select_col.old_name for select_col in selected_col_names_for_native}
782
779
  dropped_columns = [transform_schema.SelectInput(c, keep=False) for c in existing_cols if
783
- c not in selected_col_names_for_native]
784
- select_inputs_for_node.extend(dropped_columns)
780
+ c not in selected_col_names]
781
+ selected_col_names_for_native.extend(dropped_columns)
785
782
  select_settings = input_schema.NodeSelect(
786
783
  flow_id=self.flow_graph.flow_id,
787
784
  node_id=new_node_id,
788
- select_input=select_inputs_for_node,
785
+ select_input=selected_col_names_for_native,
789
786
  keep_missing=False,
790
787
  pos_x=200,
791
788
  pos_y=100,
@@ -1,27 +1,43 @@
1
- # This file was auto-generated to provide type information for FlowFrame
2
- # DO NOT MODIFY THIS FILE MANUALLY
1
+ # Standard library imports
3
2
  import collections
4
- import typing
5
3
  import inspect
6
- from typing import List, Dict, Optional, Union, ForwardRef
7
- import polars as pl
8
- from polars.lazyframe.frame import *
9
- from polars._typing import SchemaDict
10
- from polars.type_aliases import ColumnNameOrSelector, FillNullStrategy
4
+ import os
5
+ import sys
6
+ import typing
7
+ from io import IOBase
8
+ from typing import List, Optional, ForwardRef
9
+ from collections.abc import Awaitable
11
10
 
11
+ # Third-party imports
12
+ import polars as pl
13
+ from polars._typing import * # Consider specifying needed imports
14
+ from polars._utils.async_ import _GeventDataFrameResult
15
+ from polars.dependencies import polars_cloud as pc
16
+ from polars.io.cloud import CredentialProviderFunction
17
+ from polars.lazyframe.frame import LazyGroupBy
18
+ from polars.type_aliases import (Schema, IntoExpr, ClosedInterval, Label, StartBy, RollingInterpolationMethod, IpcCompression, CompatLevel, SyncOnCloseMethod, ExplainFormat, EngineType, SerializationFormat, AsofJoinStrategy)
19
+
20
+ # Local application/library specific imports
12
21
  import flowfile_frame
13
- from flowfile_core.flowfile.flow_node.flow_node import FlowNode
14
22
  from flowfile_core.flowfile.FlowfileFlow import FlowGraph
23
+ from flowfile_core.flowfile.flow_node.flow_node import FlowNode
15
24
  from flowfile_frame import group_frame
16
- from flowfile_frame.expr import Expr, Column
17
- from flowfile_frame.selectors import Selector
25
+ from flowfile_frame.expr import Expr
26
+
27
+ # Conditional imports
28
+ if sys.version_info >= (3, 10):
29
+ pass # from typing import ParamSpec, Concatenate (if needed)
30
+ else:
31
+ from typing_extensions import Concatenate
18
32
 
19
33
  T = TypeVar('T')
34
+ P = typing.ParamSpec('P')
35
+ LazyFrameT = TypeVar('LazyFrameT', bound='LazyFrame')
20
36
  FlowFrameT = TypeVar('FlowFrameT', bound='FlowFrame')
21
- # Define NoneType to handle type hints with None
37
+ Self = TypeVar('Self', bound='FlowFrame')
22
38
  NoneType = type(None)
23
39
 
24
- # Module-level functions
40
+ # Module-level functions (example from your input)
25
41
  def can_be_expr(param: inspect.Parameter) -> bool: ...
26
42
  def generate_node_id() -> int: ...
27
43
  def get_method_name_from_code(code: str) -> str | None: ...
@@ -37,7 +53,7 @@ class FlowFrame:
37
53
  parent_node_id: Optional[int]
38
54
 
39
55
  # This special method determines how the object behaves in boolean contexts.
40
- def __bool__(self, ) -> Any: ...
56
+ def __bool__(self) -> Any: ...
41
57
 
42
58
  # This special method enables the 'in' operator to work with FlowFrame objects.
43
59
  def __contains__(self, key) -> Any: ...
@@ -49,7 +65,7 @@ class FlowFrame:
49
65
  def __gt__(self, other: Any) -> typing.NoReturn: ...
50
66
 
51
67
  # Initialize the FlowFrame with data and graph references.
52
- def __init__(self, data: Union[LazyFrame, Mapping, Sequence, ForwardRef('np.ndarray[Any, Any]'), ForwardRef('pa.Table'), ForwardRef('pd.DataFrame'), ForwardRef('ArrowArrayExportable'), ForwardRef('ArrowStreamExportable')]=None, schema: Union[Mapping, Sequence, NoneType]=None, schema_overrides: collections.abc.Mapping[str, typing.Union[ForwardRef('DataTypeClass'), ForwardRef('DataType')]] | None=None, strict: bool=True, orient: Union[Literal, NoneType]=None, infer_schema_length: int | None=100, nan_to_null: bool=False, flow_graph=None, node_id=None, parent_node_id=None) -> Any: ...
68
+ def __init__(self, data: typing.Union[LazyFrame, collections.abc.Mapping[str, typing.Union[collections.abc.Sequence[object], collections.abc.Mapping[str, collections.abc.Sequence[object]], ForwardRef('Series')]], collections.abc.Sequence[typing.Any], ForwardRef('np.ndarray[Any, Any]'), ForwardRef('pa.Table'), ForwardRef('pd.DataFrame'), ForwardRef('ArrowArrayExportable'), ForwardRef('ArrowStreamExportable')]=None, schema: typing.Union[collections.abc.Mapping[str, typing.Union[ForwardRef('DataTypeClass'), ForwardRef('DataType'), type[int], type[float], type[bool], type[str], type['date'], type['time'], type['datetime'], type['timedelta'], type[list[typing.Any]], type[tuple[typing.Any, ...]], type[bytes], type[object], type['Decimal'], type[None], NoneType]], collections.abc.Sequence[typing.Union[str, tuple[str, typing.Union[ForwardRef('DataTypeClass'), ForwardRef('DataType'), type[int], type[float], type[bool], type[str], type['date'], type['time'], type['datetime'], type['timedelta'], type[list[typing.Any]], type[tuple[typing.Any, ...]], type[bytes], type[object], type['Decimal'], type[None], NoneType]]]], NoneType]=None, schema_overrides: collections.abc.Mapping[str, typing.Union[ForwardRef('DataTypeClass'), ForwardRef('DataType')]] | None=None, strict: bool=True, orient: typing.Optional[typing.Literal['col', 'row']]=None, infer_schema_length: int | None=100, nan_to_null: bool=False, flow_graph=None, node_id=None, parent_node_id=None) -> None: ...
53
69
 
54
70
  def __le__(self, other: Any) -> typing.NoReturn: ...
55
71
 
@@ -58,16 +74,16 @@ class FlowFrame:
58
74
  def __ne__(self, other: object) -> typing.NoReturn: ...
59
75
 
60
76
  # Create a new FlowFrame instance.
61
- def __new__(self, cls, data: Union[LazyFrame, Mapping, Sequence, ForwardRef('np.ndarray[Any, Any]'), ForwardRef('pa.Table'), ForwardRef('pd.DataFrame'), ForwardRef('ArrowArrayExportable'), ForwardRef('ArrowStreamExportable')]=None, schema: Union[Mapping, Sequence, NoneType]=None, schema_overrides: collections.abc.Mapping[str, typing.Union[ForwardRef('DataTypeClass'), ForwardRef('DataType')]] | None=None, strict: bool=True, orient: Union[Literal, NoneType]=None, infer_schema_length: int | None=100, nan_to_null: bool=False, flow_graph=None, node_id=None, parent_node_id=None) -> Any: ...
77
+ def __new__(cls, data: typing.Union[LazyFrame, collections.abc.Mapping[str, typing.Union[collections.abc.Sequence[object], collections.abc.Mapping[str, collections.abc.Sequence[object]], ForwardRef('Series')]], collections.abc.Sequence[typing.Any], ForwardRef('np.ndarray[Any, Any]'), ForwardRef('pa.Table'), ForwardRef('pd.DataFrame'), ForwardRef('ArrowArrayExportable'), ForwardRef('ArrowStreamExportable')]=None, schema: typing.Union[collections.abc.Mapping[str, typing.Union[ForwardRef('DataTypeClass'), ForwardRef('DataType'), type[int], type[float], type[bool], type[str], type['date'], type['time'], type['datetime'], type['timedelta'], type[list[typing.Any]], type[tuple[typing.Any, ...]], type[bytes], type[object], type['Decimal'], type[None], NoneType]], collections.abc.Sequence[typing.Union[str, tuple[str, typing.Union[ForwardRef('DataTypeClass'), ForwardRef('DataType'), type[int], type[float], type[bool], type[str], type['date'], type['time'], type['datetime'], type['timedelta'], type[list[typing.Any]], type[tuple[typing.Any, ...]], type[bytes], type[object], type['Decimal'], type[None], NoneType]]]], NoneType]=None, schema_overrides: collections.abc.Mapping[str, typing.Union[ForwardRef('DataTypeClass'), ForwardRef('DataType')]] | None=None, strict: bool=True, orient: typing.Optional[typing.Literal['col', 'row']]=None, infer_schema_length: int | None=100, nan_to_null: bool=False, flow_graph=None, node_id=None, parent_node_id=None) -> Self: ...
62
78
 
63
- def __repr__(self, ) -> Any: ...
79
+ def __repr__(self) -> Any: ...
64
80
 
65
81
  # Helper method to add a connection between nodes
66
82
  def _add_connection(self, from_id, to_id, input_type: typing.Literal['main', 'left', 'right']='main') -> Any: ...
67
83
 
68
84
  def _add_number_of_records(self, new_node_id: int, description: str=None) -> 'FlowFrame': ...
69
85
 
70
- def _add_polars_code(self, new_node_id: int, code: str, description: str=None, depending_on_ids: Union[List, NoneType]=None, convertable_to_code: bool=True, method_name: str=None, polars_expr: Union[Expr, List, NoneType]=None, group_expr: Union[Expr, List, NoneType]=None, kwargs_expr: Union[Dict, NoneType]=None, group_kwargs: Union[Dict, NoneType]=None) -> Any: ...
86
+ def _add_polars_code(self, new_node_id: int, code: str, depending_on_ids: typing.Optional[typing.List[str]]=None, convertable_to_code: bool=True, method_name: str=None, polars_expr: typing.Union[flowfile_frame.expr.Expr, typing.List[flowfile_frame.expr.Expr], NoneType]=None, group_expr: typing.Union[flowfile_frame.expr.Expr, typing.List[flowfile_frame.expr.Expr], NoneType]=None, kwargs_expr: typing.Optional[typing.Dict]=None, group_kwargs: typing.Optional[typing.Dict]=None, description: str=None) -> Any: ...
71
87
 
72
88
  def _comparison_error(self, operator: str) -> typing.NoReturn: ...
73
89
 
@@ -75,7 +91,7 @@ class FlowFrame:
75
91
  def _create_child_frame(self, new_node_id) -> 'FlowFrame': ...
76
92
 
77
93
  # Detect if the expression is a cum_count operation and use record_id if possible.
78
- def _detect_cum_count_record_id(self, expr: Any, new_node_id: int, description: Union[str, NoneType]=None) -> 'FlowFrame': ...
94
+ def _detect_cum_count_record_id(self, expr: Any, new_node_id: int, description: typing.Optional[str]=None) -> 'FlowFrame': ...
79
95
 
80
96
  # Generates the `input_df.sort(...)` Polars code string using pure expression strings.
81
97
  def _generate_sort_polars_code(self, pure_sort_expr_strs: typing.List[str], descending_values: typing.List[bool], nulls_last_values: typing.List[bool], multithreaded: bool, maintain_order: bool) -> str: ...
@@ -83,21 +99,21 @@ class FlowFrame:
83
99
  def _with_flowfile_formula(self, flowfile_formula: str, output_column_name, description: str=None) -> 'FlowFrame': ...
84
100
 
85
101
  # Approximate count of unique values.
86
- def approx_n_unique(self, description: Optional[str] = None) -> 'FlowFrame': ...
102
+ def approx_n_unique(self, description: Optional[str] = None) -> LazyFrame: ...
87
103
 
88
104
  # Return the `k` smallest rows.
89
- def bottom_k(self, k: int, by: IntoExpr | Iterable[IntoExpr], reverse: bool | Sequence[bool]=False, description: Optional[str] = None) -> 'FlowFrame': ...
105
+ def bottom_k(self, k: int, by: IntoExpr | Iterable[IntoExpr], reverse: bool | Sequence[bool]=False, description: Optional[str] = None) -> LazyFrame: ...
90
106
 
91
107
  def cache(self, description: Optional[str] = None) -> 'FlowFrame': ...
92
108
 
93
109
  # Cast LazyFrame column(s) to the specified dtype(s).
94
- def cast(self, dtypes: Mapping[ColumnNameOrSelector | PolarsDataType, PolarsDataType | PythonDataType] | PolarsDataType, strict: bool=True, description: Optional[str] = None) -> 'FlowFrame': ...
110
+ def cast(self, dtypes: Mapping[ColumnNameOrSelector | PolarsDataType, PolarsDataType | PythonDataType] | PolarsDataType, strict: bool=True, description: Optional[str] = None) -> LazyFrame: ...
95
111
 
96
112
  # Create an empty copy of the current LazyFrame, with zero to 'n' rows.
97
- def clear(self, n: int=0, description: Optional[str] = None) -> 'FlowFrame': ...
113
+ def clear(self, n: int=0, description: Optional[str] = None) -> LazyFrame: ...
98
114
 
99
115
  # Create a copy of this LazyFrame.
100
- def clone(self, description: Optional[str] = None) -> 'FlowFrame': ...
116
+ def clone(self, description: Optional[str] = None) -> LazyFrame: ...
101
117
 
102
118
  # Collect lazy data into memory.
103
119
  def collect(self, *args, **kwargs) -> Any: ...
@@ -106,55 +122,63 @@ class FlowFrame:
106
122
  def collect_async(self, gevent: bool=False, type_coercion: bool=True, _type_check: bool=True, predicate_pushdown: bool=True, projection_pushdown: bool=True, simplify_expression: bool=True, no_optimization: bool=False, slice_pushdown: bool=True, comm_subplan_elim: bool=True, comm_subexpr_elim: bool=True, cluster_with_columns: bool=True, collapse_joins: bool=True, engine: EngineType='auto', _check_order: bool=True) -> Awaitable[DataFrame] | _GeventDataFrameResult[DataFrame]: ...
107
123
 
108
124
  # Resolve the schema of this LazyFrame.
109
- def collect_schema(self, ) -> Schema: ...
125
+ def collect_schema(self) -> Schema: ...
126
+
127
+ # Get the column names.
128
+ @property
129
+ def columns(self) -> typing.List[str]: ...
110
130
 
111
131
  # Combine multiple FlowFrames into a single FlowFrame.
112
- def concat(self, other: Union[ForwardRef('FlowFrame'), List], how: str='vertical', rechunk: bool=False, parallel: bool=True, description: str=None) -> 'FlowFrame': ...
132
+ def concat(self, other: typing.Union[ForwardRef('FlowFrame'), typing.List[ForwardRef('FlowFrame')]], how: str='vertical', rechunk: bool=False, parallel: bool=True, description: str=None) -> 'FlowFrame': ...
113
133
 
114
134
  # Return the number of non-null elements for each column.
115
- def count(self, description: Optional[str] = None) -> 'FlowFrame': ...
135
+ def count(self, description: Optional[str] = None) -> LazyFrame: ...
116
136
 
117
137
  # Simple naive implementation of creating the frame from any type. It converts the data to a polars frame,
118
- def create_from_any_type(self, data: Union[Mapping, Sequence, ForwardRef('np.ndarray[Any, Any]'), ForwardRef('pa.Table'), ForwardRef('pd.DataFrame'), ForwardRef('ArrowArrayExportable'), ForwardRef('ArrowStreamExportable')]=None, schema: Union[Mapping, Sequence, NoneType]=None, schema_overrides: collections.abc.Mapping[str, typing.Union[ForwardRef('DataTypeClass'), ForwardRef('DataType')]] | None=None, strict: bool=True, orient: Union[Literal, NoneType]=None, infer_schema_length: int | None=100, nan_to_null: bool=False, flow_graph=None, node_id=None, parent_node_id=None, description: Optional[str] = None) -> 'FlowFrame': ...
138
+ def create_from_any_type(self, data: typing.Union[collections.abc.Mapping[str, typing.Union[collections.abc.Sequence[object], collections.abc.Mapping[str, collections.abc.Sequence[object]], ForwardRef('Series')]], collections.abc.Sequence[typing.Any], ForwardRef('np.ndarray[Any, Any]'), ForwardRef('pa.Table'), ForwardRef('pd.DataFrame'), ForwardRef('ArrowArrayExportable'), ForwardRef('ArrowStreamExportable')]=None, schema: typing.Union[collections.abc.Mapping[str, typing.Union[ForwardRef('DataTypeClass'), ForwardRef('DataType'), type[int], type[float], type[bool], type[str], type['date'], type['time'], type['datetime'], type['timedelta'], type[list[typing.Any]], type[tuple[typing.Any, ...]], type[bytes], type[object], type['Decimal'], type[None], NoneType]], collections.abc.Sequence[typing.Union[str, tuple[str, typing.Union[ForwardRef('DataTypeClass'), ForwardRef('DataType'), type[int], type[float], type[bool], type[str], type['date'], type['time'], type['datetime'], type['timedelta'], type[list[typing.Any]], type[tuple[typing.Any, ...]], type[bytes], type[object], type['Decimal'], type[None], NoneType]]]], NoneType]=None, schema_overrides: collections.abc.Mapping[str, typing.Union[ForwardRef('DataTypeClass'), ForwardRef('DataType')]] | None=None, strict: bool=True, orient: typing.Optional[typing.Literal['col', 'row']]=None, infer_schema_length: int | None=100, nan_to_null: bool=False, flow_graph=None, node_id=None, parent_node_id=None, description: Optional[str] = None) -> Any: ...
119
139
 
120
140
  # Creates a summary of statistics for a LazyFrame, returning a DataFrame.
121
141
  def describe(self, percentiles: Sequence[float] | float | None=(0.25, 0.5, 0.75), interpolation: RollingInterpolationMethod='nearest') -> DataFrame: ...
122
142
 
123
143
  # Read a logical plan from a file to construct a LazyFrame.
124
- def deserialize(self, source: str | Path | IOBase, format: SerializationFormat='binary', description: Optional[str] = None) -> 'FlowFrame': ...
144
+ def deserialize(self, source: str | Path | IOBase, format: SerializationFormat='binary', description: Optional[str] = None) -> LazyFrame: ...
125
145
 
126
146
  # Remove columns from the DataFrame.
127
- def drop(self, *columns, strict: bool=True, description: Optional[str] = None) -> 'FlowFrame': ...
147
+ def drop(self, *columns, strict: bool=True, description: Optional[str] = None) -> LazyFrame: ...
128
148
 
129
149
  # Drop all rows that contain one or more NaN values.
130
- def drop_nans(self, subset: ColumnNameOrSelector | Collection[ColumnNameOrSelector] | None=None, description: Optional[str] = None) -> 'FlowFrame': ...
150
+ def drop_nans(self, subset: ColumnNameOrSelector | Collection[ColumnNameOrSelector] | None=None, description: Optional[str] = None) -> LazyFrame: ...
131
151
 
132
152
  # Drop all rows that contain one or more null values.
133
- def drop_nulls(self, subset: ColumnNameOrSelector | Collection[ColumnNameOrSelector] | None=None, description: Optional[str] = None) -> 'FlowFrame': ...
153
+ def drop_nulls(self, subset: ColumnNameOrSelector | Collection[ColumnNameOrSelector] | None=None, description: Optional[str] = None) -> LazyFrame: ...
154
+
155
+ # Get the column data types.
156
+ @property
157
+ def dtypes(self) -> typing.List[pl.classes.DataType]: ...
134
158
 
135
159
  # Create a string representation of the query plan.
136
160
  def explain(self, format: ExplainFormat='plain', optimized: bool=True, type_coercion: bool=True, _type_check: bool=True, predicate_pushdown: bool=True, projection_pushdown: bool=True, simplify_expression: bool=True, slice_pushdown: bool=True, comm_subplan_elim: bool=True, comm_subexpr_elim: bool=True, cluster_with_columns: bool=True, collapse_joins: bool=True, streaming: bool=False, engine: EngineType='auto', tree_format: bool | None=None, _check_order: bool=True) -> str: ...
137
161
 
138
162
  # Explode the dataframe to long format by exploding the given columns.
139
- def explode(self, columns: Union[str, Column, Iterable], *more_columns, description: str=None) -> 'FlowFrame': ...
163
+ def explode(self, columns: typing.Union[str, flowfile_frame.expr.Column, typing.Iterable[str | flowfile_frame.expr.Column]], *more_columns, description: str=None) -> 'FlowFrame': ...
140
164
 
141
165
  # Collect a small number of rows for debugging purposes.
142
166
  def fetch(self, n_rows: int=500, type_coercion: bool=True, _type_check: bool=True, predicate_pushdown: bool=True, projection_pushdown: bool=True, simplify_expression: bool=True, no_optimization: bool=False, slice_pushdown: bool=True, comm_subplan_elim: bool=True, comm_subexpr_elim: bool=True, cluster_with_columns: bool=True, collapse_joins: bool=True) -> DataFrame: ...
143
167
 
144
168
  # Fill floating point NaN values.
145
- def fill_nan(self, value: int | float | Expr | None, description: Optional[str] = None) -> 'FlowFrame': ...
169
+ def fill_nan(self, value: int | float | Expr | None, description: Optional[str] = None) -> LazyFrame: ...
146
170
 
147
171
  # Fill null values using the specified value or strategy.
148
- def fill_null(self, value: Any | Expr | None=None, strategy: FillNullStrategy | None=None, limit: int | None=None, matches_supertype: bool=True, description: Optional[str] = None) -> 'FlowFrame': ...
172
+ def fill_null(self, value: Any | Expr | None=None, strategy: FillNullStrategy | None=None, limit: int | None=None, matches_supertype: bool=True, description: Optional[str] = None) -> LazyFrame: ...
149
173
 
150
174
  # Filter rows based on a predicate.
151
- def filter(self, *predicates, flowfile_formula: Union[str, NoneType]=None, description: Union[str, NoneType]=None, **constraints) -> 'FlowFrame': ...
175
+ def filter(self, *predicates, flowfile_formula: typing.Optional[str]=None, description: typing.Optional[str]=None, **constraints) -> 'FlowFrame': ...
152
176
 
153
177
  # Get the first row of the DataFrame.
154
- def first(self, description: Optional[str] = None) -> 'FlowFrame': ...
178
+ def first(self, description: Optional[str] = None) -> LazyFrame: ...
155
179
 
156
180
  # Take every nth row in the LazyFrame and return as a new LazyFrame.
157
- def gather_every(self, n: int, offset: int=0, description: Optional[str] = None) -> 'FlowFrame': ...
181
+ def gather_every(self, n: int, offset: int=0, description: Optional[str] = None) -> LazyFrame: ...
158
182
 
159
183
  def get_node_settings(self, description: Optional[str] = None) -> FlowNode: ...
160
184
 
@@ -164,57 +188,57 @@ class FlowFrame:
164
188
  # Group based on a time value (or index value of type Int32, Int64).
165
189
  def group_by_dynamic(self, index_column: IntoExpr, every: str | timedelta, period: str | timedelta | None=None, offset: str | timedelta | None=None, include_boundaries: bool=False, closed: ClosedInterval='left', label: Label='left', group_by: IntoExpr | Iterable[IntoExpr] | None=None, start_by: StartBy='window', description: Optional[str] = None) -> LazyGroupBy: ...
166
190
 
167
- def head(self, n: int, description: str=None) -> 'FlowFrame': ...
191
+ def head(self, n: int, description: str=None) -> Any: ...
168
192
 
169
193
  # Inspect a node in the computation graph.
170
- def inspect(self, fmt: str='{}', description: Optional[str] = None) -> 'FlowFrame': ...
194
+ def inspect(self, fmt: str='{}', description: Optional[str] = None) -> LazyFrame: ...
171
195
 
172
196
  # Interpolate intermediate values. The interpolation method is linear.
173
- def interpolate(self, description: Optional[str] = None) -> 'FlowFrame': ...
197
+ def interpolate(self, description: Optional[str] = None) -> LazyFrame: ...
174
198
 
175
199
  # Add a join operation to the Logical Plan.
176
- def join(self, other, on: Union[List, str, Column]=None, how: str='inner', left_on: Union[List, str, Column]=None, right_on: Union[List, str, Column]=None, suffix: str='_right', validate: str=None, nulls_equal: bool=False, coalesce: bool=None, maintain_order: typing.Literal[None, 'left', 'right', 'left_right', 'right_left']=None, description: str=None) -> 'FlowFrame': ...
200
+ def join(self, other, on: typing.Union[typing.List[str | flowfile_frame.expr.Column], str, flowfile_frame.expr.Column]=None, how: str='inner', left_on: typing.Union[typing.List[str | flowfile_frame.expr.Column], str, flowfile_frame.expr.Column]=None, right_on: typing.Union[typing.List[str | flowfile_frame.expr.Column], str, flowfile_frame.expr.Column]=None, suffix: str='_right', validate: str=None, nulls_equal: bool=False, coalesce: bool=None, maintain_order: typing.Literal[None, 'left', 'right', 'left_right', 'right_left']=None, description: str=None) -> Any: ...
177
201
 
178
202
  # Perform an asof join.
179
- def join_asof(self, other: LazyFrame, left_on: str | None | Expr=None, right_on: str | None | Expr=None, on: str | None | Expr=None, by_left: str | Sequence[str] | None=None, by_right: str | Sequence[str] | None=None, by: str | Sequence[str] | None=None, strategy: AsofJoinStrategy='backward', suffix: str='_right', tolerance: str | int | float | timedelta | None=None, allow_parallel: bool=True, force_parallel: bool=False, coalesce: bool=True, allow_exact_matches: bool=True, check_sortedness: bool=True, description: Optional[str] = None) -> 'FlowFrame': ...
203
+ def join_asof(self, other: LazyFrame, left_on: str | None | Expr=None, right_on: str | None | Expr=None, on: str | None | Expr=None, by_left: str | Sequence[str] | None=None, by_right: str | Sequence[str] | None=None, by: str | Sequence[str] | None=None, strategy: AsofJoinStrategy='backward', suffix: str='_right', tolerance: str | int | float | timedelta | None=None, allow_parallel: bool=True, force_parallel: bool=False, coalesce: bool=True, allow_exact_matches: bool=True, check_sortedness: bool=True, description: Optional[str] = None) -> LazyFrame: ...
180
204
 
181
205
  # Perform a join based on one or multiple (in)equality predicates.
182
- def join_where(self, other: LazyFrame, *predicates, suffix: str='_right', description: Optional[str] = None) -> 'FlowFrame': ...
206
+ def join_where(self, other: LazyFrame, *predicates, suffix: str='_right', description: Optional[str] = None) -> LazyFrame: ...
183
207
 
184
208
  # Get the last row of the DataFrame.
185
- def last(self, description: Optional[str] = None) -> 'FlowFrame': ...
209
+ def last(self, description: Optional[str] = None) -> LazyFrame: ...
186
210
 
187
211
  # Return lazy representation, i.e. itself.
188
- def lazy(self, description: Optional[str] = None) -> 'FlowFrame': ...
212
+ def lazy(self, description: Optional[str] = None) -> LazyFrame: ...
189
213
 
190
- def limit(self, n: int, description: str=None) -> 'FlowFrame': ...
214
+ def limit(self, n: int, description: str=None) -> Any: ...
191
215
 
192
216
  # Apply a custom function.
193
- def map_batches(self, function: Callable[[DataFrame], DataFrame], predicate_pushdown: bool=True, projection_pushdown: bool=True, slice_pushdown: bool=True, no_optimizations: bool=False, schema: None | SchemaDict=None, validate_output_schema: bool=True, streamable: bool=False, description: Optional[str] = None) -> 'FlowFrame': ...
217
+ def map_batches(self, function: Callable[[DataFrame], DataFrame], predicate_pushdown: bool=True, projection_pushdown: bool=True, slice_pushdown: bool=True, no_optimizations: bool=False, schema: None | SchemaDict=None, validate_output_schema: bool=True, streamable: bool=False, description: Optional[str] = None) -> LazyFrame: ...
194
218
 
195
219
  # Aggregate the columns in the LazyFrame to their maximum value.
196
- def max(self, description: Optional[str] = None) -> 'FlowFrame': ...
220
+ def max(self, description: Optional[str] = None) -> LazyFrame: ...
197
221
 
198
222
  # Aggregate the columns in the LazyFrame to their mean value.
199
- def mean(self, description: Optional[str] = None) -> 'FlowFrame': ...
223
+ def mean(self, description: Optional[str] = None) -> LazyFrame: ...
200
224
 
201
225
  # Aggregate the columns in the LazyFrame to their median value.
202
- def median(self, description: Optional[str] = None) -> 'FlowFrame': ...
226
+ def median(self, description: Optional[str] = None) -> LazyFrame: ...
203
227
 
204
228
  # Unpivot a DataFrame from wide to long format.
205
- def melt(self, id_vars: ColumnNameOrSelector | Sequence[ColumnNameOrSelector] | None=None, value_vars: ColumnNameOrSelector | Sequence[ColumnNameOrSelector] | None=None, variable_name: str | None=None, value_name: str | None=None, streamable: bool=True, description: Optional[str] = None) -> 'FlowFrame': ...
229
+ def melt(self, id_vars: ColumnNameOrSelector | Sequence[ColumnNameOrSelector] | None=None, value_vars: ColumnNameOrSelector | Sequence[ColumnNameOrSelector] | None=None, variable_name: str | None=None, value_name: str | None=None, streamable: bool=True, description: Optional[str] = None) -> LazyFrame: ...
206
230
 
207
231
  # Take two sorted DataFrames and merge them by the sorted key.
208
- def merge_sorted(self, other: LazyFrame, key: str, description: Optional[str] = None) -> 'FlowFrame': ...
232
+ def merge_sorted(self, other: LazyFrame, key: str, description: Optional[str] = None) -> LazyFrame: ...
209
233
 
210
234
  # Aggregate the columns in the LazyFrame to their minimum value.
211
- def min(self, description: Optional[str] = None) -> 'FlowFrame': ...
235
+ def min(self, description: Optional[str] = None) -> LazyFrame: ...
212
236
 
213
237
  # Aggregate the columns in the LazyFrame as the sum of their null value count.
214
- def null_count(self, description: Optional[str] = None) -> 'FlowFrame': ...
238
+ def null_count(self, description: Optional[str] = None) -> LazyFrame: ...
215
239
 
216
240
  # Offers a structured way to apply a sequence of user-defined functions (UDFs).
217
- def pipe(self, function: Callable[Concatenate[LazyFrame, P], T], *args, **kwargs) -> T: ...
241
+ def pipe(self, function: Callable[Concatenate[LazyFrame, P], T], *args, description: Optional[str] = None, **kwargs) -> T: ...
218
242
 
219
243
  # Pivot a DataFrame from long to wide format.
220
244
  def pivot(self, on: str | list[str], index: str | list[str] | None=None, values: str | list[str] | None=None, aggregate_function: str | None='first', maintain_order: bool=True, sort_columns: bool=False, separator: str='_', description: str=None) -> 'FlowFrame': ...
@@ -223,40 +247,44 @@ class FlowFrame:
223
247
  def profile(self, type_coercion: bool=True, _type_check: bool=True, predicate_pushdown: bool=True, projection_pushdown: bool=True, simplify_expression: bool=True, no_optimization: bool=False, slice_pushdown: bool=True, comm_subplan_elim: bool=True, comm_subexpr_elim: bool=True, cluster_with_columns: bool=True, collapse_joins: bool=True, show_plot: bool=False, truncate_nodes: int=0, figsize: tuple[int, int]=(18, 8), engine: EngineType='auto', _check_order: bool=True, **_kwargs) -> tuple[DataFrame, DataFrame]: ...
224
248
 
225
249
  # Aggregate the columns in the LazyFrame to their quantile value.
226
- def quantile(self, quantile: float | Expr, interpolation: RollingInterpolationMethod='nearest', description: Optional[str] = None) -> 'FlowFrame': ...
250
+ def quantile(self, quantile: float | Expr, interpolation: RollingInterpolationMethod='nearest', description: Optional[str] = None) -> LazyFrame: ...
227
251
 
228
252
  # Run a query remotely on Polars Cloud.
229
- def remote(self, context: pc.ComputeContext | None=None, plan_type: pc._typing.PlanTypePreference='dot', description: Optional[str] = None) -> 'FlowFrame': ...
253
+ def remote(self, context: pc.ComputeContext | None=None, plan_type: pc._typing.PlanTypePreference='dot', description: Optional[str] = None) -> pc.LazyFrameExt: ...
230
254
 
231
255
  # Remove rows, dropping those that match the given predicate expression(s).
232
- def remove(self, *predicates, **constraints) -> 'FlowFrame': ...
256
+ def remove(self, *predicates, description: Optional[str] = None, **constraints) -> LazyFrame: ...
233
257
 
234
258
  # Rename column names.
235
- def rename(self, mapping: dict[str, str] | Callable[[str], str], strict: bool=True, description: Optional[str] = None) -> 'FlowFrame': ...
259
+ def rename(self, mapping: dict[str, str] | Callable[[str], str], strict: bool=True, description: Optional[str] = None) -> LazyFrame: ...
236
260
 
237
261
  # Reverse the DataFrame.
238
- def reverse(self, description: Optional[str] = None) -> 'FlowFrame': ...
262
+ def reverse(self, description: Optional[str] = None) -> LazyFrame: ...
239
263
 
240
264
  # Create rolling groups based on a temporal or integer column.
241
265
  def rolling(self, index_column: IntoExpr, period: str | timedelta, offset: str | timedelta | None=None, closed: ClosedInterval='right', group_by: IntoExpr | Iterable[IntoExpr] | None=None, description: Optional[str] = None) -> LazyGroupBy: ...
242
266
 
243
267
  # Save the graph
244
- def save_graph(self, file_path: str, auto_arrange: bool=True, description: Optional[str] = None) -> 'FlowFrame': ...
268
+ def save_graph(self, file_path: str, auto_arrange: bool=True, description: Optional[str] = None) -> Any: ...
269
+
270
+ # Get an ordered mapping of column names to their data type.
271
+ @property
272
+ def schema(self) -> pl.Schema: ...
245
273
 
246
274
  # Select columns from the frame.
247
- def select(self, *columns, description: Union[str, NoneType]=None) -> 'FlowFrame': ...
275
+ def select(self, *columns, description: typing.Optional[str]=None) -> 'FlowFrame': ...
248
276
 
249
277
  # Select columns from this LazyFrame.
250
- def select_seq(self, *exprs, **named_exprs) -> 'FlowFrame': ...
278
+ def select_seq(self, *exprs, description: Optional[str] = None, **named_exprs) -> LazyFrame: ...
251
279
 
252
280
  # Serialize the logical plan of this LazyFrame to a file or string in JSON format.
253
281
  def serialize(self, file: IOBase | str | Path | None=None, format: SerializationFormat='binary', description: Optional[str] = None) -> bytes | str | None: ...
254
282
 
255
283
  # Flag a column as sorted.
256
- def set_sorted(self, column: str, descending: bool=False, description: Optional[str] = None) -> 'FlowFrame': ...
284
+ def set_sorted(self, column: str, descending: bool=False, description: Optional[str] = None) -> LazyFrame: ...
257
285
 
258
286
  # Shift values by the given number of indices.
259
- def shift(self, n: int | IntoExprColumn=1, fill_value: IntoExpr | None=None, description: Optional[str] = None) -> 'FlowFrame': ...
287
+ def shift(self, n: int | IntoExprColumn=1, fill_value: IntoExpr | None=None, description: Optional[str] = None) -> LazyFrame: ...
260
288
 
261
289
  # Show a plot of the query plan.
262
290
  def show_graph(self, optimized: bool=True, show: bool=True, output_path: str | Path | None=None, raw_output: bool=False, figsize: tuple[float, float]=(16.0, 12.0), type_coercion: bool=True, _type_check: bool=True, predicate_pushdown: bool=True, projection_pushdown: bool=True, simplify_expression: bool=True, slice_pushdown: bool=True, comm_subplan_elim: bool=True, comm_subexpr_elim: bool=True, cluster_with_columns: bool=True, collapse_joins: bool=True, streaming: bool=False, engine: EngineType='auto', _check_order: bool=True) -> str | None: ...
@@ -265,72 +293,76 @@ class FlowFrame:
265
293
  def sink_csv(self, file: str, *args, separator: str=',', encoding: str='utf-8', description: str=None) -> 'FlowFrame': ...
266
294
 
267
295
  # Evaluate the query in streaming mode and write to an IPC file.
268
- def sink_ipc(self, path: str | Path, compression: IpcCompression | None='zstd', compat_level: CompatLevel | None=None, maintain_order: bool=True, type_coercion: bool=True, _type_check: bool=True, predicate_pushdown: bool=True, projection_pushdown: bool=True, simplify_expression: bool=True, slice_pushdown: bool=True, collapse_joins: bool=True, no_optimization: bool=False, storage_options: dict[str, Any] | None=None, credential_provider: CredentialProviderFunction | Literal['auto'] | None='auto', retries: int=2, sync_on_close: SyncOnCloseMethod | None=None, mkdir: bool=False, lazy: bool=False, engine: EngineType='auto', description: Optional[str] = None) -> 'FlowFrame': ...
296
+ def sink_ipc(self, path: str | Path, compression: IpcCompression | None='zstd', compat_level: CompatLevel | None=None, maintain_order: bool=True, type_coercion: bool=True, _type_check: bool=True, predicate_pushdown: bool=True, projection_pushdown: bool=True, simplify_expression: bool=True, slice_pushdown: bool=True, collapse_joins: bool=True, no_optimization: bool=False, storage_options: dict[str, Any] | None=None, credential_provider: CredentialProviderFunction | Literal['auto'] | None='auto', retries: int=2, sync_on_close: SyncOnCloseMethod | None=None, mkdir: bool=False, lazy: bool=False, engine: EngineType='auto', description: Optional[str] = None) -> LazyFrame | None: ...
269
297
 
270
298
  # Evaluate the query in streaming mode and write to an NDJSON file.
271
- def sink_ndjson(self, path: str | Path, maintain_order: bool=True, type_coercion: bool=True, _type_check: bool=True, predicate_pushdown: bool=True, projection_pushdown: bool=True, simplify_expression: bool=True, slice_pushdown: bool=True, collapse_joins: bool=True, no_optimization: bool=False, storage_options: dict[str, Any] | None=None, credential_provider: CredentialProviderFunction | Literal['auto'] | None='auto', retries: int=2, sync_on_close: SyncOnCloseMethod | None=None, mkdir: bool=False, lazy: bool=False, engine: EngineType='auto', description: Optional[str] = None) -> 'FlowFrame': ...
299
+ def sink_ndjson(self, path: str | Path, maintain_order: bool=True, type_coercion: bool=True, _type_check: bool=True, predicate_pushdown: bool=True, projection_pushdown: bool=True, simplify_expression: bool=True, slice_pushdown: bool=True, collapse_joins: bool=True, no_optimization: bool=False, storage_options: dict[str, Any] | None=None, credential_provider: CredentialProviderFunction | Literal['auto'] | None='auto', retries: int=2, sync_on_close: SyncOnCloseMethod | None=None, mkdir: bool=False, lazy: bool=False, engine: EngineType='auto', description: Optional[str] = None) -> LazyFrame | None: ...
272
300
 
273
301
  # Evaluate the query in streaming mode and write to a Parquet file.
274
- def sink_parquet(self, path: str | Path, compression: str='zstd', compression_level: int | None=None, statistics: bool | str | dict[str, bool]=True, row_group_size: int | None=None, data_page_size: int | None=None, maintain_order: bool=True, type_coercion: bool=True, _type_check: bool=True, predicate_pushdown: bool=True, projection_pushdown: bool=True, simplify_expression: bool=True, slice_pushdown: bool=True, collapse_joins: bool=True, no_optimization: bool=False, storage_options: dict[str, Any] | None=None, credential_provider: CredentialProviderFunction | Literal['auto'] | None='auto', retries: int=2, sync_on_close: SyncOnCloseMethod | None=None, mkdir: bool=False, lazy: bool=False, engine: EngineType='auto', description: Optional[str] = None) -> 'FlowFrame': ...
302
+ def sink_parquet(self, path: str | Path, compression: str='zstd', compression_level: int | None=None, statistics: bool | str | dict[str, bool]=True, row_group_size: int | None=None, data_page_size: int | None=None, maintain_order: bool=True, type_coercion: bool=True, _type_check: bool=True, predicate_pushdown: bool=True, projection_pushdown: bool=True, simplify_expression: bool=True, slice_pushdown: bool=True, collapse_joins: bool=True, no_optimization: bool=False, storage_options: dict[str, Any] | None=None, credential_provider: CredentialProviderFunction | Literal['auto'] | None='auto', retries: int=2, sync_on_close: SyncOnCloseMethod | None=None, mkdir: bool=False, lazy: bool=False, engine: EngineType='auto', description: Optional[str] = None) -> LazyFrame | None: ...
275
303
 
276
304
  # Get a slice of this DataFrame.
277
- def slice(self, offset: int, length: int | None=None, description: Optional[str] = None) -> 'FlowFrame': ...
305
+ def slice(self, offset: int, length: int | None=None, description: Optional[str] = None) -> LazyFrame: ...
278
306
 
279
307
  # Sort the dataframe by the given columns.
280
- def sort(self, by: Union[List, Expr, str], *more_by, descending: Union[bool, List]=False, nulls_last: Union[bool, List]=False, multithreaded: bool=True, maintain_order: bool=False, description: Union[str, NoneType]=None) -> 'FlowFrame': ...
308
+ def sort(self, by: typing.Union[typing.List[typing.Union[flowfile_frame.expr.Expr, str]], flowfile_frame.expr.Expr, str], *more_by, descending: typing.Union[bool, typing.List[bool]]=False, nulls_last: typing.Union[bool, typing.List[bool]]=False, multithreaded: bool=True, maintain_order: bool=False, description: typing.Optional[str]=None) -> 'FlowFrame': ...
281
309
 
282
310
  # Execute a SQL query against the LazyFrame.
283
- def sql(self, query: str, table_name: str='self', description: Optional[str] = None) -> 'FlowFrame': ...
311
+ def sql(self, query: str, table_name: str='self', description: Optional[str] = None) -> LazyFrame: ...
284
312
 
285
313
  # Aggregate the columns in the LazyFrame to their standard deviation value.
286
- def std(self, ddof: int=1, description: Optional[str] = None) -> 'FlowFrame': ...
314
+ def std(self, ddof: int=1, description: Optional[str] = None) -> LazyFrame: ...
287
315
 
288
316
  # Aggregate the columns in the LazyFrame to their sum value.
289
- def sum(self, description: Optional[str] = None) -> 'FlowFrame': ...
317
+ def sum(self, description: Optional[str] = None) -> LazyFrame: ...
290
318
 
291
319
  # Get the last `n` rows.
292
- def tail(self, n: int=5, description: Optional[str] = None) -> 'FlowFrame': ...
320
+ def tail(self, n: int=5, description: Optional[str] = None) -> LazyFrame: ...
293
321
 
294
322
  # Split text in a column into multiple rows.
295
323
  def text_to_rows(self, column: str | flowfile_frame.expr.Column, output_column: str=None, delimiter: str=None, split_by_column: str=None, description: str=None) -> 'FlowFrame': ...
296
324
 
297
325
  # Get the underlying ETL graph.
298
- def to_graph(self, description: Optional[str] = None) -> 'FlowFrame': ...
326
+ def to_graph(self, description: Optional[str] = None) -> Any: ...
299
327
 
300
328
  # Return the `k` largest rows.
301
- def top_k(self, k: int, by: IntoExpr | Iterable[IntoExpr], reverse: bool | Sequence[bool]=False, description: Optional[str] = None) -> 'FlowFrame': ...
329
+ def top_k(self, k: int, by: IntoExpr | Iterable[IntoExpr], reverse: bool | Sequence[bool]=False, description: Optional[str] = None) -> LazyFrame: ...
302
330
 
303
331
  # Drop duplicate rows from this dataframe.
304
- def unique(self, subset: Union[str, ForwardRef('Expr'), List]=None, keep: typing.Literal['first', 'last', 'any', 'none']='any', maintain_order: bool=False, description: str=None) -> 'FlowFrame': ...
332
+ def unique(self, subset: typing.Union[str, ForwardRef('Expr'), typing.List[typing.Union[ForwardRef('Expr'), str]]]=None, keep: typing.Literal['first', 'last', 'any', 'none']='any', maintain_order: bool=False, description: str=None) -> 'FlowFrame': ...
305
333
 
306
334
  # Decompose struct columns into separate columns for each of their fields.
307
- def unnest(self, columns: ColumnNameOrSelector | Collection[ColumnNameOrSelector], *more_columns, description: Optional[str] = None) -> 'FlowFrame': ...
335
+ def unnest(self, columns: ColumnNameOrSelector | Collection[ColumnNameOrSelector], *more_columns, description: Optional[str] = None) -> LazyFrame: ...
308
336
 
309
337
  # Unpivot a DataFrame from wide to long format.
310
338
  def unpivot(self, on: list[str | flowfile_frame.selectors.Selector] | str | None | flowfile_frame.selectors.Selector=None, index: list[str] | str | None=None, variable_name: str='variable', value_name: str='value', description: str=None) -> 'FlowFrame': ...
311
339
 
312
340
  # Update the values in this `LazyFrame` with the values in `other`.
313
- def update(self, other: LazyFrame, on: str | Sequence[str] | None=None, how: Literal['left', 'inner', 'full']='left', left_on: str | Sequence[str] | None=None, right_on: str | Sequence[str] | None=None, include_nulls: bool=False, description: Optional[str] = None) -> 'FlowFrame': ...
341
+ def update(self, other: LazyFrame, on: str | Sequence[str] | None=None, how: Literal['left', 'inner', 'full']='left', left_on: str | Sequence[str] | None=None, right_on: str | Sequence[str] | None=None, include_nulls: bool=False, description: Optional[str] = None) -> LazyFrame: ...
314
342
 
315
343
  # Aggregate the columns in the LazyFrame to their variance value.
316
- def var(self, ddof: int=1, description: Optional[str] = None) -> 'FlowFrame': ...
344
+ def var(self, ddof: int=1, description: Optional[str] = None) -> LazyFrame: ...
345
+
346
+ # Get the number of columns.
347
+ @property
348
+ def width(self) -> int: ...
317
349
 
318
350
  # Add or replace columns in the DataFrame.
319
- def with_columns(self, exprs: Union[Expr, List[Union[Expr, None]]] = None, *, flowfile_formulas: Optional[List[str]] = None, output_column_names: Optional[List[str]] = None, description: Optional[str] = None) -> 'FlowFrame': ...
351
+ def with_columns(self, *exprs: Union[Expr, Iterable[Expr], Any], flowfile_formulas: Optional[List[str]] = None, output_column_names: Optional[List[str]] = None, description: Optional[str] = None, **named_exprs: Union[Expr, Any]) -> 'FlowFrame': ...
320
352
 
321
353
  # Add columns to this LazyFrame.
322
- def with_columns_seq(self, *exprs, **named_exprs) -> 'FlowFrame': ...
354
+ def with_columns_seq(self, *exprs, description: Optional[str] = None, **named_exprs) -> LazyFrame: ...
323
355
 
324
356
  # Add an external context to the computation graph.
325
- def with_context(self, other: Self | list[Self], description: Optional[str] = None) -> 'FlowFrame': ...
357
+ def with_context(self, other: Self | list[Self], description: Optional[str] = None) -> LazyFrame: ...
326
358
 
327
359
  # Add a column at index 0 that counts the rows.
328
- def with_row_count(self, name: str='row_nr', offset: int=0, description: Optional[str] = None) -> 'FlowFrame': ...
360
+ def with_row_count(self, name: str='row_nr', offset: int=0, description: Optional[str] = None) -> LazyFrame: ...
329
361
 
330
362
  # Add a row index as the first column in the DataFrame.
331
363
  def with_row_index(self, name: str='index', offset: int=0, description: str=None) -> 'FlowFrame': ...
332
364
 
333
- def write_csv(self, file: str | os.PathLike, separator: str=',', encoding: str='utf-8', description: str=None, convert_to_absolute_path: bool=True, **kwargs) -> 'FlowFrame': ...
365
+ def write_csv(self, file: str | os.PathLike, separator: str=',', encoding: str='utf-8', convert_to_absolute_path: bool=True, description: str=None, **kwargs) -> 'FlowFrame': ...
334
366
 
335
367
  # Write the data to a Parquet file. Creates a standard Output node if only
336
- def write_parquet(self, path: str | os.PathLike, description: str=None, convert_to_absolute_path: bool=True, **kwargs) -> 'FlowFrame': ...
368
+ def write_parquet(self, path: str | os.PathLike, convert_to_absolute_path: bool=True, description: str=None, **kwargs) -> 'FlowFrame': ...
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "Flowfile"
3
- version = "0.3.3"
3
+ version = "0.3.3.1"
4
4
  description = "Project combining flowfile core (backend) and flowfile_worker (compute offloader) and flowfile_frame (api)"
5
5
  readme = "readme-pypi.md"
6
6
  authors = ["Edward van Eechoud <evaneechoud@gmail.com>"]
@@ -27,7 +27,10 @@ databases = "~0.9.0"
27
27
  passlib = "~1.7.4"
28
28
  pyarrow = "^18.0.0"
29
29
  python-multipart = "~0.0.12"
30
- polars = ">1.8.2,<=1.25.2"
30
+ polars = [
31
+ { version = ">=1.8.2, <=1.25.2", markers = "sys_platform == 'win32'" }, # For Windows, max version 1.25.2 due to failing issues in greater versions
32
+ { version = ">=1.8.2, <2.0.0", markers = "sys_platform != 'win32'" }
33
+ ]
31
34
  methodtools = "~0.4.7"
32
35
  faker = "~23.1.0"
33
36
  XlsxWriter = "~3.2.0"
@@ -35,7 +38,7 @@ loky = "~3.4.1"
35
38
  fastexcel = "~0.12.0"
36
39
  openpyxl = "~3.1.2"
37
40
  polars-distance = "~0.4.3"
38
- polars-expr-transformer = ">0.4.7.0"
41
+ polars-expr-transformer = ">=0.4.9.0"
39
42
  polars-grouper = "~0.3.0"
40
43
  polars-ds = ">=0.6.0"
41
44
  pyairbyte-flowfile = "0.20.2"
File without changes
File without changes
File without changes