Flowfile 0.5.1__py3-none-any.whl → 0.5.4__py3-none-any.whl
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.
- build_backends/main.py +25 -22
- build_backends/main_prd.py +10 -19
- flowfile/__init__.py +194 -74
- flowfile/__main__.py +10 -7
- flowfile/api.py +51 -57
- flowfile/web/__init__.py +14 -9
- flowfile/web/static/assets/AdminView-f53bad23.css +129 -0
- flowfile/web/static/assets/AdminView-f9847d67.js +713 -0
- flowfile/web/static/assets/CloudConnectionView-cf85f943.css +72 -0
- flowfile/web/static/assets/{CloudConnectionManager-0dfba9f2.js → CloudConnectionView-faace55b.js} +11 -11
- flowfile/web/static/assets/{CloudStorageReader-29d14fcc.css → CloudStorageReader-24c54524.css} +27 -27
- flowfile/web/static/assets/{CloudStorageReader-d5b1b6c9.js → CloudStorageReader-d86ecaa7.js} +10 -8
- flowfile/web/static/assets/{CloudStorageWriter-00d87aad.js → CloudStorageWriter-0f4d9a44.js} +10 -8
- flowfile/web/static/assets/{CloudStorageWriter-b0ee067f.css → CloudStorageWriter-60547855.css} +26 -26
- flowfile/web/static/assets/ColumnActionInput-c44b7aee.css +159 -0
- flowfile/web/static/assets/ColumnActionInput-f4189ae0.js +330 -0
- flowfile/web/static/assets/{ColumnSelector-47996a16.css → ColumnSelector-371637fb.css} +2 -2
- flowfile/web/static/assets/{ColumnSelector-4685e75d.js → ColumnSelector-e66b33da.js} +3 -5
- flowfile/web/static/assets/ContextMenu-49463352.js +9 -0
- flowfile/web/static/assets/ContextMenu-dd5f3f25.js +9 -0
- flowfile/web/static/assets/ContextMenu-f709b884.js +9 -0
- flowfile/web/static/assets/ContextMenu.vue_vue_type_script_setup_true_lang-a1bd6314.js +59 -0
- flowfile/web/static/assets/{CrossJoin-702a3edd.js → CrossJoin-24694b8f.js} +12 -10
- flowfile/web/static/assets/{CrossJoin-1119d18e.css → CrossJoin-71b4cc10.css} +20 -20
- flowfile/web/static/assets/{CustomNode-b1519993.js → CustomNode-569d45ff.js} +43 -24
- flowfile/web/static/assets/CustomNode-edb9b939.css +42 -0
- flowfile/web/static/assets/{DatabaseConnectionSettings-0c04b2e5.css → DatabaseConnectionSettings-c20a1e16.css} +23 -21
- flowfile/web/static/assets/{DatabaseConnectionSettings-6f3e4ea5.js → DatabaseConnectionSettings-cfc08938.js} +5 -4
- flowfile/web/static/assets/{DatabaseReader-ae61773c.css → DatabaseReader-5bf8c75b.css} +41 -46
- flowfile/web/static/assets/{DatabaseReader-d38c7295.js → DatabaseReader-701feabb.js} +25 -15
- flowfile/web/static/assets/{DatabaseManager-cf5ef661.js → DatabaseView-0482e5b5.js} +11 -11
- flowfile/web/static/assets/DatabaseView-6655afd6.css +57 -0
- flowfile/web/static/assets/{DatabaseWriter-b04ef46a.js → DatabaseWriter-16721989.js} +17 -10
- flowfile/web/static/assets/{DatabaseWriter-2f570e53.css → DatabaseWriter-bdcf2c8b.css} +29 -27
- flowfile/web/static/assets/{designer-8da3ba3a.css → DesignerView-49abb835.css} +783 -663
- flowfile/web/static/assets/{designer-9633482a.js → DesignerView-f64749fb.js} +1292 -3253
- flowfile/web/static/assets/{documentation-ca400224.js → DocumentationView-61bd2990.js} +5 -5
- flowfile/web/static/assets/{documentation-12216a74.css → DocumentationView-9ea6e871.css} +9 -9
- flowfile/web/static/assets/{ExploreData-2d0cf4db.css → ExploreData-10c5acc8.css} +13 -12
- flowfile/web/static/assets/{ExploreData-5fa10ed8.js → ExploreData-e2735b13.js} +18 -9
- flowfile/web/static/assets/{ExternalSource-d39af878.js → ExternalSource-2535c3b2.js} +9 -7
- flowfile/web/static/assets/{ExternalSource-e37b6275.css → ExternalSource-7ac7373f.css} +20 -20
- flowfile/web/static/assets/Filter-2cdbc93c.js +287 -0
- flowfile/web/static/assets/Filter-7494ea97.css +48 -0
- flowfile/web/static/assets/{Formula-bb96803d.css → Formula-53d58c43.css} +7 -7
- flowfile/web/static/assets/{Formula-6b04fb1d.js → Formula-fcda3c2c.js} +13 -11
- flowfile/web/static/assets/{FuzzyMatch-1010f966.css → FuzzyMatch-ad6361d6.css} +68 -69
- flowfile/web/static/assets/{FuzzyMatch-999521f4.js → FuzzyMatch-f8d3b7d3.js} +12 -10
- flowfile/web/static/assets/{Pivot-cf333e3d.css → GraphSolver-4b4d7db9.css} +5 -5
- flowfile/web/static/assets/{GraphSolver-17dd2198.js → GraphSolver-72eaa695.js} +14 -12
- flowfile/web/static/assets/GroupBy-5792782d.css +9 -0
- flowfile/web/static/assets/{GroupBy-6b039e18.js → GroupBy-8aa0598b.js} +9 -7
- flowfile/web/static/assets/{Join-fd79b451.css → Join-28b5e18f.css} +22 -22
- flowfile/web/static/assets/{Join-24d0f113.js → Join-e40f0ffa.js} +13 -11
- flowfile/web/static/assets/LoginView-5111c9ae.js +134 -0
- flowfile/web/static/assets/LoginView-d325d632.css +172 -0
- flowfile/web/static/assets/ManualInput-3702e677.css +293 -0
- flowfile/web/static/assets/{ManualInput-34639209.js → ManualInput-9b6f3224.js} +170 -116
- flowfile/web/static/assets/{MultiSelect-0e8724a3.js → MultiSelect-ef28e19e.js} +2 -2
- flowfile/web/static/assets/{MultiSelect.vue_vue_type_script_setup_true_lang-b0e538c2.js → MultiSelect.vue_vue_type_script_setup_true_lang-83b3bbfd.js} +1 -1
- flowfile/web/static/assets/NodeDesigner-94cd4dd3.css +1429 -0
- flowfile/web/static/assets/NodeDesigner-d2b7ee2b.js +2712 -0
- flowfile/web/static/assets/{NumericInput-3d63a470.js → NumericInput-1d789794.js} +2 -2
- flowfile/web/static/assets/{NumericInput.vue_vue_type_script_setup_true_lang-e0edeccc.js → NumericInput.vue_vue_type_script_setup_true_lang-7775f83e.js} +5 -2
- flowfile/web/static/assets/Output-692dd25d.css +37 -0
- flowfile/web/static/assets/{Output-edea9802.js → Output-cefef801.js} +14 -10
- flowfile/web/static/assets/{GraphSolver-f0cb7bfb.css → Pivot-0eda81b4.css} +5 -5
- flowfile/web/static/assets/{Pivot-61d19301.js → Pivot-bab1b75b.js} +12 -10
- flowfile/web/static/assets/PivotValidation-0e905b1a.css +13 -0
- flowfile/web/static/assets/PivotValidation-41b57ad6.css +13 -0
- flowfile/web/static/assets/{PivotValidation-f97fec5b.js → PivotValidation-e7941f91.js} +3 -3
- flowfile/web/static/assets/{PivotValidation-de9f43fe.js → PivotValidation-fba09336.js} +3 -3
- flowfile/web/static/assets/{PolarsCode-650322d1.css → PolarsCode-2b1f1f23.css} +4 -4
- flowfile/web/static/assets/{PolarsCode-bc3c9984.js → PolarsCode-740e40fa.js} +18 -9
- flowfile/web/static/assets/PopOver-862d7e28.js +939 -0
- flowfile/web/static/assets/PopOver-d96599db.css +33 -0
- flowfile/web/static/assets/{Read-64a3f259.js → Read-225cc63f.js} +16 -12
- flowfile/web/static/assets/{Read-e808b239.css → Read-90f366bc.css} +15 -15
- flowfile/web/static/assets/{RecordCount-3d5039be.js → RecordCount-ffc71eca.js} +6 -4
- flowfile/web/static/assets/{RecordId-597510e0.js → RecordId-a70bb8df.js} +9 -7
- flowfile/web/static/assets/{SQLQueryComponent-df51adbe.js → SQLQueryComponent-15a421f5.js} +3 -3
- flowfile/web/static/assets/SQLQueryComponent-edb90b98.css +29 -0
- flowfile/web/static/assets/{Sample-4be0a507.js → Sample-6c26afc7.js} +6 -4
- flowfile/web/static/assets/SecretSelector-6329f743.css +43 -0
- flowfile/web/static/assets/SecretSelector-ceed9496.js +113 -0
- flowfile/web/static/assets/{SecretManager-4839be57.js → SecretsView-214d255a.js} +35 -36
- flowfile/web/static/assets/SecretsView-aa291340.css +38 -0
- flowfile/web/static/assets/{Select-9b72f201.js → Select-8fc29999.js} +9 -7
- flowfile/web/static/assets/{SettingsSection-71e6b7e3.css → SettingsSection-07fbbc39.css} +4 -4
- flowfile/web/static/assets/{SettingsSection-5c696bee.css → SettingsSection-26fe48d4.css} +4 -4
- flowfile/web/static/assets/{SettingsSection-7ded385d.js → SettingsSection-3f70e4c3.js} +3 -3
- flowfile/web/static/assets/{SettingsSection-f0f75a42.js → SettingsSection-83090218.js} +3 -3
- flowfile/web/static/assets/{SettingsSection-2e4d03c4.css → SettingsSection-8f980839.css} +4 -4
- flowfile/web/static/assets/{SettingsSection-e1e9c953.js → SettingsSection-9f0d1725.js} +3 -3
- flowfile/web/static/assets/SetupView-3fa0aa03.js +160 -0
- flowfile/web/static/assets/SetupView-e2da3442.css +230 -0
- flowfile/web/static/assets/{SingleSelect-6c777aac.js → SingleSelect-a4a568cb.js} +2 -2
- flowfile/web/static/assets/{SingleSelect.vue_vue_type_script_setup_true_lang-33e3ff9b.js → SingleSelect.vue_vue_type_script_setup_true_lang-c8ebdd33.js} +1 -1
- flowfile/web/static/assets/{SliderInput-7cb93e62.js → SliderInput-be533e71.js} +7 -4
- flowfile/web/static/assets/SliderInput-f2e4f23c.css +4 -0
- flowfile/web/static/assets/{Sort-6cbde21a.js → Sort-154dad81.js} +9 -7
- flowfile/web/static/assets/Sort-4abb7fae.css +9 -0
- flowfile/web/static/assets/{TextInput-d9a40c11.js → TextInput-454e2bda.js} +2 -2
- flowfile/web/static/assets/{TextInput.vue_vue_type_script_setup_true_lang-5896c375.js → TextInput.vue_vue_type_script_setup_true_lang-e86510d0.js} +5 -2
- flowfile/web/static/assets/{TextToRows-5d2c1190.css → TextToRows-12afb4f4.css} +10 -10
- flowfile/web/static/assets/{TextToRows-c4fcbf4d.js → TextToRows-ea73433d.js} +11 -10
- flowfile/web/static/assets/{ToggleSwitch-4ef91d19.js → ToggleSwitch-9d7b30f1.js} +2 -2
- flowfile/web/static/assets/{ToggleSwitch.vue_vue_type_script_setup_true_lang-38478c20.js → ToggleSwitch.vue_vue_type_script_setup_true_lang-00f2580e.js} +1 -1
- flowfile/web/static/assets/{UnavailableFields-5edd5322.css → UnavailableFields-394a1f78.css} +14 -14
- flowfile/web/static/assets/{UnavailableFields-a03f512c.js → UnavailableFields-b72a2c72.js} +4 -4
- flowfile/web/static/assets/{Union-bfe9b996.js → Union-1e44f263.js} +8 -6
- flowfile/web/static/assets/{Union-af6c3d9b.css → Union-d6a8d7d5.css} +7 -7
- flowfile/web/static/assets/Unique-2b705521.css +3 -0
- flowfile/web/static/assets/{Unique-5d023a27.js → Unique-a3bc6d0a.js} +13 -10
- flowfile/web/static/assets/{Unpivot-1e422df3.css → Unpivot-b6ad6427.css} +7 -7
- flowfile/web/static/assets/{Unpivot-91cc5354.js → Unpivot-e27935fc.js} +11 -9
- flowfile/web/static/assets/{UnpivotValidation-7ee2de44.js → UnpivotValidation-72497680.js} +3 -3
- flowfile/web/static/assets/UnpivotValidation-d5ca3b7b.css +13 -0
- flowfile/web/static/assets/{VueGraphicWalker-ed5ab88b.css → VueGraphicWalker-430f0b86.css} +1 -1
- flowfile/web/static/assets/{VueGraphicWalker-e51b9924.js → VueGraphicWalker-d9ab70a3.js} +4 -4
- flowfile/web/static/assets/{api-cf1221f0.js → api-a2102880.js} +1 -1
- flowfile/web/static/assets/{api-c1bad5ca.js → api-f75042b0.js} +1 -1
- flowfile/web/static/assets/{dropDown-35135ba8.css → dropDown-1d6acbd9.css} +41 -41
- flowfile/web/static/assets/{dropDown-614b998d.js → dropDown-2798a109.js} +3 -3
- flowfile/web/static/assets/{fullEditor-f7971590.js → fullEditor-cf7d7d93.js} +11 -10
- flowfile/web/static/assets/{fullEditor-178376bb.css → fullEditor-fe9f7e18.css} +77 -65
- flowfile/web/static/assets/{genericNodeSettings-4fe5f36b.js → genericNodeSettings-14eac1c3.js} +5 -5
- flowfile/web/static/assets/{genericNodeSettings-924759c7.css → genericNodeSettings-3b2507ea.css} +10 -10
- flowfile/web/static/assets/{index-5429bbf8.js → index-387a6f18.js} +41806 -40958
- flowfile/web/static/assets/index-6b367bb5.js +38 -0
- flowfile/web/static/assets/{index-50508d4d.css → index-e96ab018.css} +2184 -569
- flowfile/web/static/assets/index-f0a6e5a5.js +2696 -0
- flowfile/web/static/assets/node.types-2c15bb7e.js +82 -0
- flowfile/web/static/assets/nodeInput-ed2ae8d7.js +2 -0
- flowfile/web/static/assets/{outputCsv-076b85ab.js → outputCsv-3c1757e8.js} +3 -3
- flowfile/web/static/assets/outputCsv-b9a072af.css +2499 -0
- flowfile/web/static/assets/{outputExcel-0fd17dbe.js → outputExcel-686e1f48.js} +3 -3
- flowfile/web/static/assets/{outputExcel-b41305c0.css → outputExcel-f5d272b2.css} +26 -26
- flowfile/web/static/assets/outputParquet-54597c3c.css +4 -0
- flowfile/web/static/assets/{outputParquet-b61e0847.js → outputParquet-df28faa7.js} +4 -4
- flowfile/web/static/assets/{readCsv-c767cb37.css → readCsv-3bfac4c3.css} +15 -15
- flowfile/web/static/assets/{readCsv-a8bb8b61.js → readCsv-e37eee21.js} +3 -3
- flowfile/web/static/assets/{readExcel-806d2826.css → readExcel-3db6b763.css} +13 -13
- flowfile/web/static/assets/{readExcel-67b4aee0.js → readExcel-a13f14bb.js} +5 -5
- flowfile/web/static/assets/{readParquet-92ce1dbc.js → readParquet-344cf746.js} +3 -3
- flowfile/web/static/assets/{readParquet-48c81530.css → readParquet-c5244ad5.css} +4 -4
- flowfile/web/static/assets/secrets.api-ae198c5c.js +65 -0
- flowfile/web/static/assets/{selectDynamic-92e25ee3.js → selectDynamic-6b4b0767.js} +5 -5
- flowfile/web/static/assets/{selectDynamic-aa913ff4.css → selectDynamic-f2fb394f.css} +21 -20
- flowfile/web/static/assets/{vue-codemirror.esm-41b0e0d7.js → vue-codemirror.esm-31ba0e0b.js} +31 -640
- flowfile/web/static/assets/{vue-content-loader.es-2c8e608f.js → vue-content-loader.es-4469c8ff.js} +1 -1
- flowfile/web/static/index.html +2 -2
- {flowfile-0.5.1.dist-info → flowfile-0.5.4.dist-info}/METADATA +3 -4
- flowfile-0.5.4.dist-info/RECORD +407 -0
- flowfile_core/__init__.py +13 -6
- flowfile_core/auth/jwt.py +51 -16
- flowfile_core/auth/models.py +32 -7
- flowfile_core/auth/password.py +89 -0
- flowfile_core/auth/secrets.py +64 -19
- flowfile_core/configs/__init__.py +9 -7
- flowfile_core/configs/flow_logger.py +15 -14
- flowfile_core/configs/node_store/__init__.py +72 -4
- flowfile_core/configs/node_store/nodes.py +155 -172
- flowfile_core/configs/node_store/user_defined_node_registry.py +108 -27
- flowfile_core/configs/settings.py +28 -15
- flowfile_core/database/connection.py +7 -6
- flowfile_core/database/init_db.py +96 -2
- flowfile_core/database/models.py +3 -1
- flowfile_core/fileExplorer/__init__.py +17 -0
- flowfile_core/fileExplorer/funcs.py +145 -57
- flowfile_core/fileExplorer/utils.py +10 -11
- flowfile_core/flowfile/_extensions/real_time_interface.py +10 -8
- flowfile_core/flowfile/analytics/analytics_processor.py +26 -24
- flowfile_core/flowfile/analytics/graphic_walker.py +11 -12
- flowfile_core/flowfile/analytics/utils.py +1 -1
- flowfile_core/flowfile/code_generator/__init__.py +11 -0
- flowfile_core/flowfile/code_generator/code_generator.py +706 -247
- flowfile_core/flowfile/connection_manager/_connection_manager.py +6 -5
- flowfile_core/flowfile/connection_manager/models.py +1 -1
- flowfile_core/flowfile/database_connection_manager/db_connections.py +60 -44
- flowfile_core/flowfile/database_connection_manager/models.py +1 -1
- flowfile_core/flowfile/extensions.py +17 -12
- flowfile_core/flowfile/flow_data_engine/cloud_storage_reader.py +34 -32
- flowfile_core/flowfile/flow_data_engine/create/funcs.py +115 -83
- flowfile_core/flowfile/flow_data_engine/flow_data_engine.py +493 -423
- flowfile_core/flowfile/flow_data_engine/flow_file_column/interface.py +2 -2
- flowfile_core/flowfile/flow_data_engine/flow_file_column/main.py +92 -52
- flowfile_core/flowfile/flow_data_engine/flow_file_column/polars_type.py +12 -11
- flowfile_core/flowfile/flow_data_engine/flow_file_column/type_registry.py +6 -6
- flowfile_core/flowfile/flow_data_engine/flow_file_column/utils.py +26 -30
- flowfile_core/flowfile/flow_data_engine/fuzzy_matching/prepare_for_fuzzy_match.py +31 -20
- flowfile_core/flowfile/flow_data_engine/join/__init__.py +1 -1
- flowfile_core/flowfile/flow_data_engine/join/utils.py +11 -9
- flowfile_core/flowfile/flow_data_engine/join/verify_integrity.py +14 -15
- flowfile_core/flowfile/flow_data_engine/pivot_table.py +5 -7
- flowfile_core/flowfile/flow_data_engine/polars_code_parser.py +95 -82
- flowfile_core/flowfile/flow_data_engine/read_excel_tables.py +66 -65
- flowfile_core/flowfile/flow_data_engine/sample_data.py +27 -21
- flowfile_core/flowfile/flow_data_engine/subprocess_operations/__init__.py +1 -1
- flowfile_core/flowfile/flow_data_engine/subprocess_operations/models.py +13 -11
- flowfile_core/flowfile/flow_data_engine/subprocess_operations/subprocess_operations.py +190 -127
- flowfile_core/flowfile/flow_data_engine/threaded_processes.py +8 -8
- flowfile_core/flowfile/flow_data_engine/utils.py +99 -67
- flowfile_core/flowfile/flow_graph.py +920 -571
- flowfile_core/flowfile/flow_graph_utils.py +31 -49
- flowfile_core/flowfile/flow_node/flow_node.py +379 -258
- flowfile_core/flowfile/flow_node/models.py +53 -41
- flowfile_core/flowfile/flow_node/schema_callback.py +14 -19
- flowfile_core/flowfile/graph_tree/graph_tree.py +41 -41
- flowfile_core/flowfile/handler.py +80 -30
- flowfile_core/flowfile/manage/compatibility_enhancements.py +209 -126
- flowfile_core/flowfile/manage/io_flowfile.py +54 -57
- flowfile_core/flowfile/node_designer/__init__.py +19 -13
- flowfile_core/flowfile/node_designer/_type_registry.py +34 -37
- flowfile_core/flowfile/node_designer/custom_node.py +162 -36
- flowfile_core/flowfile/node_designer/ui_components.py +278 -34
- flowfile_core/flowfile/schema_callbacks.py +71 -51
- flowfile_core/flowfile/setting_generator/__init__.py +0 -1
- flowfile_core/flowfile/setting_generator/setting_generator.py +6 -5
- flowfile_core/flowfile/setting_generator/settings.py +64 -53
- flowfile_core/flowfile/sources/external_sources/base_class.py +12 -10
- flowfile_core/flowfile/sources/external_sources/custom_external_sources/external_source.py +27 -17
- flowfile_core/flowfile/sources/external_sources/custom_external_sources/sample_users.py +9 -9
- flowfile_core/flowfile/sources/external_sources/factory.py +0 -1
- flowfile_core/flowfile/sources/external_sources/sql_source/models.py +45 -31
- flowfile_core/flowfile/sources/external_sources/sql_source/sql_source.py +198 -73
- flowfile_core/flowfile/sources/external_sources/sql_source/utils.py +250 -196
- flowfile_core/flowfile/util/calculate_layout.py +9 -13
- flowfile_core/flowfile/util/execution_orderer.py +25 -17
- flowfile_core/flowfile/util/node_skipper.py +4 -4
- flowfile_core/flowfile/utils.py +19 -21
- flowfile_core/main.py +26 -19
- flowfile_core/routes/auth.py +284 -11
- flowfile_core/routes/cloud_connections.py +25 -25
- flowfile_core/routes/logs.py +21 -29
- flowfile_core/routes/public.py +46 -4
- flowfile_core/routes/routes.py +70 -34
- flowfile_core/routes/secrets.py +25 -27
- flowfile_core/routes/user_defined_components.py +483 -4
- flowfile_core/run_lock.py +0 -1
- flowfile_core/schemas/__init__.py +4 -6
- flowfile_core/schemas/analysis_schemas/graphic_walker_schemas.py +55 -55
- flowfile_core/schemas/cloud_storage_schemas.py +96 -66
- flowfile_core/schemas/input_schema.py +231 -144
- flowfile_core/schemas/output_model.py +49 -34
- flowfile_core/schemas/schemas.py +116 -89
- flowfile_core/schemas/transform_schema.py +518 -263
- flowfile_core/schemas/yaml_types.py +21 -7
- flowfile_core/secret_manager/secret_manager.py +123 -18
- flowfile_core/types.py +29 -9
- flowfile_core/utils/arrow_reader.py +7 -6
- flowfile_core/utils/excel_file_manager.py +3 -3
- flowfile_core/utils/fileManager.py +7 -7
- flowfile_core/utils/fl_executor.py +8 -10
- flowfile_core/utils/utils.py +4 -4
- flowfile_core/utils/validate_setup.py +5 -4
- flowfile_frame/__init__.py +117 -51
- flowfile_frame/adapters.py +2 -9
- flowfile_frame/adding_expr.py +73 -32
- flowfile_frame/cloud_storage/frame_helpers.py +27 -23
- flowfile_frame/cloud_storage/secret_manager.py +12 -26
- flowfile_frame/config.py +2 -5
- flowfile_frame/database/__init__.py +36 -0
- flowfile_frame/database/connection_manager.py +205 -0
- flowfile_frame/database/frame_helpers.py +249 -0
- flowfile_frame/expr.py +311 -218
- flowfile_frame/expr.pyi +160 -159
- flowfile_frame/expr_name.py +23 -23
- flowfile_frame/flow_frame.py +571 -476
- flowfile_frame/flow_frame.pyi +123 -104
- flowfile_frame/flow_frame_methods.py +227 -246
- flowfile_frame/group_frame.py +50 -20
- flowfile_frame/join.py +2 -2
- flowfile_frame/lazy.py +129 -87
- flowfile_frame/lazy_methods.py +83 -30
- flowfile_frame/list_name_space.py +55 -50
- flowfile_frame/selectors.py +148 -68
- flowfile_frame/series.py +9 -7
- flowfile_frame/utils.py +19 -21
- flowfile_worker/__init__.py +12 -7
- flowfile_worker/configs.py +41 -33
- flowfile_worker/create/__init__.py +14 -9
- flowfile_worker/create/funcs.py +114 -77
- flowfile_worker/create/models.py +46 -43
- flowfile_worker/create/pl_types.py +14 -15
- flowfile_worker/create/read_excel_tables.py +34 -41
- flowfile_worker/create/utils.py +22 -19
- flowfile_worker/external_sources/s3_source/main.py +18 -51
- flowfile_worker/external_sources/s3_source/models.py +34 -27
- flowfile_worker/external_sources/sql_source/main.py +8 -5
- flowfile_worker/external_sources/sql_source/models.py +13 -9
- flowfile_worker/flow_logger.py +10 -8
- flowfile_worker/funcs.py +214 -155
- flowfile_worker/main.py +11 -17
- flowfile_worker/models.py +35 -28
- flowfile_worker/process_manager.py +2 -3
- flowfile_worker/routes.py +121 -90
- flowfile_worker/secrets.py +114 -21
- flowfile_worker/spawner.py +89 -54
- flowfile_worker/utils.py +3 -2
- shared/__init__.py +2 -7
- shared/storage_config.py +25 -13
- test_utils/postgres/commands.py +3 -2
- test_utils/postgres/fixtures.py +9 -9
- test_utils/s3/commands.py +1 -1
- test_utils/s3/data_generator.py +3 -4
- test_utils/s3/demo_data_generator.py +4 -7
- test_utils/s3/fixtures.py +7 -5
- tools/migrate/__init__.py +1 -1
- tools/migrate/__main__.py +16 -29
- tools/migrate/legacy_schemas.py +251 -190
- tools/migrate/migrate.py +193 -181
- tools/migrate/tests/conftest.py +1 -3
- tools/migrate/tests/test_migrate.py +36 -41
- tools/migrate/tests/test_migration_e2e.py +28 -29
- tools/migrate/tests/test_node_migrations.py +50 -20
- flowfile/web/static/assets/CloudConnectionManager-2dfdce2f.css +0 -86
- flowfile/web/static/assets/ContextMenu-23e909da.js +0 -41
- flowfile/web/static/assets/ContextMenu-4c74eef1.css +0 -26
- flowfile/web/static/assets/ContextMenu-63cfa99b.css +0 -26
- flowfile/web/static/assets/ContextMenu-70ae0c79.js +0 -41
- flowfile/web/static/assets/ContextMenu-c13f91d0.css +0 -26
- flowfile/web/static/assets/ContextMenu-f149cf7c.js +0 -41
- flowfile/web/static/assets/CustomNode-74a37f74.css +0 -32
- flowfile/web/static/assets/DatabaseManager-30fa27e5.css +0 -64
- flowfile/web/static/assets/Filter-9b6d08db.js +0 -164
- flowfile/web/static/assets/Filter-f62091b3.css +0 -20
- flowfile/web/static/assets/GroupBy-b9505323.css +0 -51
- flowfile/web/static/assets/ManualInput-3246a08d.css +0 -96
- flowfile/web/static/assets/Output-283fe388.css +0 -37
- flowfile/web/static/assets/PivotValidation-891ddfb0.css +0 -13
- flowfile/web/static/assets/PivotValidation-c46cd420.css +0 -13
- flowfile/web/static/assets/SQLQueryComponent-36cef432.css +0 -27
- flowfile/web/static/assets/SliderInput-b8fb6a8c.css +0 -4
- flowfile/web/static/assets/Sort-3643d625.css +0 -51
- flowfile/web/static/assets/Unique-f9fb0809.css +0 -51
- flowfile/web/static/assets/UnpivotValidation-0d240eeb.css +0 -13
- flowfile/web/static/assets/nodeInput-5d0d6b79.js +0 -41
- flowfile/web/static/assets/outputCsv-9cc59e0b.css +0 -2499
- flowfile/web/static/assets/outputParquet-cf8cf3f2.css +0 -4
- flowfile/web/static/assets/secretApi-68435402.js +0 -46
- flowfile/web/static/assets/vue-codemirror-bccfde04.css +0 -32
- flowfile-0.5.1.dist-info/RECORD +0 -388
- {flowfile-0.5.1.dist-info → flowfile-0.5.4.dist-info}/WHEEL +0 -0
- {flowfile-0.5.1.dist-info → flowfile-0.5.4.dist-info}/entry_points.txt +0 -0
- {flowfile-0.5.1.dist-info → flowfile-0.5.4.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,316 +1,291 @@
|
|
|
1
|
+
from flowfile_core.schemas.schemas import NodeDefault, NodeTemplate
|
|
1
2
|
|
|
2
|
-
from typing import List, Dict
|
|
3
|
-
from flowfile_core.schemas.schemas import NodeTemplate, NodeDefault
|
|
4
3
|
|
|
5
|
-
|
|
6
|
-
def get_all_standard_nodes() -> tuple[List[NodeTemplate], Dict[str, NodeTemplate], Dict[str, NodeDefault]]:
|
|
4
|
+
def get_all_standard_nodes() -> tuple[list[NodeTemplate], dict[str, NodeTemplate], dict[str, NodeDefault]]:
|
|
7
5
|
"""
|
|
8
6
|
Initializes and returns the complete list, dict, and defaults for all nodes.
|
|
9
|
-
|
|
10
|
-
nodes_list:
|
|
7
|
+
"""
|
|
8
|
+
nodes_list: list[NodeTemplate] = [
|
|
11
9
|
NodeTemplate(
|
|
12
|
-
name=
|
|
13
|
-
item=
|
|
10
|
+
name="External source",
|
|
11
|
+
item="external_source",
|
|
14
12
|
input=0,
|
|
15
13
|
output=1,
|
|
16
|
-
image=
|
|
14
|
+
image="external_source.png",
|
|
17
15
|
node_type="input",
|
|
18
16
|
transform_type="other",
|
|
19
|
-
node_group=
|
|
17
|
+
node_group="input",
|
|
20
18
|
prod_ready=False,
|
|
21
19
|
drawer_title="External Source",
|
|
22
|
-
drawer_intro="Connect to external data sources and APIs"
|
|
20
|
+
drawer_intro="Connect to external data sources and APIs",
|
|
23
21
|
),
|
|
24
|
-
|
|
25
22
|
NodeTemplate(
|
|
26
|
-
name=
|
|
27
|
-
item=
|
|
23
|
+
name="Manual input",
|
|
24
|
+
item="manual_input",
|
|
28
25
|
input=0,
|
|
29
26
|
output=1,
|
|
30
27
|
transform_type="other",
|
|
31
28
|
node_type="input",
|
|
32
|
-
image=
|
|
33
|
-
node_group=
|
|
29
|
+
image="manual_input.png",
|
|
30
|
+
node_group="input",
|
|
34
31
|
drawer_title="Manual Input",
|
|
35
|
-
drawer_intro="Create data directly"
|
|
32
|
+
drawer_intro="Create data directly",
|
|
36
33
|
),
|
|
37
|
-
|
|
38
34
|
NodeTemplate(
|
|
39
|
-
name=
|
|
40
|
-
item=
|
|
35
|
+
name="Read data",
|
|
36
|
+
item="read",
|
|
41
37
|
input=0,
|
|
42
38
|
output=1,
|
|
43
39
|
transform_type="other",
|
|
44
40
|
node_type="input",
|
|
45
|
-
image=
|
|
46
|
-
node_group=
|
|
41
|
+
image="input_data.png",
|
|
42
|
+
node_group="input",
|
|
47
43
|
drawer_title="Read Data",
|
|
48
|
-
drawer_intro="Load data from CSV, Excel, or Parquet files"
|
|
44
|
+
drawer_intro="Load data from CSV, Excel, or Parquet files",
|
|
49
45
|
),
|
|
50
|
-
|
|
51
46
|
NodeTemplate(
|
|
52
|
-
name=
|
|
53
|
-
item=
|
|
47
|
+
name="Join",
|
|
48
|
+
item="join",
|
|
54
49
|
input=2,
|
|
55
50
|
output=1,
|
|
56
51
|
transform_type="wide",
|
|
57
52
|
node_type="process",
|
|
58
|
-
image=
|
|
59
|
-
node_group=
|
|
53
|
+
image="join.png",
|
|
54
|
+
node_group="combine",
|
|
60
55
|
drawer_title="Join Datasets",
|
|
61
|
-
drawer_intro="Merge two datasets based on matching column values"
|
|
56
|
+
drawer_intro="Merge two datasets based on matching column values",
|
|
62
57
|
),
|
|
63
|
-
|
|
64
58
|
NodeTemplate(
|
|
65
|
-
name=
|
|
66
|
-
item=
|
|
59
|
+
name="Formula",
|
|
60
|
+
item="formula",
|
|
67
61
|
input=1,
|
|
68
62
|
output=1,
|
|
69
63
|
transform_type="narrow",
|
|
70
64
|
node_type="process",
|
|
71
|
-
image=
|
|
72
|
-
node_group=
|
|
65
|
+
image="formula.png",
|
|
66
|
+
node_group="transform",
|
|
73
67
|
drawer_title="Formula Editor",
|
|
74
|
-
drawer_intro="Create or modify columns using custom expressions"
|
|
68
|
+
drawer_intro="Create or modify columns using custom expressions",
|
|
75
69
|
),
|
|
76
|
-
|
|
77
70
|
NodeTemplate(
|
|
78
|
-
name=
|
|
79
|
-
item=
|
|
71
|
+
name="Write data",
|
|
72
|
+
item="output",
|
|
80
73
|
input=1,
|
|
81
74
|
output=0,
|
|
82
75
|
transform_type="other",
|
|
83
|
-
image=
|
|
76
|
+
image="output.png",
|
|
84
77
|
node_type="output",
|
|
85
|
-
node_group=
|
|
78
|
+
node_group="output",
|
|
86
79
|
drawer_title="Write Data",
|
|
87
|
-
drawer_intro="Save your data as CSV, Excel, or Parquet files"
|
|
80
|
+
drawer_intro="Save your data as CSV, Excel, or Parquet files",
|
|
88
81
|
),
|
|
89
|
-
|
|
90
82
|
NodeTemplate(
|
|
91
|
-
name=
|
|
92
|
-
item=
|
|
83
|
+
name="Select data",
|
|
84
|
+
item="select",
|
|
93
85
|
input=1,
|
|
94
86
|
output=1,
|
|
95
87
|
transform_type="narrow",
|
|
96
88
|
node_type="process",
|
|
97
|
-
image=
|
|
98
|
-
node_group=
|
|
89
|
+
image="select.png",
|
|
90
|
+
node_group="transform",
|
|
99
91
|
drawer_title="Select Columns",
|
|
100
|
-
drawer_intro="Choose, rename, and reorder columns to keep"
|
|
92
|
+
drawer_intro="Choose, rename, and reorder columns to keep",
|
|
101
93
|
),
|
|
102
|
-
|
|
103
94
|
NodeTemplate(
|
|
104
|
-
name=
|
|
105
|
-
item=
|
|
95
|
+
name="Filter data",
|
|
96
|
+
item="filter",
|
|
106
97
|
input=1,
|
|
107
98
|
output=1,
|
|
108
99
|
transform_type="narrow",
|
|
109
100
|
node_type="process",
|
|
110
|
-
image=
|
|
111
|
-
node_group=
|
|
101
|
+
image="filter.png",
|
|
102
|
+
node_group="transform",
|
|
112
103
|
drawer_title="Filter Rows",
|
|
113
|
-
drawer_intro="Keep only rows that match your conditions"
|
|
104
|
+
drawer_intro="Keep only rows that match your conditions",
|
|
114
105
|
),
|
|
115
|
-
|
|
116
106
|
NodeTemplate(
|
|
117
|
-
name=
|
|
118
|
-
item=
|
|
107
|
+
name="Group by",
|
|
108
|
+
item="group_by",
|
|
119
109
|
input=1,
|
|
120
110
|
output=1,
|
|
121
111
|
transform_type="wide",
|
|
122
112
|
node_type="process",
|
|
123
|
-
image=
|
|
124
|
-
node_group=
|
|
113
|
+
image="group_by.png",
|
|
114
|
+
node_group="aggregate",
|
|
125
115
|
drawer_title="Group By",
|
|
126
|
-
drawer_intro="Aggregate data by grouping and calculating statistics"
|
|
116
|
+
drawer_intro="Aggregate data by grouping and calculating statistics",
|
|
127
117
|
),
|
|
128
|
-
|
|
129
118
|
NodeTemplate(
|
|
130
|
-
name=
|
|
131
|
-
item=
|
|
119
|
+
name="Fuzzy match",
|
|
120
|
+
item="fuzzy_match",
|
|
132
121
|
input=2,
|
|
133
122
|
output=1,
|
|
134
123
|
transform_type="wide",
|
|
135
|
-
image=
|
|
124
|
+
image="fuzzy_match.png",
|
|
136
125
|
node_type="process",
|
|
137
|
-
node_group=
|
|
126
|
+
node_group="combine",
|
|
138
127
|
drawer_title="Fuzzy Match",
|
|
139
|
-
drawer_intro="Join datasets based on similar values instead of exact matches"
|
|
128
|
+
drawer_intro="Join datasets based on similar values instead of exact matches",
|
|
140
129
|
),
|
|
141
|
-
|
|
142
130
|
NodeTemplate(
|
|
143
|
-
name=
|
|
144
|
-
item=
|
|
131
|
+
name="Sort data",
|
|
132
|
+
item="sort",
|
|
145
133
|
input=1,
|
|
146
134
|
output=1,
|
|
147
135
|
transform_type="wide",
|
|
148
136
|
node_type="process",
|
|
149
|
-
image=
|
|
150
|
-
node_group=
|
|
137
|
+
image="sort.png",
|
|
138
|
+
node_group="transform",
|
|
151
139
|
drawer_title="Sort Data",
|
|
152
|
-
drawer_intro="Order your data by one or more columns"
|
|
140
|
+
drawer_intro="Order your data by one or more columns",
|
|
153
141
|
),
|
|
154
|
-
|
|
155
142
|
NodeTemplate(
|
|
156
|
-
name=
|
|
157
|
-
item=
|
|
143
|
+
name="Add record Id",
|
|
144
|
+
item="record_id",
|
|
158
145
|
input=1,
|
|
159
146
|
output=1,
|
|
160
147
|
transform_type="wide",
|
|
161
148
|
node_type="process",
|
|
162
|
-
image=
|
|
163
|
-
node_group=
|
|
149
|
+
image="record_id.png",
|
|
150
|
+
node_group="transform",
|
|
164
151
|
drawer_title="Add Record ID",
|
|
165
|
-
drawer_intro="Generate unique identifiers for each row"
|
|
152
|
+
drawer_intro="Generate unique identifiers for each row",
|
|
166
153
|
),
|
|
167
|
-
|
|
168
154
|
NodeTemplate(
|
|
169
|
-
name=
|
|
170
|
-
item=
|
|
155
|
+
name="Take Sample",
|
|
156
|
+
item="sample",
|
|
171
157
|
input=1,
|
|
172
158
|
output=1,
|
|
173
159
|
transform_type="narrow",
|
|
174
160
|
node_type="process",
|
|
175
|
-
image=
|
|
176
|
-
node_group=
|
|
161
|
+
image="sample.png",
|
|
162
|
+
node_group="transform",
|
|
177
163
|
drawer_title="Take Sample",
|
|
178
|
-
drawer_intro="Work with a subset of your data"
|
|
164
|
+
drawer_intro="Work with a subset of your data",
|
|
179
165
|
),
|
|
180
|
-
|
|
181
166
|
NodeTemplate(
|
|
182
|
-
name=
|
|
183
|
-
item=
|
|
167
|
+
name="Explore data",
|
|
168
|
+
item="explore_data",
|
|
184
169
|
input=1,
|
|
185
170
|
output=0,
|
|
186
171
|
transform_type="other",
|
|
187
172
|
node_type="output",
|
|
188
|
-
image=
|
|
189
|
-
node_group=
|
|
173
|
+
image="explore_data.png",
|
|
174
|
+
node_group="output",
|
|
190
175
|
drawer_title="Explore Data",
|
|
191
|
-
drawer_intro="Interactive data exploration and analysis"
|
|
176
|
+
drawer_intro="Interactive data exploration and analysis",
|
|
192
177
|
),
|
|
193
|
-
|
|
194
178
|
NodeTemplate(
|
|
195
|
-
name=
|
|
196
|
-
item=
|
|
179
|
+
name="Pivot data",
|
|
180
|
+
item="pivot",
|
|
197
181
|
input=1,
|
|
198
182
|
output=1,
|
|
199
183
|
transform_type="wide",
|
|
200
|
-
image=
|
|
184
|
+
image="pivot.png",
|
|
201
185
|
node_type="process",
|
|
202
|
-
node_group=
|
|
186
|
+
node_group="aggregate",
|
|
203
187
|
drawer_title="Pivot Data",
|
|
204
|
-
drawer_intro="Convert data from long format to wide format"
|
|
188
|
+
drawer_intro="Convert data from long format to wide format",
|
|
205
189
|
),
|
|
206
|
-
|
|
207
190
|
NodeTemplate(
|
|
208
|
-
name=
|
|
209
|
-
item=
|
|
191
|
+
name="Unpivot data",
|
|
192
|
+
item="unpivot",
|
|
210
193
|
input=1,
|
|
211
194
|
output=1,
|
|
212
195
|
transform_type="wide",
|
|
213
196
|
node_type="process",
|
|
214
|
-
image=
|
|
215
|
-
node_group=
|
|
197
|
+
image="unpivot.png",
|
|
198
|
+
node_group="aggregate",
|
|
216
199
|
drawer_title="Unpivot Data",
|
|
217
|
-
drawer_intro="Transform data from wide format to long format"
|
|
200
|
+
drawer_intro="Transform data from wide format to long format",
|
|
218
201
|
),
|
|
219
|
-
|
|
220
202
|
NodeTemplate(
|
|
221
|
-
name=
|
|
222
|
-
item=
|
|
203
|
+
name="Union data",
|
|
204
|
+
item="union",
|
|
223
205
|
input=10,
|
|
224
206
|
output=1,
|
|
225
207
|
transform_type="narrow",
|
|
226
208
|
node_type="process",
|
|
227
|
-
image=
|
|
209
|
+
image="union.png",
|
|
228
210
|
multi=True,
|
|
229
|
-
node_group=
|
|
211
|
+
node_group="combine",
|
|
230
212
|
drawer_title="Union Data",
|
|
231
|
-
drawer_intro="Stack multiple datasets by combining rows"
|
|
213
|
+
drawer_intro="Stack multiple datasets by combining rows",
|
|
232
214
|
),
|
|
233
|
-
|
|
234
215
|
NodeTemplate(
|
|
235
|
-
name=
|
|
236
|
-
item=
|
|
216
|
+
name="Drop duplicates",
|
|
217
|
+
item="unique",
|
|
237
218
|
input=1,
|
|
238
219
|
output=1,
|
|
239
220
|
transform_type="wide",
|
|
240
221
|
node_type="process",
|
|
241
|
-
image=
|
|
242
|
-
node_group=
|
|
222
|
+
image="unique.png",
|
|
223
|
+
node_group="transform",
|
|
243
224
|
drawer_title="Drop Duplicates",
|
|
244
|
-
drawer_intro="Remove duplicate rows based on selected columns"
|
|
225
|
+
drawer_intro="Remove duplicate rows based on selected columns",
|
|
245
226
|
),
|
|
246
|
-
|
|
247
227
|
NodeTemplate(
|
|
248
|
-
name=
|
|
249
|
-
item=
|
|
228
|
+
name="Graph solver",
|
|
229
|
+
item="graph_solver",
|
|
250
230
|
input=1,
|
|
251
231
|
output=1,
|
|
252
232
|
transform_type="other",
|
|
253
233
|
node_type="process",
|
|
254
|
-
image=
|
|
255
|
-
node_group=
|
|
234
|
+
image="graph_solver.png",
|
|
235
|
+
node_group="combine",
|
|
256
236
|
drawer_title="Graph Solver",
|
|
257
|
-
drawer_intro="Group related records in graph-structured data"
|
|
237
|
+
drawer_intro="Group related records in graph-structured data",
|
|
258
238
|
),
|
|
259
|
-
|
|
260
239
|
NodeTemplate(
|
|
261
|
-
name=
|
|
262
|
-
item=
|
|
240
|
+
name="Count records",
|
|
241
|
+
item="record_count",
|
|
263
242
|
input=1,
|
|
264
243
|
output=1,
|
|
265
244
|
transform_type="wide",
|
|
266
245
|
node_type="process",
|
|
267
|
-
image=
|
|
268
|
-
node_group=
|
|
246
|
+
image="record_count.png",
|
|
247
|
+
node_group="aggregate",
|
|
269
248
|
drawer_title="Count Records",
|
|
270
|
-
drawer_intro="Calculate the total number of rows"
|
|
249
|
+
drawer_intro="Calculate the total number of rows",
|
|
271
250
|
),
|
|
272
|
-
|
|
273
251
|
NodeTemplate(
|
|
274
|
-
name=
|
|
275
|
-
item=
|
|
252
|
+
name="Cross join",
|
|
253
|
+
item="cross_join",
|
|
276
254
|
input=2,
|
|
277
255
|
output=1,
|
|
278
256
|
transform_type="wide",
|
|
279
257
|
node_type="process",
|
|
280
|
-
image=
|
|
281
|
-
node_group=
|
|
258
|
+
image="cross_join.png",
|
|
259
|
+
node_group="combine",
|
|
282
260
|
drawer_title="Cross Join",
|
|
283
|
-
drawer_intro="Create all possible combinations between two datasets"
|
|
261
|
+
drawer_intro="Create all possible combinations between two datasets",
|
|
284
262
|
),
|
|
285
|
-
|
|
286
263
|
NodeTemplate(
|
|
287
|
-
name=
|
|
288
|
-
item=
|
|
264
|
+
name="Text to rows",
|
|
265
|
+
item="text_to_rows",
|
|
289
266
|
input=1,
|
|
290
267
|
output=1,
|
|
291
268
|
transform_type="wide",
|
|
292
269
|
node_type="process",
|
|
293
|
-
image=
|
|
294
|
-
node_group=
|
|
270
|
+
image="text_to_rows.png",
|
|
271
|
+
node_group="transform",
|
|
295
272
|
drawer_title="Text to Rows",
|
|
296
|
-
drawer_intro="Split text into multiple rows based on a delimiter"
|
|
273
|
+
drawer_intro="Split text into multiple rows based on a delimiter",
|
|
297
274
|
),
|
|
298
|
-
|
|
299
275
|
NodeTemplate(
|
|
300
276
|
name="Polars code",
|
|
301
277
|
item="polars_code",
|
|
302
278
|
input=10,
|
|
303
279
|
output=1,
|
|
304
280
|
transform_type="narrow",
|
|
305
|
-
image=
|
|
306
|
-
node_group=
|
|
281
|
+
image="polars_code.png",
|
|
282
|
+
node_group="transform",
|
|
307
283
|
node_type="process",
|
|
308
284
|
multi=True,
|
|
309
285
|
can_be_start=True,
|
|
310
286
|
drawer_title="Polars Code",
|
|
311
|
-
drawer_intro="Write custom Polars DataFrame transformations"
|
|
287
|
+
drawer_intro="Write custom Polars DataFrame transformations",
|
|
312
288
|
),
|
|
313
|
-
|
|
314
289
|
NodeTemplate(
|
|
315
290
|
name="Read from Database",
|
|
316
291
|
item="database_reader",
|
|
@@ -318,66 +293,74 @@ def get_all_standard_nodes() -> tuple[List[NodeTemplate], Dict[str, NodeTemplate
|
|
|
318
293
|
output=1,
|
|
319
294
|
node_type="input",
|
|
320
295
|
transform_type="other",
|
|
321
|
-
image=
|
|
322
|
-
node_group=
|
|
296
|
+
image="database_reader.svg",
|
|
297
|
+
node_group="input",
|
|
323
298
|
drawer_title="Database Reader",
|
|
324
|
-
drawer_intro="Load data from database tables or queries"
|
|
299
|
+
drawer_intro="Load data from database tables or queries",
|
|
325
300
|
),
|
|
326
|
-
|
|
327
301
|
NodeTemplate(
|
|
328
|
-
name=
|
|
329
|
-
item=
|
|
302
|
+
name="Write to Database",
|
|
303
|
+
item="database_writer",
|
|
330
304
|
input=1,
|
|
331
305
|
output=0,
|
|
332
306
|
transform_type="other",
|
|
333
307
|
node_type="output",
|
|
334
|
-
image=
|
|
335
|
-
node_group=
|
|
308
|
+
image="database_writer.svg",
|
|
309
|
+
node_group="output",
|
|
336
310
|
drawer_title="Database Writer",
|
|
337
|
-
drawer_intro="Save data to database tables"
|
|
311
|
+
drawer_intro="Save data to database tables",
|
|
338
312
|
),
|
|
339
|
-
|
|
340
313
|
NodeTemplate(
|
|
341
|
-
name=
|
|
342
|
-
item=
|
|
314
|
+
name="Read from cloud provider",
|
|
315
|
+
item="cloud_storage_reader",
|
|
343
316
|
input=0,
|
|
344
317
|
output=1,
|
|
345
318
|
transform_type="other",
|
|
346
319
|
node_type="input",
|
|
347
|
-
image=
|
|
348
|
-
node_group=
|
|
320
|
+
image="cloud_storage_reader.png",
|
|
321
|
+
node_group="input",
|
|
349
322
|
drawer_title="Cloud Storage Reader",
|
|
350
|
-
drawer_intro="Read data from AWS S3 and other cloud storage"
|
|
323
|
+
drawer_intro="Read data from AWS S3 and other cloud storage",
|
|
351
324
|
),
|
|
352
|
-
|
|
353
325
|
NodeTemplate(
|
|
354
|
-
name=
|
|
355
|
-
item=
|
|
326
|
+
name="Write to cloud provider",
|
|
327
|
+
item="cloud_storage_writer",
|
|
356
328
|
input=1,
|
|
357
329
|
output=0,
|
|
358
330
|
transform_type="other",
|
|
359
331
|
node_type="output",
|
|
360
|
-
image=
|
|
361
|
-
node_group=
|
|
332
|
+
image="cloud_storage_writer.png",
|
|
333
|
+
node_group="output",
|
|
362
334
|
drawer_title="Cloud Storage Writer",
|
|
363
|
-
drawer_intro="Save data to AWS S3 and other cloud storage"
|
|
335
|
+
drawer_intro="Save data to AWS S3 and other cloud storage",
|
|
364
336
|
),
|
|
365
337
|
]
|
|
366
338
|
nodes_list.sort(key=lambda x: x.name)
|
|
367
|
-
nodes_with_defaults = {
|
|
339
|
+
nodes_with_defaults = {"sample", "sort", "union", "select", "record_count"}
|
|
368
340
|
|
|
369
341
|
def check_if_has_default_setting(node_item: str):
|
|
370
|
-
|
|
371
342
|
return node_item in nodes_with_defaults
|
|
372
343
|
|
|
373
|
-
node_defaults = {
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
344
|
+
node_defaults = {
|
|
345
|
+
node.item: NodeDefault(
|
|
346
|
+
node_name=node.name,
|
|
347
|
+
node_type=node.node_type,
|
|
348
|
+
transform_type=node.transform_type,
|
|
349
|
+
has_default_settings=check_if_has_default_setting(node.item),
|
|
350
|
+
)
|
|
351
|
+
for node in nodes_list
|
|
352
|
+
}
|
|
378
353
|
node_dict = {n.item: n for n in nodes_list}
|
|
379
354
|
|
|
380
|
-
node_dict["polars_lazy_frame"] = NodeTemplate(
|
|
381
|
-
|
|
355
|
+
node_dict["polars_lazy_frame"] = NodeTemplate(
|
|
356
|
+
name="LazyFrame node",
|
|
357
|
+
item="polars_lazy_frame",
|
|
358
|
+
input=0,
|
|
359
|
+
output=1,
|
|
360
|
+
node_group="special",
|
|
361
|
+
image="",
|
|
362
|
+
node_type="input",
|
|
363
|
+
transform_type="other",
|
|
364
|
+
)
|
|
382
365
|
|
|
383
366
|
return nodes_list, node_dict, node_defaults
|