osbot-utils 1.39.0__tar.gz → 1.40.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.39.0 → osbot_utils-1.40.0}/PKG-INFO +2 -2
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/README.md +1 -1
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/base_classes/Type_Safe.py +8 -4
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Json.py +11 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Objects.py +7 -2
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Zip.py +24 -0
- osbot_utils-1.40.0/osbot_utils/version +1 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/pyproject.toml +1 -1
- osbot_utils-1.39.0/osbot_utils/version +0 -1
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/LICENSE +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/base_classes/Cache_Pickle.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/base_classes/Kwargs_To_Disk.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/base_classes/Kwargs_To_Self.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/base_classes/Type_Safe__List.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/base_classes/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/context_managers/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/context_managers/capture_duration.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/context_managers/disable_root_loggers.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/classes/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/classes/singleton.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/lists/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/lists/filter_list.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/lists/group_by.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/lists/index_by.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/methods/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/methods/cache.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/methods/cache_on_function.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/methods/cache_on_self.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/methods/cache_on_tmp.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/methods/capture_exception.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/methods/capture_status.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/methods/catch.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/methods/context.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/methods/depreciated.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/methods/function_type_check.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/methods/obj_as_context.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/methods/remove_return_value.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/methods/required_fields.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/fluent/Fluent_Dict.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/fluent/Fluent_List.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/fluent/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/graphs/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/graphs/mermaid/Mermaid.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/graphs/mermaid/Mermaid__Edge.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/graphs/mermaid/Mermaid__Graph.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/graphs/mermaid/Mermaid__Node.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/graphs/mermaid/Mermaid__Renderer.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/graphs/mermaid/configs/Mermaid__Edge__Config.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/graphs/mermaid/configs/Mermaid__Node__Config.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/graphs/mermaid/configs/Mermaid__Render__Config.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/graphs/mermaid/examples/Mermaid_Examples__FlowChart.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/graphs/mermaid/models/Mermaid__Diagram_Direction.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/graphs/mermaid/models/Mermaid__Diagram__Type.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/graphs/mermaid/models/Mermaid__Node__Shape.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/graphs/mgraph/MGraph.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/graphs/mgraph/MGraph__Config.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/graphs/mgraph/MGraph__Data.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/graphs/mgraph/MGraph__Edge.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/graphs/mgraph/MGraph__Node.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/graphs/mgraph/MGraph__Random_Graphs.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/graphs/mgraph/MGraph__Serializer.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/graphs/mgraph/MGraphs.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/graphs/mgraph/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/CFormat.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/CPrint.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/Dict_To_Attr.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/Hashicorp_Secrets.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/Local_Cache.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/Local_Caches.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/Print_Table.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/Python_Audit.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/Random_Guid.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/Random_Seed.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/Type_Registry.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/Zip_Bytes.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/Ast.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/Ast_Base.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/Ast_Data.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/Ast_Load.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/Ast_Merge.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/Ast_Node.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/Ast_Visit.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/Call_Tree.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Add.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Alias.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_And.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Argument.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Arguments.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Assert.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Assign.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Attribute.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Aug_Assign.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Bin_Op.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Bool_Op.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Break.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Call.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Class_Def.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Compare.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Comprehension.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Constant.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Continue.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Dict.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Eq.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Except_Handler.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Expr.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_For.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Function_Def.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Generator_Exp.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Gt.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_GtE.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_If.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_If_Exp.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Import.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Import_From.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_In.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Is.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Is_Not.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Keyword.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Lambda.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_List.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_List_Comp.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Load.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Lt.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_LtE.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Mod.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Module.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Mult.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Name.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Not.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Not_Eq.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Not_In.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Or.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Pass.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Pow.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Raise.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Return.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Set.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Slice.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Starred.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Store.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Sub.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Subscript.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Try.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Tuple.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Unary_Op.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_While.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_With.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_With_Item.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/Ast_Yield.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ast/nodes/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Actions.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Config.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Data.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Invoke.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Row.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Table.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/cache_requests/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/cache_requests/flows/flow__Cache__Requests.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/flows/Flow.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/flows/Task.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/flows/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/html/Dict_To_Css.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/html/Dict_To_Html.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/html/Dict_To_Tags.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/html/Html_To_Dict.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/html/Html_To_Tag.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/html/Tag__Base.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/html/Tag__Body.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/html/Tag__Div.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/html/Tag__H.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/html/Tag__HR.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/html/Tag__Head.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/html/Tag__Html.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/html/Tag__Link.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/html/Tag__Style.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/html/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/pubsub/Event__Queue.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/pubsub/PubSub__Client.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/pubsub/PubSub__Room.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/pubsub/PubSub__Server.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/pubsub/PubSub__Sqlite.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/pubsub/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Connect.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Disconnect.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Join_Room.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Leave_Room.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Message.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/pubsub/schemas/Schema__PubSub__Client.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/pubsub/schemas/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/Capture_Sqlite_Error.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/Sqlite__Cursor.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/Sqlite__Database.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/Sqlite__Field.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/Sqlite__Globals.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/Sqlite__Table.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/Sqlite__Table__Create.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Database__Disk.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Table.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/cache/Schema__Table__Requests.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Patch.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Sqlite.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Table.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/cache/Sqlite__DB__Requests.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/cache/TestCase__Sqlite__Cache__Requests.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/cache/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Files.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Graph.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Json.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Local.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/domains/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/domains/schemas/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/models/Sqlite__Field__Type.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/models/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/sample_data/Sqlite__Sample_Data__Chinook.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/sample_data/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder__Select.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/sql_builder/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Config.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Edges.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Files.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Nodes.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/sqlite/tables/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ssh/SCP.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ssh/SSH.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ssh/SSH__Cache__Requests.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ssh/SSH__Execute.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ssh/SSH__Health_Check.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ssh/SSH__Linux.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ssh/SSH__Linux__Amazon.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ssh/SSH__Python.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ssh/TestCase__SSH.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/ssh/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/trace/Trace_Call.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/trace/Trace_Call__Config.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/trace/Trace_Call__Graph.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/trace/Trace_Call__Handler.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/trace/Trace_Call__Print_Lines.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/trace/Trace_Call__Print_Traces.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/trace/Trace_Call__Stack.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/trace/Trace_Call__Stack_Node.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/trace/Trace_Call__Stats.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/trace/Trace_Call__View_Model.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/trace/Trace_Files.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/helpers/trace/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/testing/Catch.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/testing/Duration.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/testing/Hook_Method.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/testing/Log_To_Queue.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/testing/Log_To_String.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/testing/Logging.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/testing/Patch_Print.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/testing/Profiler.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/testing/Pytest.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/testing/Stderr.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/testing/Stdout.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/testing/Temp_Env_Vars.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/testing/Temp_File.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/testing/Temp_Folder.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/testing/Temp_Sys_Path.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/testing/Temp_Web_Server.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/testing/Temp_Zip.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/testing/Temp_Zip_In_Memory.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/testing/Unit_Test.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/testing/Unzip_File.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/testing/__init__.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Assert.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Call_Stack.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Csv.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Dev.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Env.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Exceptions.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Files.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Functions.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Http.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Int.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Json_Cache.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Lists.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Misc.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Png.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Process.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Python_Logger.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Regex.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Status.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Str.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Toml.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.0}/osbot_utils/utils/Version.py +0 -0
- {osbot_utils-1.39.0 → osbot_utils-1.40.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.40.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
|
|
@@ -10,6 +10,7 @@ from decimal import Decimal
|
|
10
10
|
from enum import Enum, EnumMeta
|
11
11
|
from typing import List
|
12
12
|
from osbot_utils.base_classes.Type_Safe__List import Type_Safe__List
|
13
|
+
from osbot_utils.helpers.Random_Guid import Random_Guid
|
13
14
|
from osbot_utils.utils.Dev import pprint
|
14
15
|
from osbot_utils.utils.Json import json_parse
|
15
16
|
from osbot_utils.utils.Misc import list_set
|
@@ -256,15 +257,18 @@ class Type_Safe:
|
|
256
257
|
def deserialize_from_dict(self, data):
|
257
258
|
for key, value in data.items():
|
258
259
|
if hasattr(self, key) and isinstance(getattr(self, key), Type_Safe):
|
259
|
-
getattr(self, key).deserialize_from_dict(value)
|
260
|
+
getattr(self, key).deserialize_from_dict(value) # Recursive call for complex nested objects
|
260
261
|
else:
|
261
|
-
if hasattr(self, '__annotations__'):
|
262
|
+
if hasattr(self, '__annotations__'): # can only do type safety checks if the class does not have annotations
|
262
263
|
if obj_is_attribute_annotation_of_type(self, key, EnumMeta): # Handle the case when the value is an Enum
|
263
264
|
enum_type = getattr(self, '__annotations__').get(key)
|
264
265
|
if type(value) is not enum_type: # If the value is not already of the target type
|
265
266
|
value = enum_from_value(enum_type, value) # Try to resolve the value into the enum
|
266
|
-
|
267
|
-
|
267
|
+
elif obj_is_attribute_annotation_of_type(self, key, Decimal): # handle Decimals # todo: refactor these special cases into a separate method to class
|
268
|
+
value = Decimal(value)
|
269
|
+
elif obj_is_attribute_annotation_of_type(self, key, Random_Guid): # handle Random_Guid objects
|
270
|
+
value = Random_Guid(value)
|
271
|
+
setattr(self, key, value) # Direct assignment for primitive types and other structures
|
268
272
|
|
269
273
|
return self
|
270
274
|
|
@@ -3,6 +3,8 @@ import os
|
|
3
3
|
|
4
4
|
from osbot_utils.utils.Misc import str_lines, str_md5, str_sha256
|
5
5
|
from osbot_utils.utils.Files import file_create_gz, file_create, load_file_gz, file_contents, file_lines, file_lines_gz
|
6
|
+
from osbot_utils.utils.Zip import str_to_gz, gz_to_str
|
7
|
+
|
6
8
|
|
7
9
|
def json_dumps(python_object, indent=4, pretty=True, sort_keys=False, default=str, raise_exception=False):
|
8
10
|
if python_object:
|
@@ -39,6 +41,15 @@ def json_sha_256(target):
|
|
39
41
|
return str_sha256(json_dumps(target))
|
40
42
|
|
41
43
|
|
44
|
+
def json_to_gz(data):
|
45
|
+
value = json_dumps(data, pretty=False)
|
46
|
+
return str_to_gz(value)
|
47
|
+
|
48
|
+
def gz_to_json(gz_data):
|
49
|
+
data = gz_to_str(gz_data)
|
50
|
+
return json.loads(data)
|
51
|
+
|
52
|
+
|
42
53
|
|
43
54
|
class Json:
|
44
55
|
|
@@ -295,8 +295,13 @@ def obj_attribute_annotation(target, attr_name):
|
|
295
295
|
|
296
296
|
def obj_is_attribute_annotation_of_type(target, attr_name, expected_type):
|
297
297
|
attribute_annotation = obj_attribute_annotation(target, attr_name)
|
298
|
-
attribute_type = type(attribute_annotation)
|
299
|
-
return attribute_type is expected_type
|
298
|
+
#attribute_type = type(attribute_annotation)
|
299
|
+
#return attribute_type is expected_type
|
300
|
+
if expected_type is attribute_annotation:
|
301
|
+
return True
|
302
|
+
if expected_type is type(attribute_annotation):
|
303
|
+
return True
|
304
|
+
return False
|
300
305
|
|
301
306
|
def obj_is_type_union_compatible(var_type, compatible_types):
|
302
307
|
origin = get_origin(var_type)
|
@@ -221,6 +221,30 @@ def zip_files(base_folder, file_pattern="*.*", target_file=None):
|
|
221
221
|
|
222
222
|
return target_file
|
223
223
|
|
224
|
+
# actions on strings
|
225
|
+
|
226
|
+
def bytes_to_gz(input_bytes):
|
227
|
+
buf = io.BytesIO() # Create an in-memory bytes buffer
|
228
|
+
with gzip.GzipFile(fileobj=buf, mode='wb') as gz_file: # Create a gzip file object that writes to the buffer
|
229
|
+
gz_file.write(input_bytes) # Write the input bytes to the gzip file object
|
230
|
+
return buf.getvalue() # Get the compressed data from the buffer
|
231
|
+
|
232
|
+
def str_to_gz(value):
|
233
|
+
buf = io.BytesIO() # Create an in-memory bytes buffer
|
234
|
+
with gzip.GzipFile(fileobj=buf, mode='wb') as gz_file: # Create a gzip file object that writes to the buffer
|
235
|
+
gz_file.write(value.encode('utf-8')) # Write the input string to the gzip file object
|
236
|
+
return buf.getvalue() # Get the compressed data from the buffer
|
237
|
+
|
238
|
+
def gz_to_bytes(gz_data):
|
239
|
+
buf = io.BytesIO(gz_data) # Create an in-memory bytes buffer with the gzip data
|
240
|
+
with gzip.GzipFile(fileobj=buf, mode='rb') as gz_file: # Create a gzip file object that reads from the buffer
|
241
|
+
return gz_file.read() # Read the decompressed data as bytes
|
242
|
+
|
243
|
+
def gz_to_str(gz_data):
|
244
|
+
buf = io.BytesIO(gz_data) # Create an in-memory bytes buffer with the gzip data
|
245
|
+
with gzip.GzipFile(fileobj=buf, mode='rb') as gz_file: # Create a gzip file object that reads from the buffer
|
246
|
+
return gz_file.read().decode('utf-8') # Read the decompressed data and decode it to a string
|
247
|
+
|
224
248
|
###########################
|
225
249
|
# extra function's mappings
|
226
250
|
|
@@ -0,0 +1 @@
|
|
1
|
+
v1.40.0
|
@@ -1 +0,0 @@
|
|
1
|
-
v1.39.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
|
{osbot_utils-1.39.0 → osbot_utils-1.40.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.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/methods/cache_on_function.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.39.0 → osbot_utils-1.40.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.39.0 → osbot_utils-1.40.0}/osbot_utils/decorators/methods/function_type_check.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-1.39.0 → osbot_utils-1.40.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.39.0 → osbot_utils-1.40.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.39.0 → osbot_utils-1.40.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
|
{osbot_utils-1.39.0 → osbot_utils-1.40.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.39.0 → osbot_utils-1.40.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.39.0 → osbot_utils-1.40.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.39.0 → osbot_utils-1.40.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
|
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
|