The code now handles import errors when importing utilities from the `langchain.utilities` module. If an import error occurs, the utility is skipped and not added to the `type_dict` dictionary. This prevents the application from crashing when encountering an invalid or missing utility.
🔥 chore(field_typing): remove unused base.py file as it is no longer needed
🔀 chore(constants): update import statements and add type aliases for better readability and maintainability
🔧 fix(custom_component.py): fix argument type in return statement of CustomComponent.get_args()
🔧 fix(custom_components.py): make description attribute optional in CustomComponentFrontendNode class
🔀 chore(field_typing): add support for Data type in field_typing/base.py
🔀 chore(field_typing): add constants.py file to define supported types in field_typing
🔀 chore(interface/custom): remove duplicate imports and use field_typing types
🔀 chore(utils): fix syntax error in get_base_classes function
The `initialize_database()` function now handles two specific exceptions: "overlaps with other requested revisions" and "Can't locate revision identified by". If either of these exceptions occur, they will not be raised and instead the `alembic_version` table will be deleted. This change improves the error handling and ensures that the database is properly initialized.
🐛 fix(base.py): change assignment of parent_node_id and parent_is_top_level to use state dictionary instead of _data attribute
🐛 fix(test_graph.py): change arguments passed to update_source_handle() function to match its signature
🐛 fix(utils.py): fix update_source_handle function to receive g_nodes and g_edges as arguments instead of flow_data
🐛 fix(utils.py): fix get_updated_edges function to receive g_nodes and g_edges as arguments instead of base_flow and group_node_id
✨ feat(utils.py): add support for passing nodes and edges as arguments to find_last_node, update_source_handle, and get_updated_edges functions to improve reusability and modularity
🐛 fix(utils.py): fix bug where ungrouped nodes were not added to the queue for future processing
✨ feat(utils.py): add functionality to keep track of processed nodes to avoid duplicate processing
✨ feat(utils.py): add functionality to process nodes in a breadth-first manner to ensure correct order of processing
✨ feat(utils.py): add functionality to update source handles correctly when ungrouping nodes
✨ feat(utils.py): add support for nested proxy dictionary in template to handle field and id separately
✅ test(test_graph.py): add test cases for process_flow function to ensure correct processing of grouped chat data
✅ test(test_graph.py): add test cases for update_template function to ensure correct updating of template
🐛 fix(utils.py): change condition from `node["data"]["node"]["flow"]` to `node["data"]["node"].get("flow")` to handle cases where "flow" key is missing in node data
🐛 fix(utils.py): fix incorrect variable name in get_updated_edges function, change `new_edge` to `edge` in the condition
🐛 fix(chat.py): remove unused variable 'valid' to improve code readability
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py): fix indentation of 'yield' statement to match the surrounding code
🐛 fix(chat.py
The "CLASSES_TO_REMOVE" list in the constants.py file has been updated to include the "RunnableSerializable" class. This change was made to ensure that the "RunnableSerializable" class is properly removed when processing the list of classes to remove.