Commit graph

1,092 commits

Author SHA1 Message Date
Gabriel Luiz Freitas Almeida
98eca09270 🔧 fix(custom_component.py): add type hints to improve code readability and maintainability
🔧 fix(custom_component.py): add return type hint to 'load_flow' method for better code documentation
🔧 fix(custom_component.py): add return type hint to 'list_flows' method for better code documentation
2023-07-28 11:22:40 -03:00
Gabriel Luiz Freitas Almeida
25a59d745d 🔧 chore(types.py): refactor add_new_custom_field function to improve readability and maintainability
🔧 chore(types.py): refactor build_field_config function to improve readability and maintainability
2023-07-28 11:22:10 -03:00
gustavoschaedler
d579257f0d 🐛 fix(types.py): handle exceptions when getting custom function and building field config to prevent crashes and log errors
 feat(types.py): add validation check for custom component before building field config to ensure only valid components are processed
🐛 fix(types.py): handle empty function_args case to prevent errors when adding extra fields to the frontend node
🐛 fix(types.py): handle exceptions when creating custom component to prevent crashes and log errors
2023-07-28 01:21:05 +01:00
Gabriel Luiz Freitas Almeida
b2e784dcb7 🐛 fix(types.py): fix issue with incorrect assignment of field_advanced variable in add_new_custom_field function
 feat(types.py): add support for advanced field configuration in add_new_custom_field function
🐛 fix(types.py): fix issue with incorrect assignment of field_advanced variable in add_code_field function
 feat(types.py): add support for advanced field configuration in add_code_field function
🐛 fix(types.py): fix issue with incorrect sorting of function_args in add_extra_fields function
 feat(types.py): add sorting of function_args in add_extra_fields function
🐛 fix(types.py): fix issue with incorrect usage of field_config in add_code_field function
 feat(types.py): add support for field_config in add_code_field function
🐛 fix(types.py): fix issue with incorrect usage of field_config in build_langchain_template_custom_component function
 feat(types.py): add support for field_config in build_langchain_template_custom_component function
2023-07-27 17:19:24 -03:00
Gabriel Luiz Freitas Almeida
35724e1473 🐛 fix(code_parser.py): handle "None" values in default arguments correctly 2023-07-27 17:17:57 -03:00
Gabriel Luiz Freitas Almeida
3b93c5814b 🐛 fix(utils.py): simplify format_content function to improve readability and maintainability 2023-07-27 14:33:31 -03:00
Gabriel Luiz Freitas Almeida
707e55c880 🐛 fix(loading.py): refactor instantiate_prompt function to improve readability and maintainability
 feat(utils.py): add utility functions to handle node type and format kwargs in instantiate_prompt function
2023-07-27 14:32:10 -03:00
gustavoschaedler
2144e0d92d 🐛 fix(code_parser.py): strip single quotes from default values in CodeParser class to improve consistency and readability 2023-07-27 15:12:18 +01:00
Gabriel Luiz Freitas Almeida
28bf88cf79 🐛 fix(custom_component.py): fix custom_repr method to return a string representation of repr_value 2023-07-27 09:55:48 -03:00
Gabriel Luiz Freitas Almeida
4a0fe95093 🔧 chore(types.py): add support for custom field value in add_new_custom_field function
🔧 chore(types.py): add support for custom field value in add_new_custom_field function to allow specifying a default value for the field
2023-07-27 09:44:01 -03:00
Gabriel Luiz Freitas Almeida
2b55b0c3b3 🔀 refactor(custom_component.py): rename load_flow method parameter flow_id to graph_id for clarity
🔀 refactor(custom_component.py): add optional `tweaks` parameter to `load_flow` method to allow for processing tweaks on the graph data
🔀 refactor(custom_component.py): rename `data_graph` variable to `graph_data` for consistency and clarity
🔀 refactor(custom_component.py): add logic to process tweaks on the `graph_data` if `tweaks` parameter is provided
2023-07-27 09:39:27 -03:00
Gabriel Luiz Freitas Almeida
8d8fae78c8 🔧 fix(__init__.py): update import statement for CustomComponent to reflect new location
🔧 fix(constants.py): update import statement for CustomComponent to reflect new location
🔧 fix(constants.py): update field_config to build_config to match changes in CustomComponent class
🔧 fix(constants.py): update build method signature to match changes in CustomComponent class
2023-07-27 07:02:14 -03:00
gustavoschaedler
a89a9a3267 🔥 refactor(custom.py): remove unused code and class 'CustomComponent_old' to improve code cleanliness and maintainability
🔧 fix(test_custom_component.py): fix formatting issues in test_custom_component.py for better readability
 feat(test_custom_component.py): add import statements for 'patch' and 'MagicMock' to enable mocking in tests
