osbot-utils 1.28.0__tar.gz → 1.29.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.28.0 → osbot_utils-1.29.0}/PKG-INFO +2 -2
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/README.md +1 -1
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/Zip_Bytes.py +34 -8
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/testing/Temp_Folder.py +7 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Files.py +1 -1
- osbot_utils-1.29.0/osbot_utils/utils/Regex.py +25 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Zip.py +4 -1
- osbot_utils-1.29.0/osbot_utils/version +1 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/pyproject.toml +1 -1
- osbot_utils-1.28.0/osbot_utils/version +0 -1
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/LICENSE +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/base_classes/Cache_Pickle.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/base_classes/Kwargs_To_Disk.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/base_classes/Kwargs_To_Self.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/base_classes/Type_Safe.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/base_classes/Type_Safe__List.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/base_classes/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/context_managers/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/context_managers/capture_duration.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/context_managers/disable_root_loggers.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/classes/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/classes/singleton.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/lists/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/lists/filter_list.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/lists/group_by.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/lists/index_by.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/methods/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/methods/cache.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/methods/cache_on_function.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/methods/cache_on_self.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/methods/cache_on_tmp.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/methods/capture_exception.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/methods/capture_status.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/methods/catch.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/methods/context.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/methods/depreciated.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/methods/function_type_check.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/methods/obj_as_context.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/methods/remove_return_value.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/methods/required_fields.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/fluent/Fluent_Dict.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/fluent/Fluent_List.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/fluent/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/graphs/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/graphs/mermaid/Mermaid.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/graphs/mermaid/Mermaid__Edge.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/graphs/mermaid/Mermaid__Graph.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/graphs/mermaid/Mermaid__Node.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/graphs/mermaid/Mermaid__Renderer.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/graphs/mermaid/configs/Mermaid__Edge__Config.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/graphs/mermaid/configs/Mermaid__Node__Config.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/graphs/mermaid/configs/Mermaid__Render__Config.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/graphs/mermaid/examples/Mermaid_Examples__FlowChart.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/graphs/mermaid/models/Mermaid__Diagram_Direction.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/graphs/mermaid/models/Mermaid__Diagram__Type.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/graphs/mermaid/models/Mermaid__Node__Shape.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/graphs/mgraph/MGraph.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/graphs/mgraph/MGraph__Config.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/graphs/mgraph/MGraph__Data.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/graphs/mgraph/MGraph__Edge.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/graphs/mgraph/MGraph__Node.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/graphs/mgraph/MGraph__Random_Graphs.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/graphs/mgraph/MGraph__Serializer.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/graphs/mgraph/MGraphs.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/graphs/mgraph/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/CFormat.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/CPrint.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/Dict_To_Attr.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/Local_Cache.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/Local_Caches.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/Print_Table.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/Python_Audit.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/Random_Seed.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/Type_Registry.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/Ast.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/Ast_Base.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/Ast_Data.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/Ast_Load.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/Ast_Merge.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/Ast_Node.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/Ast_Visit.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/Call_Tree.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Add.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Alias.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_And.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Argument.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Arguments.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Assert.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Assign.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Attribute.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Aug_Assign.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Bin_Op.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Bool_Op.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Break.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Call.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Class_Def.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Compare.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Comprehension.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Constant.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Continue.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Dict.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Eq.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Except_Handler.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Expr.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_For.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Function_Def.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Generator_Exp.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Gt.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_GtE.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_If.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_If_Exp.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Import.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Import_From.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_In.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Is.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Is_Not.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Keyword.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Lambda.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_List.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_List_Comp.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Load.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Lt.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_LtE.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Mod.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Module.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Mult.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Name.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Not.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Not_Eq.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Not_In.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Or.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Pass.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Pow.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Raise.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Return.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Set.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Slice.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Starred.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Store.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Sub.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Subscript.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Try.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Tuple.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Unary_Op.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_While.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_With.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_With_Item.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/Ast_Yield.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ast/nodes/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Actions.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Config.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Data.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Invoke.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Row.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Table.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/cache_requests/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/cache_requests/flows/flow__Cache__Requests.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/flows/Flow.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/flows/Task.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/flows/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/html/Dict_To_Css.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/html/Dict_To_Html.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/html/Dict_To_Tags.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/html/Html_To_Dict.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/html/Html_To_Tag.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/html/Tag__Base.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/html/Tag__Body.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/html/Tag__Div.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/html/Tag__H.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/html/Tag__HR.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/html/Tag__Head.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/html/Tag__Html.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/html/Tag__Link.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/html/Tag__Style.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/html/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/pubsub/Event__Queue.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/pubsub/PubSub__Client.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/pubsub/PubSub__Room.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/pubsub/PubSub__Server.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/pubsub/PubSub__Sqlite.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/pubsub/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Connect.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Disconnect.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Join_Room.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Leave_Room.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Message.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/pubsub/schemas/Schema__PubSub__Client.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/pubsub/schemas/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/Capture_Sqlite_Error.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/Sqlite__Cursor.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/Sqlite__Database.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/Sqlite__Field.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/Sqlite__Globals.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/Sqlite__Table.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/Sqlite__Table__Create.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Database__Disk.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Table.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/cache/Schema__Table__Requests.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Patch.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Sqlite.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Table.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/cache/Sqlite__DB__Requests.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/cache/TestCase__Sqlite__Cache__Requests.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/cache/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Files.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Graph.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Json.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Local.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/domains/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/domains/schemas/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/models/Sqlite__Field__Type.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/models/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/sample_data/Sqlite__Sample_Data__Chinook.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/sample_data/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder__Select.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/sql_builder/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Config.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Edges.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Files.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Nodes.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/sqlite/tables/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ssh/SCP.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ssh/SSH.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ssh/SSH__Cache__Requests.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ssh/SSH__Execute.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ssh/SSH__Health_Check.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ssh/SSH__Linux.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ssh/SSH__Linux__Amazon.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ssh/SSH__Python.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ssh/TestCase__SSH.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/ssh/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/trace/Trace_Call.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/trace/Trace_Call__Config.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/trace/Trace_Call__Graph.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/trace/Trace_Call__Handler.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/trace/Trace_Call__Print_Lines.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/trace/Trace_Call__Print_Traces.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/trace/Trace_Call__Stack.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/trace/Trace_Call__Stack_Node.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/trace/Trace_Call__Stats.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/trace/Trace_Call__View_Model.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/trace/Trace_Files.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/trace/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/testing/Catch.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/testing/Duration.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/testing/Hook_Method.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/testing/Log_To_Queue.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/testing/Log_To_String.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/testing/Logging.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/testing/Patch_Print.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/testing/Profiler.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/testing/Pytest.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/testing/Stderr.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/testing/Stdout.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/testing/Temp_Env_Vars.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/testing/Temp_File.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/testing/Temp_Sys_Path.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/testing/Temp_Web_Server.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/testing/Temp_Zip.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/testing/Temp_Zip_In_Memory.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/testing/Unit_Test.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/testing/Unzip_File.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/testing/__init__.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Assert.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Call_Stack.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Csv.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Dev.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Env.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Exceptions.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Functions.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Http.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Int.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Json.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Json_Cache.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Lists.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Misc.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Objects.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Png.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Process.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Python_Logger.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Status.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Str.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Toml.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.0}/osbot_utils/utils/Version.py +0 -0
- {osbot_utils-1.28.0 → osbot_utils-1.29.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.29.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
|
|
@@ -1,16 +1,20 @@
|
|
1
1
|
from osbot_utils.base_classes.Type_Safe import Type_Safe
|
2
2
|
from osbot_utils.utils.Dev import pprint
|
3
3
|
from osbot_utils.utils.Files import files_list, file_create_from_bytes, temp_file, parent_folder, parent_folder_create
|
4
|
+
from osbot_utils.utils.Regex import list__match_regex, list__match_regexes
|
4
5
|
from osbot_utils.utils.Zip import zip_bytes_empty, zip_bytes__files, zip_bytes__add_file, zip_bytes__add_files, \
|
5
6
|
zip_bytes__replace_files, zip_bytes__replace_file, zip_bytes__file_list, zip_bytes__file, \
|
6
|
-
zip_bytes__add_file__from_disk, zip_bytes__add_files__from_disk, zip_files, zip_file__files
|
7
|
+
zip_bytes__add_file__from_disk, zip_bytes__add_files__from_disk, zip_files, zip_file__files, zip_bytes__remove_files
|
7
8
|
|
8
9
|
|
9
10
|
class Zip_Bytes(Type_Safe):
|
10
|
-
zip_bytes : bytes
|
11
|
+
zip_bytes : bytes = None
|
11
12
|
|
12
|
-
def
|
13
|
+
def __init__(self):
|
14
|
+
super().__init__()
|
13
15
|
self.zip_bytes = zip_bytes_empty()
|
16
|
+
|
17
|
+
def __enter__(self):
|
14
18
|
return self
|
15
19
|
|
16
20
|
def __exit__(self, exc_type, exc_val, exc_tb):
|
@@ -20,7 +24,9 @@ class Zip_Bytes(Type_Safe):
|
|
20
24
|
self.zip_bytes = zip_bytes__add_file(self.zip_bytes, file_path, file_contents)
|
21
25
|
return self
|
22
26
|
|
23
|
-
def add_file__from_disk(self,
|
27
|
+
def add_file__from_disk(self, file_to_add, base_path=None):
|
28
|
+
if base_path is None:
|
29
|
+
base_path = parent_folder(file_to_add)
|
24
30
|
self.zip_bytes = zip_bytes__add_file__from_disk(self.zip_bytes, base_path, file_to_add)
|
25
31
|
return self
|
26
32
|
|
@@ -28,14 +34,22 @@ class Zip_Bytes(Type_Safe):
|
|
28
34
|
self.zip_bytes = zip_bytes__add_files(self.zip_bytes, files_to_add)
|
29
35
|
return self
|
30
36
|
|
31
|
-
def add_files__from_disk(self, base_path, files_to_add):
|
32
|
-
self.zip_bytes = zip_bytes__add_files__from_disk(self.zip_bytes, base_path, files_to_add)
|
37
|
+
def add_files__from_disk(self, base_path, files_to_add, path_prefix=None):
|
38
|
+
self.zip_bytes = zip_bytes__add_files__from_disk(self.zip_bytes, base_path, files_to_add, path_prefix=path_prefix)
|
33
39
|
return self
|
34
40
|
|
35
|
-
def add_folder__from_disk(self,
|
36
|
-
|
41
|
+
def add_folder__from_disk(self, folder_to_add, *patterns):
|
42
|
+
base_path = folder_to_add
|
43
|
+
all_files_in_folder = files_list(folder_to_add)
|
44
|
+
files_to_add = list__match_regexes(all_files_in_folder, *patterns)
|
37
45
|
return self.add_files__from_disk(base_path, files_to_add)
|
38
46
|
|
47
|
+
def add_folder__from_disk__with_prefix(self, folder_to_add, path_prefix, *patterns):
|
48
|
+
base_path = folder_to_add
|
49
|
+
all_files_in_folder = files_list(folder_to_add)
|
50
|
+
files_to_add = list__match_regexes(all_files_in_folder, *patterns)
|
51
|
+
return self.add_files__from_disk(base_path, files_to_add, path_prefix=path_prefix)
|
52
|
+
|
39
53
|
def add_from_zip_file(self, path_zip_file):
|
40
54
|
files_to_add = zip_file__files(path_zip_file)
|
41
55
|
self.add_files(files_to_add)
|
@@ -47,15 +61,27 @@ class Zip_Bytes(Type_Safe):
|
|
47
61
|
def file(self, file_path):
|
48
62
|
return zip_bytes__file(self.zip_bytes, file_path)
|
49
63
|
|
64
|
+
def file_paths(self):
|
65
|
+
return self.files_list()
|
66
|
+
|
50
67
|
def files(self):
|
51
68
|
return zip_bytes__files(self.zip_bytes)
|
52
69
|
|
53
70
|
def files_list(self):
|
54
71
|
return zip_bytes__file_list(self.zip_bytes)
|
55
72
|
|
73
|
+
def list(self):
|
74
|
+
return self.files_list()
|
75
|
+
|
56
76
|
def print_files_list(self):
|
57
77
|
pprint(self.files_list())
|
58
78
|
return self
|
79
|
+
|
80
|
+
def remove_files(self, *patterns):
|
81
|
+
files_to_remove = list__match_regexes(self.files_list(), *patterns)
|
82
|
+
self.zip_bytes = zip_bytes__remove_files(self.zip_bytes, files_to_remove)
|
83
|
+
return self
|
84
|
+
|
59
85
|
def replace_files(self, files_to_replace):
|
60
86
|
self.zip_bytes = zip_bytes__replace_files(self.zip_bytes, files_to_replace)
|
61
87
|
return self
|
@@ -96,6 +96,13 @@ class Temp_Folder:
|
|
96
96
|
file_path = path_combine(self.full_path, target_file)
|
97
97
|
return file_contents(file_path)
|
98
98
|
|
99
|
+
def files_contents(self):
|
100
|
+
result = {}
|
101
|
+
for file_path in self.files():
|
102
|
+
full_path = path_combine(self.full_path, file_path)
|
103
|
+
result[file_path] = file_contents(full_path)
|
104
|
+
return result
|
105
|
+
|
99
106
|
def files(self, show_parent_folder=False, include_folders=False):
|
100
107
|
all_files = files_recursive(self.path(), include_folders=include_folders)
|
101
108
|
if show_parent_folder:
|
@@ -81,7 +81,7 @@ class Files:
|
|
81
81
|
return glob.glob(path_pattern, recursive=recursive)
|
82
82
|
|
83
83
|
@staticmethod
|
84
|
-
def files(path, pattern= '
|
84
|
+
def files(path, pattern= '*', only_files=True):
|
85
85
|
result = []
|
86
86
|
for file in Path(path).rglob(pattern):
|
87
87
|
if only_files and is_not_file(file):
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import re
|
2
|
+
|
3
|
+
from osbot_utils.utils.Status import status_error
|
4
|
+
|
5
|
+
|
6
|
+
def list__match_regex(target, pattern):
|
7
|
+
return list__match_regexes(target, [pattern])
|
8
|
+
|
9
|
+
def list__match_regexes(target, *patterns):
|
10
|
+
if len (patterns) == 0:
|
11
|
+
return target
|
12
|
+
compiled_patterns = []
|
13
|
+
for pattern in patterns:
|
14
|
+
try:
|
15
|
+
compiled_patterns.append(re.compile(pattern)) # todo: find better way to handle regex errors
|
16
|
+
except Exception as error:
|
17
|
+
return status_error(message='Error compiling pattern: {pattern}', error=error)
|
18
|
+
matched_files = []
|
19
|
+
if target and type(target) is list:
|
20
|
+
for file in target:
|
21
|
+
for compiled_pattern in compiled_patterns:
|
22
|
+
if compiled_pattern.match(file):
|
23
|
+
matched_files.append(file)
|
24
|
+
break
|
25
|
+
return matched_files
|
@@ -52,14 +52,17 @@ def zip_bytes__add_file(zip_bytes, zip_file_path, file_contents):
|
|
52
52
|
def zip_bytes__add_file__from_disk(zip_bytes, base_path, file_to_add):
|
53
53
|
return zip_bytes__add_files__from_disk(zip_bytes, base_path, files_to_add=[file_to_add])
|
54
54
|
|
55
|
-
def zip_bytes__add_files__from_disk(zip_bytes, base_path, files_to_add, replace_files=True):
|
55
|
+
def zip_bytes__add_files__from_disk(zip_bytes, base_path, files_to_add, replace_files=True, path_prefix=None):
|
56
56
|
zip_files_to_add = {}
|
57
57
|
if base_path[:-1] != '/':
|
58
58
|
base_path += "/"
|
59
|
+
|
59
60
|
for file_to_add in files_to_add:
|
60
61
|
if file_exists(file_to_add):
|
61
62
|
file_contents = file_contents_as_bytes(file_to_add)
|
62
63
|
zip_file_path = file_to_add.replace(base_path, '')
|
64
|
+
if path_prefix:
|
65
|
+
zip_file_path = path_prefix + zip_file_path
|
63
66
|
zip_files_to_add[zip_file_path] = file_contents
|
64
67
|
|
65
68
|
if replace_files:
|
@@ -0,0 +1 @@
|
|
1
|
+
v1.29.0
|
@@ -1 +0,0 @@
|
|
1
|
-
v1.28.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.28.0 → osbot_utils-1.29.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.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/methods/cache_on_function.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.28.0 → osbot_utils-1.29.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.28.0 → osbot_utils-1.29.0}/osbot_utils/decorators/methods/function_type_check.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-1.28.0 → osbot_utils-1.29.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.28.0 → osbot_utils-1.29.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.28.0 → osbot_utils-1.29.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.28.0 → osbot_utils-1.29.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.28.0 → osbot_utils-1.29.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.28.0 → osbot_utils-1.29.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.28.0 → osbot_utils-1.29.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Row.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|