osbot-utils 1.25.0__tar.gz → 1.27.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.25.0 → osbot_utils-1.27.0}/PKG-INFO +2 -2
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/README.md +1 -1
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ssh/SSH__Execute.py +6 -4
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ssh/TestCase__SSH.py +4 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/testing/Temp_Folder.py +5 -1
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/testing/Temp_Zip.py +6 -2
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Env.py +3 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Files.py +30 -8
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Zip.py +3 -2
- osbot_utils-1.27.0/osbot_utils/version +1 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/pyproject.toml +1 -1
- osbot_utils-1.25.0/osbot_utils/version +0 -1
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/LICENSE +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/base_classes/Cache_Pickle.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/base_classes/Kwargs_To_Disk.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/base_classes/Kwargs_To_Self.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/base_classes/Type_Safe.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/base_classes/Type_Safe__List.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/base_classes/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/context_managers/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/context_managers/capture_duration.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/context_managers/disable_root_loggers.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/classes/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/classes/singleton.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/lists/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/lists/filter_list.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/lists/group_by.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/lists/index_by.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/methods/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/methods/cache.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/methods/cache_on_function.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/methods/cache_on_self.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/methods/cache_on_tmp.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/methods/capture_exception.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/methods/capture_status.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/methods/catch.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/methods/context.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/methods/depreciated.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/methods/function_type_check.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/methods/obj_as_context.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/methods/remove_return_value.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/methods/required_fields.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/fluent/Fluent_Dict.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/fluent/Fluent_List.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/fluent/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/graphs/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/graphs/mermaid/Mermaid.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/graphs/mermaid/Mermaid__Edge.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/graphs/mermaid/Mermaid__Graph.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/graphs/mermaid/Mermaid__Node.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/graphs/mermaid/Mermaid__Renderer.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/graphs/mermaid/configs/Mermaid__Edge__Config.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/graphs/mermaid/configs/Mermaid__Node__Config.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/graphs/mermaid/configs/Mermaid__Render__Config.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/graphs/mermaid/examples/Mermaid_Examples__FlowChart.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/graphs/mermaid/models/Mermaid__Diagram_Direction.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/graphs/mermaid/models/Mermaid__Diagram__Type.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/graphs/mermaid/models/Mermaid__Node__Shape.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/graphs/mgraph/MGraph.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/graphs/mgraph/MGraph__Config.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/graphs/mgraph/MGraph__Data.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/graphs/mgraph/MGraph__Edge.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/graphs/mgraph/MGraph__Node.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/graphs/mgraph/MGraph__Random_Graphs.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/graphs/mgraph/MGraph__Serializer.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/graphs/mgraph/MGraphs.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/graphs/mgraph/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/CFormat.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/CPrint.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/Dict_To_Attr.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/Local_Cache.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/Local_Caches.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/Print_Table.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/Python_Audit.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/Random_Seed.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/Type_Registry.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/Ast.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/Ast_Base.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/Ast_Data.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/Ast_Load.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/Ast_Merge.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/Ast_Node.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/Ast_Visit.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/Call_Tree.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Add.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Alias.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_And.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Argument.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Arguments.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Assert.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Assign.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Attribute.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Aug_Assign.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Bin_Op.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Bool_Op.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Break.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Call.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Class_Def.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Compare.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Comprehension.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Constant.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Continue.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Dict.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Eq.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Except_Handler.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Expr.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_For.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Function_Def.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Generator_Exp.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Gt.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_GtE.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_If.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_If_Exp.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Import.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Import_From.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_In.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Is.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Is_Not.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Keyword.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Lambda.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_List.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_List_Comp.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Load.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Lt.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_LtE.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Mod.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Module.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Mult.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Name.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Not.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Not_Eq.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Not_In.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Or.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Pass.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Pow.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Raise.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Return.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Set.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Slice.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Starred.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Store.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Sub.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Subscript.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Try.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Tuple.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Unary_Op.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_While.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_With.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_With_Item.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/Ast_Yield.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ast/nodes/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Actions.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Config.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Data.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Invoke.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Row.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Table.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/cache_requests/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/cache_requests/flows/flow__Cache__Requests.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/flows/Flow.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/flows/Task.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/flows/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/html/Dict_To_Css.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/html/Dict_To_Html.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/html/Dict_To_Tags.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/html/Html_To_Dict.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/html/Html_To_Tag.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/html/Tag__Base.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/html/Tag__Body.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/html/Tag__Div.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/html/Tag__H.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/html/Tag__HR.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/html/Tag__Head.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/html/Tag__Html.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/html/Tag__Link.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/html/Tag__Style.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/html/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/pubsub/Event__Queue.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/pubsub/PubSub__Client.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/pubsub/PubSub__Room.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/pubsub/PubSub__Server.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/pubsub/PubSub__Sqlite.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/pubsub/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Connect.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Disconnect.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Join_Room.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Leave_Room.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Message.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/pubsub/schemas/Schema__PubSub__Client.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/pubsub/schemas/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/Capture_Sqlite_Error.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/Sqlite__Cursor.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/Sqlite__Database.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/Sqlite__Field.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/Sqlite__Globals.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/Sqlite__Table.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/Sqlite__Table__Create.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Database__Disk.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Table.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/cache/Schema__Table__Requests.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Patch.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Sqlite.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Table.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/cache/Sqlite__DB__Requests.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/cache/TestCase__Sqlite__Cache__Requests.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/cache/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Files.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Graph.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Json.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Local.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/domains/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/domains/schemas/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/models/Sqlite__Field__Type.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/models/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/sample_data/Sqlite__Sample_Data__Chinook.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/sample_data/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder__Select.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/sql_builder/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Config.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Edges.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Files.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Nodes.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/sqlite/tables/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ssh/SCP.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ssh/SSH.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ssh/SSH__Cache__Requests.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ssh/SSH__Health_Check.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ssh/SSH__Linux.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ssh/SSH__Linux__Amazon.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ssh/SSH__Python.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/ssh/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/trace/Trace_Call.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/trace/Trace_Call__Config.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/trace/Trace_Call__Graph.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/trace/Trace_Call__Handler.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/trace/Trace_Call__Print_Lines.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/trace/Trace_Call__Print_Traces.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/trace/Trace_Call__Stack.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/trace/Trace_Call__Stack_Node.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/trace/Trace_Call__Stats.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/trace/Trace_Call__View_Model.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/trace/Trace_Files.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/trace/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/testing/Catch.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/testing/Duration.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/testing/Hook_Method.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/testing/Log_To_Queue.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/testing/Log_To_String.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/testing/Logging.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/testing/Patch_Print.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/testing/Profiler.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/testing/Pytest.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/testing/Stderr.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/testing/Stdout.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/testing/Temp_Env_Vars.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/testing/Temp_File.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/testing/Temp_Sys_Path.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/testing/Temp_Web_Server.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/testing/Temp_Zip_In_Memory.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/testing/Unit_Test.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/testing/Unzip_File.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/testing/__init__.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Assert.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Call_Stack.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Csv.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Dev.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Exceptions.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Functions.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Http.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Int.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Json.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Json_Cache.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Lists.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Misc.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Objects.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Png.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Process.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Python_Logger.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Status.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Str.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Toml.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/utils/Version.py +0 -0
- {osbot_utils-1.25.0 → osbot_utils-1.27.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.27.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
|
|
@@ -4,6 +4,7 @@ from osbot_utils.decorators.lists.group_by import group_by
|
|
4
4
|
from osbot_utils.decorators.lists.index_by import index_by
|
5
5
|
from osbot_utils.utils.Dev import pprint
|
6
6
|
from osbot_utils.utils.Env import get_env
|
7
|
+
from osbot_utils.utils.Http import is_port_open
|
7
8
|
from osbot_utils.utils.Misc import str_to_int, str_to_bool
|
8
9
|
from osbot_utils.utils.Process import start_process, run_process
|
9
10
|
from osbot_utils.utils.Status import status_error
|
@@ -140,10 +141,11 @@ class SSH__Execute(Type_Safe):
|
|
140
141
|
def ssh_not__setup_ok(self):
|
141
142
|
return self.ssh_setup_ok() is False
|
142
143
|
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
144
|
+
def ssh_host_available(self):
|
145
|
+
return is_port_open(self.ssh_host, self.ssh_port)
|
146
|
+
|
147
|
+
def ssh_host_not_available(self):
|
148
|
+
return self.ssh_host_available() is False
|
147
149
|
|
148
150
|
def print_status__stderr__stdout(self, result):
|
149
151
|
print()
|
@@ -21,6 +21,10 @@ class TestCase__SSH(TestCase):
|
|
21
21
|
import pytest # we can only import this locally since this dependency doesn't exist in the main osbot_utils codebase
|
22
22
|
pytest.skip("SSH host not set")
|
23
23
|
|
24
|
+
with cls.ssh.ssh_execute() as _:
|
25
|
+
if _.ssh_not__setup_ok() or _.ssh_host_not_available():
|
26
|
+
cls.skipTest(cls, 'ssh is not setup or enabled')
|
27
|
+
|
24
28
|
cls.cache = SSH__Cache__Requests()
|
25
29
|
cls.cache.patch_apply()
|
26
30
|
|
@@ -4,7 +4,7 @@ from osbot_utils.utils.Misc import random_string
|
|
4
4
|
|
5
5
|
from osbot_utils.utils.Files import path_combine, temp_folder_current, safe_file_name, folder_exists, folder_create, \
|
6
6
|
folder_delete_recursively, files_list, file_create, folder_files, folders_recursive, files_find, files_recursive, \
|
7
|
-
temp_file_in_folder, create_folder, filter_parent_folder
|
7
|
+
temp_file_in_folder, create_folder, filter_parent_folder, file_contents
|
8
8
|
from osbot_utils.utils.Zip import zip_folder
|
9
9
|
|
10
10
|
|
@@ -92,6 +92,10 @@ class Temp_Folder:
|
|
92
92
|
def path(self):
|
93
93
|
return self.full_path
|
94
94
|
|
95
|
+
def file_contents(self, target_file):
|
96
|
+
file_path = path_combine(self.full_path, target_file)
|
97
|
+
return file_contents(file_path)
|
98
|
+
|
95
99
|
def files(self, show_parent_folder=False, include_folders=False):
|
96
100
|
all_files = files_recursive(self.path(), include_folders=include_folders)
|
97
101
|
if show_parent_folder:
|
@@ -1,5 +1,6 @@
|
|
1
1
|
from osbot_utils.testing.Temp_Folder import Temp_Folder
|
2
|
-
from osbot_utils.utils.Files import Files, is_folder, file_exists, file_name
|
2
|
+
from osbot_utils.utils.Files import Files, is_folder, file_exists, file_name, file_move_to_folder, file_move, \
|
3
|
+
file_move_to
|
3
4
|
from osbot_utils.utils.Zip import zip_folder, zip_file_list
|
4
5
|
|
5
6
|
|
@@ -42,4 +43,7 @@ class Temp_Zip():
|
|
42
43
|
return self
|
43
44
|
|
44
45
|
def zip_file_exists(self):
|
45
|
-
return file_exists(self.zip_file)
|
46
|
+
return file_exists(self.zip_file)
|
47
|
+
|
48
|
+
def move_to(self, target_file):
|
49
|
+
file_move_to(self.zip_file, target_file)
|
@@ -94,6 +94,9 @@ def load_dotenv(dotenv_path=None, override=False): # todo: add dete
|
|
94
94
|
def not_in_github_action():
|
95
95
|
return in_github_action() is False
|
96
96
|
|
97
|
+
def set_env(key, value):
|
98
|
+
os.environ[key] = value
|
99
|
+
return value
|
97
100
|
|
98
101
|
def unload_dotenv(dotenv_path=None):
|
99
102
|
if dotenv_path: # If a specific dotenv path is provided, unload from it
|
@@ -8,6 +8,8 @@ import shutil
|
|
8
8
|
import tempfile
|
9
9
|
from os.path import abspath, join
|
10
10
|
from pathlib import Path, PosixPath
|
11
|
+
from typing import Union
|
12
|
+
|
11
13
|
from osbot_utils.utils.Misc import bytes_to_base64, base64_to_bytes, random_string
|
12
14
|
|
13
15
|
|
@@ -306,13 +308,24 @@ class Files:
|
|
306
308
|
return Files.open(path, mode='rb')
|
307
309
|
|
308
310
|
@staticmethod
|
309
|
-
def path_combine(path1, path2):
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
311
|
+
# def path_combine(path1, path2):
|
312
|
+
# if type(path1) in [str, Path] and type(path2) in [str, Path]:
|
313
|
+
# parent_path = str(path1)
|
314
|
+
# sub_path = str(path2)
|
315
|
+
# if sub_path.startswith('/'):
|
316
|
+
# sub_path = sub_path[1:]
|
317
|
+
# return abspath(join(parent_path,sub_path))
|
318
|
+
|
319
|
+
def path_combine(path1: Union[str, os.PathLike], path2: Union[str, os.PathLike]) -> str:
|
320
|
+
if path1 is None or path2 is None:
|
321
|
+
raise ValueError("Both paths must be provided")
|
322
|
+
|
323
|
+
parent_path = str(path1)
|
324
|
+
sub_path = str(path2)
|
325
|
+
|
326
|
+
sub_path = sub_path.lstrip('/') # Remove leading slashes from sub_path
|
327
|
+
|
328
|
+
return abspath(join(parent_path, sub_path))
|
316
329
|
|
317
330
|
@staticmethod
|
318
331
|
def parent_folder(path, use_full_path=False):
|
@@ -451,8 +464,8 @@ def all_parent_folders(path=None, include_path=False):
|
|
451
464
|
if path and path not in parent_directories: # to handle the root path case
|
452
465
|
parent_directories.append(path)
|
453
466
|
break
|
454
|
-
|
455
467
|
return parent_directories
|
468
|
+
|
456
469
|
def file_move(source_file, target_file):
|
457
470
|
if file_exists(source_file):
|
458
471
|
file_copy(source_file, target_file)
|
@@ -461,6 +474,14 @@ def file_move(source_file, target_file):
|
|
461
474
|
return True
|
462
475
|
return False
|
463
476
|
|
477
|
+
def file_move_to_folder(source_file, target_folder):
|
478
|
+
if file_exists(source_file):
|
479
|
+
if folder_exists(target_folder):
|
480
|
+
target_file = path_combine(target_folder, file_name(source_file))
|
481
|
+
if file_move(source_file, target_file):
|
482
|
+
return target_file
|
483
|
+
|
484
|
+
|
464
485
|
def folders_names_in_folder(target):
|
465
486
|
folders = folders_in_folder(target)
|
466
487
|
return folders_names(folders)
|
@@ -506,6 +527,7 @@ file_full_path = absolute_path
|
|
506
527
|
file_lines = Files.lines
|
507
528
|
file_lines_gz = Files.lines_gz
|
508
529
|
file_md5 = Files.contents_md5
|
530
|
+
file_move_to = file_move
|
509
531
|
file_name = Files.file_name
|
510
532
|
file_name_without_extension = Files.file_name_without_extension
|
511
533
|
file_not_exists = Files.not_exists
|
@@ -136,5 +136,6 @@ def zip_files(base_folder, file_pattern="*.*", target_file=None):
|
|
136
136
|
|
137
137
|
|
138
138
|
# extra function's mappings
|
139
|
-
file_unzip
|
140
|
-
folder_zip
|
139
|
+
file_unzip = unzip_file
|
140
|
+
folder_zip = zip_folder
|
141
|
+
zip_bytes_unzip_to_folder = zip_bytes_extract_to_folder
|
@@ -0,0 +1 @@
|
|
1
|
+
v1.27.0
|
@@ -1 +0,0 @@
|
|
1
|
-
v1.25.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
|
{osbot_utils-1.25.0 → osbot_utils-1.27.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
|
{osbot_utils-1.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/methods/cache_on_function.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.25.0 → osbot_utils-1.27.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.25.0 → osbot_utils-1.27.0}/osbot_utils/decorators/methods/function_type_check.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-1.25.0 → osbot_utils-1.27.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.25.0 → osbot_utils-1.27.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.25.0 → osbot_utils-1.27.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
|
{osbot_utils-1.25.0 → osbot_utils-1.27.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.25.0 → osbot_utils-1.27.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.25.0 → osbot_utils-1.27.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.25.0 → osbot_utils-1.27.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Row.py
RENAMED
File without changes
|
File without changes
|