osbot-utils 1.56.0__tar.gz → 1.58.0__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.
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/PKG-INFO +2 -2
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/README.md +1 -1
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/flows/Flow.py +36 -8
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/flows/Flow__Events.py +8 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/flows/Task.py +3 -1
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/flows/models/Flow__Event_Type.py +2 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Objects.py +2 -1
- osbot_utils-1.58.0/osbot_utils/version +1 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/pyproject.toml +1 -1
- osbot_utils-1.56.0/osbot_utils/version +0 -1
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/LICENSE +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/base_classes/Cache_Pickle.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/base_classes/Kwargs_To_Disk.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/base_classes/Kwargs_To_Self.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/base_classes/Type_Safe.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/base_classes/Type_Safe__List.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/base_classes/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/context_managers/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/context_managers/async_invoke.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/context_managers/capture_duration.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/context_managers/disable_root_loggers.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/context_managers/print_duration.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/classes/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/classes/singleton.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/lists/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/lists/filter_list.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/lists/group_by.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/lists/index_by.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/methods/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/methods/cache.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/methods/cache_on_function.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/methods/cache_on_self.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/methods/cache_on_tmp.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/methods/capture_exception.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/methods/capture_status.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/methods/catch.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/methods/context.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/methods/depreciated.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/methods/function_type_check.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/methods/obj_as_context.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/methods/remove_return_value.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/methods/required_fields.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/fluent/Fluent_Dict.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/fluent/Fluent_List.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/fluent/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mermaid/Mermaid.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mermaid/Mermaid__Edge.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mermaid/Mermaid__Graph.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mermaid/Mermaid__Node.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mermaid/Mermaid__Renderer.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mermaid/configs/Mermaid__Edge__Config.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mermaid/configs/Mermaid__Node__Config.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mermaid/configs/Mermaid__Render__Config.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mermaid/examples/Mermaid_Examples__FlowChart.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mermaid/models/Mermaid__Diagram_Direction.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mermaid/models/Mermaid__Diagram__Type.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mermaid/models/Mermaid__Node__Shape.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mgraph/MGraph.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mgraph/MGraph__Config.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mgraph/MGraph__Data.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mgraph/MGraph__Edge.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mgraph/MGraph__Node.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mgraph/MGraph__Random_Graphs.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mgraph/MGraph__Serializer.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mgraph/MGraphs.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mgraph/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/CFormat.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/CPrint.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/Dependency_Manager.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/Dict_To_Attr.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/Hashicorp_Secrets.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/Local_Cache.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/Local_Caches.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/Print_Table.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/Python_Audit.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/Random_Guid.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/Random_Seed.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/Type_Registry.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/Zip_Bytes.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/Ast.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/Ast_Base.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/Ast_Data.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/Ast_Load.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/Ast_Merge.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/Ast_Node.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/Ast_Visit.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/Call_Tree.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Add.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Alias.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_And.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Argument.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Arguments.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Assert.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Assign.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Attribute.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Aug_Assign.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Bin_Op.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Bool_Op.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Break.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Call.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Class_Def.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Compare.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Comprehension.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Constant.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Continue.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Dict.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Eq.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Except_Handler.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Expr.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_For.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Function_Def.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Generator_Exp.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Gt.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_GtE.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_If.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_If_Exp.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Import.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Import_From.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_In.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Is.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Is_Not.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Keyword.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Lambda.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_List.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_List_Comp.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Load.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Lt.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_LtE.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Mod.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Module.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Mult.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Name.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Not.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Not_Eq.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Not_In.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Or.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Pass.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Pow.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Raise.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Return.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Set.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Slice.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Starred.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Store.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Sub.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Subscript.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Try.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Tuple.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Unary_Op.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_While.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_With.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_With_Item.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Yield.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Actions.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Config.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Data.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Invoke.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Row.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Table.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/cache_requests/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/cache_requests/flows/flow__Cache__Requests.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/flows/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/flows/decorators/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/flows/decorators/flow.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/flows/decorators/task.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/flows/models/Flow__Config.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/flows/models/Flow__Event.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/flows/models/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/html/Dict_To_Css.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/html/Dict_To_Html.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/html/Dict_To_Tags.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/html/Html_To_Dict.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/html/Html_To_Tag.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/html/Tag__Base.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/html/Tag__Body.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/html/Tag__Div.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/html/Tag__H.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/html/Tag__HR.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/html/Tag__Head.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/html/Tag__Html.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/html/Tag__Link.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/html/Tag__Style.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/html/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/pubsub/Event__Queue.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/pubsub/PubSub__Client.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/pubsub/PubSub__Room.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/pubsub/PubSub__Server.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/pubsub/PubSub__Sqlite.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/pubsub/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Connect.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Disconnect.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Execute_Method.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Join_Room.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Leave_Room.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Message.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/pubsub/schemas/Schema__PubSub__Client.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/pubsub/schemas/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/Capture_Sqlite_Error.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/Sqlite__Cursor.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/Sqlite__Database.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/Sqlite__Field.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/Sqlite__Globals.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/Sqlite__Table.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/Sqlite__Table__Create.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Database__Disk.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Table.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/cache/Schema__Table__Requests.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Patch.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Sqlite.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Table.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/cache/Sqlite__DB__Requests.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/cache/TestCase__Sqlite__Cache__Requests.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/cache/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Files.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Graph.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Json.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Local.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/domains/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/domains/schemas/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/models/Sqlite__Field__Type.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/models/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/sample_data/Sqlite__Sample_Data__Chinook.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/sample_data/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder__Select.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/sql_builder/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Config.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Edges.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Files.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Nodes.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/sqlite/tables/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ssh/SCP.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ssh/SSH.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ssh/SSH__Cache__Requests.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ssh/SSH__Execute.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ssh/SSH__Health_Check.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ssh/SSH__Linux.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ssh/SSH__Linux__Amazon.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ssh/SSH__Python.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ssh/TestCase__SSH.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ssh/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/trace/Trace_Call.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/trace/Trace_Call__Config.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/trace/Trace_Call__Graph.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/trace/Trace_Call__Handler.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/trace/Trace_Call__Print_Lines.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/trace/Trace_Call__Print_Traces.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/trace/Trace_Call__Stack.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/trace/Trace_Call__Stack_Node.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/trace/Trace_Call__Stats.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/trace/Trace_Call__View_Model.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/trace/Trace_Files.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/trace/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/testing/Catch.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/testing/Custom_Handler_For_Http_Tests.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/testing/Duration.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/testing/Hook_Method.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/testing/Log_To_Queue.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/testing/Log_To_String.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/testing/Logging.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/testing/Patch_Print.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/testing/Profiler.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/testing/Pytest.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/testing/Stderr.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/testing/Stdout.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/testing/Temp_Env_Vars.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/testing/Temp_File.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/testing/Temp_Folder.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/testing/Temp_Sys_Path.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/testing/Temp_Web_Server.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/testing/Temp_Zip.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/testing/Temp_Zip_In_Memory.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/testing/Unit_Test.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/testing/Unzip_File.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/testing/__init__.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Assert.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Call_Stack.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Csv.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Dev.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Env.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Exceptions.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Files.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Functions.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Http.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Int.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Json.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Json_Cache.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Lists.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Misc.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Png.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Process.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Python_Logger.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Regex.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Status.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Str.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Threads.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Toml.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Version.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/Zip.py +0 -0
- {osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/utils/__init__.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: osbot_utils
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.58.0
|
4
4
|
Summary: OWASP Security Bot - Utils
|
5
5
|
Home-page: https://github.com/owasp-sbot/OSBot-Utils
|
6
6
|
License: MIT
|
@@ -22,7 +22,7 @@ Description-Content-Type: text/markdown
|
|
22
22
|
|
23
23
|
Powerful Python util methods and classes that simplify common apis and tasks.
|
24
24
|
|
25
|
-

|
26
26
|
[](https://codecov.io/gh/owasp-sbot/OSBot-Utils)
|
27
27
|
|
28
28
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Powerful Python util methods and classes that simplify common apis and tasks.
|
4
4
|
|
5
|
-

|
6
6
|
[](https://codecov.io/gh/owasp-sbot/OSBot-Utils)
|
7
7
|
|
8
8
|
|
@@ -2,6 +2,8 @@ import asyncio
|
|
2
2
|
import logging
|
3
3
|
import typing
|
4
4
|
|
5
|
+
from osbot_utils.helpers.Dependency_Manager import Dependency_Manager
|
6
|
+
|
5
7
|
from osbot_utils.base_classes.Type_Safe import Type_Safe
|
6
8
|
from osbot_utils.helpers.CFormat import CFormat, f_dark_grey, f_magenta, f_bold
|
7
9
|
from osbot_utils.helpers.flows.models.Flow__Config import Flow__Config
|
@@ -33,8 +35,23 @@ class Flow(Type_Safe):
|
|
33
35
|
logger : Python_Logger
|
34
36
|
cformat : CFormat
|
35
37
|
executed_tasks : typing.List
|
38
|
+
resolved_args : tuple
|
39
|
+
resolved_kwargs : dict
|
40
|
+
|
41
|
+
def add_flow_artifact(self, description=None, key=None, data=None, artifact_type=None): # todo: figure out how to make this work since at the moment most are showing an unknown type
|
42
|
+
result_data = dict(flow_run_id = self.flow_id,
|
43
|
+
description = description or 'description' ,
|
44
|
+
key = key or 'an-artifact-key' ,
|
45
|
+
data = data or {"link": "https://www.google.com", "link_text": "link to Google"}, # test data to see if it worksw
|
46
|
+
type = artifact_type or "link" ) # type clashed with built-in type
|
36
47
|
|
48
|
+
flow_events.on__new_artifact(self, result_data )
|
37
49
|
|
50
|
+
def add_flow_result(self, key, description):
|
51
|
+
result_data = dict(flow_run_id = self.flow_id,
|
52
|
+
key = key ,
|
53
|
+
description = description )
|
54
|
+
flow_events.on__new_result(self, result_data )
|
38
55
|
|
39
56
|
def config_logger(self):
|
40
57
|
with self.logger as _:
|
@@ -56,6 +73,7 @@ class Flow(Type_Safe):
|
|
56
73
|
self.logger.add_memory_logger() # todo: move to method that does pre-execute tasks
|
57
74
|
|
58
75
|
self.log_debug(f"Executing flow run '{self.f__flow_id()}'")
|
76
|
+
self.resolve_args_and_kwargs()
|
59
77
|
try:
|
60
78
|
with Stdout() as stdout:
|
61
79
|
self.invoke_flow_target()
|
@@ -70,28 +88,31 @@ class Flow(Type_Safe):
|
|
70
88
|
if self.flow_config.log_to_memory:
|
71
89
|
self.captured_exec_logs = self.log_messages_with_colors()
|
72
90
|
self.logger.remove_memory_logger() # todo: move to method that does post-execute tasks
|
91
|
+
if self.flow_return_value:
|
92
|
+
self.add_flow_result(key = 'flow-return-value', description=f'{self.flow_return_value}')
|
73
93
|
flow_events.on__flow__stop(self)
|
74
94
|
return self
|
75
95
|
|
76
|
-
def f__flow_id(self):
|
77
|
-
return self.cformat.green(self.flow_id)
|
78
|
-
|
79
|
-
def f__flow_name(self):
|
80
|
-
return self.cformat.blue(self.flow_name)
|
81
|
-
|
82
96
|
def captured_logs(self):
|
83
97
|
return ansis_to_texts(self.captured_exec_logs)
|
84
98
|
|
85
99
|
|
86
100
|
async def invoke_flow_target__thread(self, flow): # this is a REALLY important method which is used to pin the flow object to the call stack
|
87
|
-
return await flow.flow_target(*flow.
|
101
|
+
return await flow.flow_target(*flow.resolved_args, **flow.resolved_kwargs) # which is then used by the Task.find_flow method to find it
|
88
102
|
|
89
103
|
def invoke_flow_target(self):
|
90
104
|
if asyncio.iscoroutinefunction(self.flow_target):
|
91
105
|
async_coroutine = self.invoke_flow_target__thread(self) # use this special method to pin the flow object to the call stack
|
92
106
|
self.flow_return_value = invoke_in_new_event_loop(async_coroutine) # this will start a complete new thread to execute the flow (which is exactly what we want)
|
93
107
|
else:
|
94
|
-
self.flow_return_value = self.flow_target(*self.
|
108
|
+
self.flow_return_value = self.flow_target(*self.resolved_args, **self.resolved_kwargs) # if the flow is sync, just execute the flow target
|
109
|
+
|
110
|
+
def f__flow_id(self):
|
111
|
+
return self.cformat.green(self.flow_id)
|
112
|
+
|
113
|
+
def f__flow_name(self):
|
114
|
+
return self.cformat.blue(self.flow_name)
|
115
|
+
|
95
116
|
|
96
117
|
def log_captured_stdout(self, stdout):
|
97
118
|
for line in stdout.value().splitlines():
|
@@ -162,6 +183,13 @@ class Flow(Type_Safe):
|
|
162
183
|
def random_flow_name(self):
|
163
184
|
return lower(random_id(prefix=FLOW__RANDOM_NAME__PREFIX))
|
164
185
|
|
186
|
+
def resolve_args_and_kwargs(self):
|
187
|
+
dependency_manager = Dependency_Manager()
|
188
|
+
dependency_manager.add_dependency('this_flow', self)
|
189
|
+
dependency_manager.add_dependency('flow_data', self.data)
|
190
|
+
self.resolved_args, self.resolved_kwargs = dependency_manager.resolve_dependencies(self.flow_target,
|
191
|
+
*self.flow_args,
|
192
|
+
**self.flow_kwargs)
|
165
193
|
|
166
194
|
def set_flow_target(self, target, *args, **kwargs):
|
167
195
|
self.flow_target = target
|
@@ -27,6 +27,14 @@ class Flow_Events(Type_Safe):
|
|
27
27
|
flow_event = Flow__Event(event_type=Flow__Event_Type.FLOW_MESSAGE, event_source=flow, event_data=event_data)
|
28
28
|
self.raise_event(flow_event)
|
29
29
|
|
30
|
+
def on__new_artifact(self, flow, result_data):
|
31
|
+
flow_event = Flow__Event(event_type=Flow__Event_Type.NEW_ARTIFACT , event_source=flow, event_data=result_data)
|
32
|
+
self.raise_event(flow_event)
|
33
|
+
|
34
|
+
def on__new_result(self, flow, result_data):
|
35
|
+
flow_event = Flow__Event(event_type=Flow__Event_Type.NEW_RESULT , event_source=flow, event_data=result_data)
|
36
|
+
self.raise_event(flow_event)
|
37
|
+
|
30
38
|
def on__task__start(self, task):
|
31
39
|
flow_event = Flow__Event(event_type=Flow__Event_Type.TASK_START, event_source=task)
|
32
40
|
self.raise_event(flow_event)
|
@@ -61,6 +61,9 @@ class Task(Type_Safe):
|
|
61
61
|
|
62
62
|
self.task_flow.executed_tasks.append(self)
|
63
63
|
self.log_debug(f"Executing task '{f_blue(self.task_name)}'")
|
64
|
+
self.resolve_args_and_kwargs()
|
65
|
+
|
66
|
+
def resolve_args_and_kwargs(self):
|
64
67
|
dependency_manager = Dependency_Manager()
|
65
68
|
dependency_manager.add_dependency('this_task', self )
|
66
69
|
dependency_manager.add_dependency('this_flow', self.task_flow )
|
@@ -68,7 +71,6 @@ class Task(Type_Safe):
|
|
68
71
|
dependency_manager.add_dependency('flow_data', self.task_flow.data)
|
69
72
|
self.resolved_args, self.resolved_kwargs = dependency_manager.resolve_dependencies(self.task_target, *self.task_args, **self.task_kwargs)
|
70
73
|
|
71
|
-
|
72
74
|
def execute__task_target__sync(self):
|
73
75
|
try:
|
74
76
|
with Stdout() as stdout:
|
{osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/flows/models/Flow__Event_Type.py
RENAMED
@@ -4,5 +4,7 @@ class Flow__Event_Type(Type_Safe):
|
|
4
4
|
FLOW_MESSAGE: str = 'flow_message'
|
5
5
|
FLOW_START : str = 'flow_start'
|
6
6
|
FLOW_STOP : str = 'flow_stop'
|
7
|
+
NEW_ARTIFACT: str = 'new_artifact'
|
8
|
+
NEW_RESULT : str = 'new_result'
|
7
9
|
TASK_START : str = 'task_start'
|
8
10
|
TASK_STOP : str = 'task_stop'
|
@@ -4,6 +4,7 @@ import pickle
|
|
4
4
|
import sys
|
5
5
|
import types
|
6
6
|
import typing
|
7
|
+
from collections.abc import Mapping
|
7
8
|
|
8
9
|
from typing import Union
|
9
10
|
from types import SimpleNamespace
|
@@ -124,7 +125,7 @@ def dict_remove(data, target):
|
|
124
125
|
|
125
126
|
def dict_to_obj(target, class_name="_"):
|
126
127
|
DynamicClass = type(class_name, (SimpleNamespace,), {})
|
127
|
-
if isinstance(target,
|
128
|
+
if isinstance(target, Mapping):
|
128
129
|
new_dict = {}
|
129
130
|
for key, value in target.items():
|
130
131
|
new_dict[key] = dict_to_obj(value, class_name=class_name) # Recursively convert elements in the dict
|
@@ -0,0 +1 @@
|
|
1
|
+
v1.58.0
|
@@ -1 +0,0 @@
|
|
1
|
-
v1.56.0
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/context_managers/disable_root_loggers.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/methods/cache_on_function.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/methods/capture_exception.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/methods/function_type_check.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/decorators/methods/remove_return_value.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mermaid/models/Mermaid__Node__Shape.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/graphs/mgraph/MGraph__Random_Graphs.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Comprehension.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Except_Handler.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/ast/nodes/Ast_Generator_Exp.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.56.0 → osbot_utils-1.58.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Row.py
RENAMED
File without changes
|