🔬 test(test_custom_component.py): add test for the 'get_function' method of the Component class with valid code and function_entrypoint_name
🔬 test(test_custom_component.py): add test for the 'parse_assign' method of the CodeParser class
🔬 test(test_custom_component.py): add test for the 'get_code_tree' method of the Component class when given incorrect syntax
🔬 test(test_custom_component.py): add test for the '_class_template_validation' method of the CustomComponent class when the code is None
🔬 test(test_custom_component.py): add test for the 'get_function_entrypoint_args' method of the CustomComponent class
🔬 test(test_custom_component.py): add test for the 'get_function_entrypoint_return_type' method of the CustomComponent class
🔬 test(test_custom_component.py): add test for the 'get_main_class_name' method of the CustomComponent class when there is no main class

🔥 refactor(test_custom_component.py): remove commented out code and unused fixtures to improve code readability and maintainability

🔧 refactor(tests): remove commented out test cases and unused imports
 feat(tests): add new test case for list_flows method when there are no flows in the database
 feat(tests): add new test case for build_config method when code is not provided
 feat(tests): add new test case for list_flows method when there are multiple queries to the database
2023-07-26 16:56:21 +01:00
Gabriel Luiz Freitas Almeida
63ead274c4 🔧 fix(constants.py): add support for additional Python base types in CUSTOM_COMPONENT_SUPPORTED_TYPES dictionary
🔧 fix(custom_component.py): update return_type_valid_list to use CUSTOM_COMPONENT_SUPPORTED_TYPES dictionary
🔧 fix(types.py): update add_base_classes function to use CUSTOM_COMPONENT_SUPPORTED_TYPES dictionary instead of LANGCHAIN_BASE_TYPES
2023-07-26 10:15:22 -03:00
Gabriel Luiz Freitas Almeida
02ca9739a0 Merge branch 'dev' into python_custom_node_component 2023-07-26 07:55:25 -03:00
Gabriel Luiz Freitas Almeida
67b2aeae67 🐛 fix(custom_component.py): remove unused import of UUID from langflow.interface.custom.custom_component.py
🐛 fix(custom_component.py): handle case when code is None in is_check_valid method of CustomComponent class
🐛 fix(custom_component.py): handle case when code is None in get_function_entrypoint_args property of CustomComponent class
🐛 fix(custom_component.py): handle case when code is None in get_function_entrypoint_return_type property of CustomComponent class
🐛 fix(custom_component.py): change flow_id parameter type from UUID to str in load_flow method of CustomComponent class
🐛 fix(util.py): ignore type error for multiprocess import in langflow.utils.util module
🐛 fix(util.py): handle case when _type is a type object in remove_optional_wrapper function of langflow.utils.util module
2023-07-26 07:47:34 -03:00
Gabriel Luiz Freitas Almeida
c4a2c1c80a feat(schema.py): add ClassCodeDetails and CallableCodeDetails data classes to store details about classes and callables respectively 2023-07-26 07:46:31 -03:00
Gabriel Luiz Freitas Almeida
bf422f7f37 🔨 refactor(code_parser.py): remove unused imports and classes to improve code cleanliness and maintainability
🔨 refactor(code_parser.py): remove commented out code for function details to improve code readability
🔨 refactor(code_parser.py): refactor parse_node method to remove type ignore comments and improve code readability
🔨 refactor(code_parser.py): refactor parse_function_args method to improve code readability and maintainability
🔨 refactor(code_parser.py): refactor parse_positional_args method to improve code readability and maintainability
🔨 refactor(code_parser.py): refactor parse_varargs method to improve code readability and maintainability
🔨 refactor(code_parser.py): refactor parse_keyword_args method to improve code readability and maintainability
🔨 refactor(code_parser.py): refactor parse_kwargs method to improve code readability and maintainability
🔨 refactor(code_parser.py): refactor parse_function_body method to improve code readability and maintainability
🔨 refactor(code_parser.py): refactor parse_assign method to improve code readability and maintainability
🔨 refactor(code_parser.py): refactor parse_class method to improve code readability and maintainability
🔨 refactor(code_parser.py): refactor parse_global_vars method to improve code readability and maintainability
2023-07-26 07:46:00 -03:00
Gabriel Luiz Freitas Almeida
029f01aa35 🐛 fix(base.py): change variable name from fileTypes to file_types for consistency and readability
🐛 fix(agents.py): change variable name from fileTypes to file_types for consistency and readability
🐛 fix(documentloaders.py): change variable name from fileTypes to file_types for consistency and readability
🐛 fix(llms.py): change variable name from fileTypes to file_types for consistency and readability
2023-07-26 07:45:31 -03:00
Gabriel Luiz Freitas Almeida
57dd75b3f5 🔧 chore(component.py): add Optional type hint to the 'code' field in the Component model to indicate that it is an optional field
🔧 chore(component.py): update the error message in the validate_entrypoint_name function to provide more clarity on the required field
2023-07-26 07:43:49 -03:00
Gabriel Luiz Freitas Almeida
39755fb217 🐛 fix(code_parser.py): refactor CodeParser.parse_function_node to use CallableCodeDetails dataclass for storing function details 2023-07-26 07:12:24 -03:00
gustavoschaedler
1e54c17574 🔥 refactor(tools.py): remove unused import and typing import statement 2023-07-26 01:00:56 +01:00
Gabriel Luiz Freitas Almeida
683d0ffcc8 🐛 fix(types.py): prevent adding base classes that are in CLASSES_TO_REMOVE list to frontend_node 2023-07-25 20:54:57 -03:00
gustavoschaedler
f486c27a2f 🔥 refactor(types.py): remove commented out code for building langchain custom component list from path
🔨 refactor(types.py): refactor load_files_from_path function to improve readability and maintainability

🔨 refactor(types.py): refactor build_and_validate_all_files function to improve readability and maintainability

🔨 refactor(types.py): refactor build_invalid_menu function to improve readability and maintainability
2023-07-25 23:45:35 +01:00
gustavoschaedler
0ada6b841f 🐛 fix(types.py): remove unnecessary blank line
 feat(types.py): refactor build_langchain_template_custom_component function to improve readability and error handling
2023-07-25 23:44:36 +01:00
gustavoschaedler
e8f6b435f2 🐛 fix(types.py): fix formatting issues in build_langchain_template_custom_component function for better readability
🐛 fix(types.py): fix formatting issues in build_langchain_custom_component_list_from_path function for better readability
2023-07-25 22:20:28 +01:00
gustavoschaedler
60f6c0a8ed Merge branch 'python_custom_node_component' of github.com:logspace-ai/langflow into python_custom_node_component 2023-07-25 22:06:21 +01:00
gustavoschaedler
883f852b73 🐛 fix(utils.py): move merge_nested_dicts function to the top of the file for better organization
 feat(utils.py): add merge_nested_dicts function to merge nested dictionaries recursively
🐛 fix(endpoints.py): import merge_nested_dicts function from the correct module
 feat(endpoints.py): use merge_nested_dicts function to merge dictionaries in build_langchain_custom_component_list_from_path function
🐛 fix(types.py): import merge_nested_dicts function from the correct module
 feat(types.py): use merge_nested_dicts function to merge dictionaries in build_langchain_custom_component_list_from_path function
🐛 fix(types.py): import merge_nested_dicts function from the correct module
 feat(types.py): use merge_nested_dicts function to merge valid and invalid menus in build_langchain_custom_component_list_from_path function
🐛 fix(tools.py): import Optional from typing module
 feat(tools.py): add CustomComponentEmptyNode class to represent an empty custom component template
2023-07-25 21:58:09 +01:00
Gabriel Luiz Freitas Almeida
4e5850da3a 🔀 chore(base.py): add "beta" field to the serialized representation of FrontendNode class
📝 docs(base.py): update documentation for FrontendNode class to include information about the "beta" field
2023-07-25 17:49:30 -03:00
Gabriel Luiz Freitas Almeida
74e263811b 🔨 refactor(types.py): import CustomComponentFrontendNode from custom_components module to improve code organization and readability
🔨 refactor(types.py): change usage of CustomComponentNode to CustomComponentFrontendNode to align with updated module structure

🔨 refactor(frontend_node/base.py): add beta flag to FrontendNode class to indicate if a node is in beta stage

🔨 refactor(custom_components.py): add beta flag to CustomComponentFrontendNode class to indicate it is in beta stage

🔨 refactor(tools.py): remove unused import of DEFAULT_CUSTOM_COMPONENT_CODE

🔨 refactor(tools.py): remove CustomComponentNode class as it is no longer used
2023-07-25 17:22:02 -03:00
Gabriel Luiz Freitas Almeida
b76141b3df 🔄 refactor(custom_component.py): rename list_flow_names method to list_flows for better clarity and consistency
🐛 fix(custom_component.py): fix return value of list_flows method to return the actual flow objects instead of just their names
🔥 chore(custom_component.py): remove unused build method as it is not implemented
2023-07-25 17:12:48 -03:00
Gabriel Luiz Freitas Almeida
46c6afd85f 🔥 refactor(main.py): remove commented out code for getting log level in create_app() function
🔒 chore(main.py): configure logger in create_app() function to ensure proper logging setup
2023-07-25 15:13:43 -03:00
Gabriel Luiz Freitas Almeida
a928005b7b 🐛 fix(endpoints.py): change import statement for typing module to import Annotated from typing module to fix type hinting error
 feat(endpoints.py): add support for clear_cache parameter in process_flow endpoint to allow clearing the cache before processing the flow
🐛 fix(process.py): add logic to clear cache if clear_cache parameter is True in process_graph_cached function to fix caching issue
2023-07-25 15:04:41 -03:00
Gabriel Luiz Freitas Almeida
c83060ed58 🐛 fix(base.py): import CLASSES_TO_REMOVE constant from constants module to fix NameError
🔀 chore(constants.py): add CLASSES_TO_REMOVE constant to store classes to be removed from base.py module
2023-07-25 14:21:43 -03:00
Gabriel Luiz Freitas Almeida
12933ccf52 🔧 chore(__main__.py): add debug logs to update_settings function for better troubleshooting
 feat(__main__.py): add support for loading settings from a specified config file
 feat(__main__.py): add support for setting remove_api_keys flag
 feat(__main__.py): add support for setting cache flag
 feat(__main__.py): add support for adding component path
2023-07-25 13:53:39 -03:00
Gabriel Luiz Freitas Almeida
0095fc4753 🔧 chore(settings.py): add BASE_COMPONENTS_PATH constant to improve code readability and maintainability
🔧 chore(settings.py): add support for LANGFLOW_COMPONENT_PATH environment variable to allow custom component paths to be added
2023-07-25 12:16:06 -03:00
Gabriel Luiz Freitas Almeida
aebdfad63c 🔀 chore(config.yaml): rename 'custom' section to 'custom_components' for better clarity and consistency 2023-07-25 12:03:28 -03:00
Gabriel Luiz Freitas Almeida
aa387f89b3 🐛 fix(types.py): add error handling when building custom components to prevent crashes and log the error message 2023-07-25 11:47:21 -03:00
Gabriel Luiz Freitas Almeida
eb94b957b5 🐛 fix(endpoints.py): fix merging of custom component dictionaries from multiple paths
 feat(endpoints.py): add support for merging custom component dictionaries from multiple paths to build the final dictionary of all components
2023-07-25 11:46:57 -03:00
Gabriel Luiz Freitas Almeida
fae3250439 🔧 chore(constants.py): add 'google_cse_id' to FORCE_SHOW_FIELDS list to include it in the forced display fields 2023-07-25 10:58:39 -03:00
Gabriel Luiz Freitas Almeida
ac0aa71c10 🐛 fix(__main__.py): add support for component_path parameter to update_settings function
 feat(__main__.py): add component_path option to serve command to specify the directory containing custom components
🐛 fix(settings.py): modify update_settings function to handle list attributes correctly
2023-07-25 10:58:08 -03:00
Gabriel Luiz Freitas Almeida
17e84e4b2e 🔨 refactor(endpoints.py): rename directory_loader module to directory_reader for better naming consistency
🔨 refactor(endpoints.py): rename directory_loader import to directory_reader for better naming consistency
🔨 refactor(directory_reader.py): rename directory_loader module to directory_reader for better naming consistency
🔨 refactor(types.py): rename directory_loader import to directory_reader for better naming consistency
2023-07-25 10:58:07 -03:00
Gabriel Luiz Freitas Almeida
eece41a69a 🔨 refactor(endpoints.py): rename 'load_custom_component_from_path' module to 'directory_loader' for better clarity and consistency
🔨 refactor(types.py): rename 'load_custom_component_from_path' module to 'directory_loader' for better clarity and consistency
2023-07-25 10:06:26 -03:00
Lucas Oliveira
b6ee0ff800 Merge branch 'modalRefactor' into python_custom_node_component 2023-07-23 19:50:51 -03:00
Gabriel Luiz Freitas Almeida
564b113c3a 🔧 chore(main.py): configure logger in create_app function to improve logging configuration
🔧 chore(logger.py): change default log level to DEBUG in configure function for more detailed logging
2023-07-21 23:58:28 -03:00
Gabriel Luiz Freitas Almeida
80db6b910e 🔧 fix(__main__.py): import get_number_of_workers function from langflow.utils.util module to fix NameError
🔧 fix(__main__.py): change default value of workers option to -1 to indicate automatic calculation of number of workers
🔧 fix(__main__.py): remove unused import of cpu_count from multiprocess module
🔧 fix(__main__.py): remove unused import of time module
🔧 fix(__main__.py): remove unused import of httpx module
🔧 fix(__main__.py): remove unused import of sys module
🔧 fix(__main__.py): remove unused import of os module
🔧 fix(__main__.py): remove unused import of Path class from pathlib module
🔧 fix(__main__.py): remove unused import of load_dotenv function from dotenv module
🔧 fix(__main__.py): remove unused import of typer module
🔧 fix(__main__.py): remove unused import of app object from typer module
🔧 fix(__main__.py): remove unused import of Optional type from typing module
🔧 fix(__main__.py): remove unused import of Process class from multiprocess module
🔧 fix(__main__.py): remove unused import of platform module
🔧 fix(__main__.py): remove unused import of update_settings function
🔧 fix(__main__.py): remove unused import of run_langflow function
🔧 fix(util.py): import logger from langflow.utils.logger module to fix NameError
🔧 fix(util.py): import cpu_count from multiprocess module to fix NameError
🔧 fix(util.py): add default value of None to workers parameter in get_number_of_workers function to fix TypeError
2023-07-21 23:57:52 -03:00
Gabriel Luiz Freitas Almeida
cf688adf53 🚀 feat(custom_component.py): add method list_flow_names() to retrieve a list of flow names from the database
🐛 fix(custom_component.py): remove unused build() method to improve code cleanliness and avoid confusion
2023-07-21 23:15:53 -03:00
Gabriel Luiz Freitas Almeida
67e12c425f 🔀 chore(constants.py): add "str" as a base type in LANGCHAIN_BASE_TYPES to support string values in custom interfaces 2023-07-21 23:15:26 -03:00
Gabriel Luiz Freitas Almeida
6f300ddf94 🐛 fix(custom_component.py): add missing build_config method to CustomComponent class
🐛 fix(types.py): update build_langchain_template_custom_component function to use build_config method of CustomComponent class
2023-07-21 19:09:20 -03:00
gustavoschaedler
e84aca717b 🔀 chore(endpoints.py): move merge_nested_dicts function to correct local scope
🐛 fix(endpoints.py): fix get_all endpoint to correctly merge native_components and custom_components_from_file dictionaries
2023-07-21 22:32:54 +01:00