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

|
27
27
|
[](https://codecov.io/gh/owasp-sbot/OSBot-Utils)
|
28
28
|
|
29
29
|
|
@@ -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
|
|
@@ -14,7 +14,7 @@ from osbot_utils.helpers.Random_Guid import Random_Guid
|
|
14
14
|
from osbot_utils.helpers.Random_Guid_Short import Random_Guid_Short
|
15
15
|
from osbot_utils.helpers.Timestamp_Now import Timestamp_Now
|
16
16
|
from osbot_utils.utils.Dev import pprint
|
17
|
-
from osbot_utils.utils.Json import json_parse
|
17
|
+
from osbot_utils.utils.Json import json_parse, json_to_bytes, json_to_gz
|
18
18
|
from osbot_utils.utils.Misc import list_set
|
19
19
|
from osbot_utils.utils.Objects import default_value, value_type_matches_obj_annotation_for_attr, \
|
20
20
|
raise_exception_on_obj_type_annotation_mismatch, obj_is_attribute_annotation_of_type, enum_from_value, \
|
@@ -54,22 +54,6 @@ immutable_types = (bool, int, float, complex, str, tuple, frozenset, bytes, None
|
|
54
54
|
class Type_Safe:
|
55
55
|
|
56
56
|
def __init__(self, **kwargs):
|
57
|
-
"""
|
58
|
-
Initialize an instance of the derived class, strictly assigning provided keyword
|
59
|
-
arguments to corresponding instance attributes.
|
60
|
-
|
61
|
-
Parameters:
|
62
|
-
**kwargs: Variable length keyword arguments.
|
63
|
-
|
64
|
-
Raises:
|
65
|
-
Exception: If a key from kwargs does not correspond to any attribute
|
66
|
-
pre-defined in the class, an exception is raised to prevent
|
67
|
-
setting an undefined attribute.
|
68
|
-
|
69
|
-
"""
|
70
|
-
# if 'disable_type_safety' in kwargs: # special case
|
71
|
-
# self.__type_safety__ = kwargs['disable_type_safety'] is False
|
72
|
-
# del kwargs['disable_type_safety']
|
73
57
|
|
74
58
|
for (key, value) in self.__cls_kwargs__().items(): # assign all default values to self
|
75
59
|
if value is not None: # when the value is explicitly set to None on the class static vars, we can't check for type safety
|
@@ -230,9 +214,16 @@ class Type_Safe:
|
|
230
214
|
# global methods added to any class that base classes this
|
231
215
|
# todo: see if there should be a prefix on these methods, to make it easier to spot them
|
232
216
|
# of if these are actually that useful that they should be added like this
|
217
|
+
def bytes(self):
|
218
|
+
return json_to_bytes(self.json())
|
219
|
+
|
220
|
+
def bytes_gz(self):
|
221
|
+
return json_to_gz(self.json())
|
222
|
+
|
233
223
|
def json(self):
|
234
224
|
return self.serialize_to_dict()
|
235
225
|
|
226
|
+
|
236
227
|
def merge_with(self, target):
|
237
228
|
original_attrs = {k: v for k, v in self.__dict__.items() if k not in target.__dict__} # Store the original attributes of self that should be retained.
|
238
229
|
self.__dict__ = target.__dict__ # Set the target's __dict__ to self, now self and target share the same __dict__.
|
@@ -1,9 +1,9 @@
|
|
1
|
-
from osbot_utils.base_classes.Type_Safe
|
2
|
-
from osbot_utils.utils.Dev
|
3
|
-
from osbot_utils.utils.Files
|
4
|
-
from osbot_utils.utils.Misc
|
5
|
-
from osbot_utils.utils.Regex
|
6
|
-
from osbot_utils.utils.Zip
|
1
|
+
from osbot_utils.base_classes.Type_Safe import Type_Safe
|
2
|
+
from osbot_utils.utils.Dev import pprint
|
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.Misc import random_text
|
5
|
+
from osbot_utils.utils.Regex import list__match_regex, list__match_regexes
|
6
|
+
from osbot_utils.utils.Zip import zip_bytes_empty, zip_bytes__files, zip_bytes__add_file, zip_bytes__add_files, \
|
7
7
|
zip_bytes__replace_files, zip_bytes__replace_file, zip_bytes__file_list, zip_bytes__file, \
|
8
8
|
zip_bytes__add_file__from_disk, zip_bytes__add_files__from_disk, zip_files, zip_file__files, zip_bytes__remove_files
|
9
9
|
|
@@ -5,6 +5,8 @@ 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
6
|
from osbot_utils.utils.Zip import str_to_gz, gz_to_str
|
7
7
|
|
8
|
+
def bytes_to_json_loads(data):
|
9
|
+
return json.loads(data.decode())
|
8
10
|
|
9
11
|
def json_dumps(python_object, indent=4, pretty=True, sort_keys=False, default=str, raise_exception=False):
|
10
12
|
if python_object:
|
@@ -135,6 +137,7 @@ class Json:
|
|
135
137
|
def json_save_tmp_file(python_object, pretty=True):
|
136
138
|
return Json.save_file(python_object=python_object, pretty=pretty, path=None)
|
137
139
|
|
140
|
+
bytes_to_json = bytes_to_json_loads
|
138
141
|
file_create_json = Json.save_file_pretty
|
139
142
|
file_contents_json = Json.load_file
|
140
143
|
|
@@ -158,6 +161,7 @@ json_md5 = Json.md5
|
|
158
161
|
json_lines_loads = Json.loads_json_lines
|
159
162
|
json_parse = Json.loads
|
160
163
|
json_lines_parse = Json.loads_json_lines
|
164
|
+
json_to_bytes = json_dumps_to_bytes
|
161
165
|
json_to_str = json_dumps
|
162
166
|
json_round_trip = Json.round_trip
|
163
167
|
json_save = Json.save_file
|
@@ -5,17 +5,18 @@ from osbot_utils.utils.Files import safe_file_name
|
|
5
5
|
|
6
6
|
# todo: refactor this this class all str related methods (mainly from the Misc class)
|
7
7
|
|
8
|
-
|
8
|
+
REGEX__ANSI_ESCAPE_PATTERN = re.compile(r'\x1b\[[0-9;]*m')
|
9
|
+
REGEX__SAFE_ID_REGEX = re.compile(r'[^a-zA-Z0-9_-]')
|
9
10
|
|
10
11
|
def ansi_text_visible_length(ansi_text):
|
11
12
|
if type(ansi_text) is str:
|
12
|
-
ansi_escape = re.compile(
|
13
|
+
ansi_escape = re.compile(REGEX__ANSI_ESCAPE_PATTERN) # This regex matches the escape sequences used for text formatting
|
13
14
|
visible_text = ansi_escape.sub('', ansi_text) # Remove the escape sequences
|
14
15
|
return len(visible_text) # Return the length of the remaining text
|
15
16
|
|
16
17
|
def ansi_to_text(ansi_text: str):
|
17
18
|
if type(ansi_text) is str:
|
18
|
-
return
|
19
|
+
return REGEX__ANSI_ESCAPE_PATTERN.sub('', ansi_text)
|
19
20
|
|
20
21
|
def ansis_to_texts(ansis_texts: list): # todo: find a better name for this method :)
|
21
22
|
if type(ansis_texts) is list:
|
@@ -33,6 +34,23 @@ def strip_quotes(value: str): # Remove surrounding quo
|
|
33
34
|
return value[1:-1]
|
34
35
|
return value
|
35
36
|
|
37
|
+
def safe_id(value):
|
38
|
+
if value is None or value == "":
|
39
|
+
raise ValueError("Invalid ID: The ID must not be empty.")
|
40
|
+
|
41
|
+
if not isinstance(value, str):
|
42
|
+
value = str(value)
|
43
|
+
|
44
|
+
if len(value) > 36:
|
45
|
+
raise ValueError(f"Invalid ID: The ID must not exceed 36 characters (was {len(value)}).")
|
46
|
+
|
47
|
+
sanitized_value = REGEX__SAFE_ID_REGEX.sub('_', value)
|
48
|
+
|
49
|
+
if set(sanitized_value) == {'_'}:
|
50
|
+
raise ValueError("Invalid ID: The sanitized ID must not consist entirely of underscores.")
|
51
|
+
|
52
|
+
return sanitized_value
|
53
|
+
|
36
54
|
def str_dedent(value, strip=True):
|
37
55
|
result = textwrap.dedent(value)
|
38
56
|
if strip:
|
@@ -54,6 +72,9 @@ def str_max_width(target, value):
|
|
54
72
|
def str_safe(value):
|
55
73
|
return safe_file_name(value)
|
56
74
|
|
75
|
+
def str_safe_id(value):
|
76
|
+
return safe_id(value)
|
77
|
+
|
57
78
|
def str_starts_with(source, prefix):
|
58
79
|
if source is None or prefix is None:
|
59
80
|
return False
|
@@ -4,10 +4,8 @@ import os
|
|
4
4
|
import shutil
|
5
5
|
import tarfile
|
6
6
|
import zipfile
|
7
|
-
from os.path
|
8
|
-
|
9
|
-
from osbot_utils.utils.Misc import list_set
|
10
|
-
|
7
|
+
from os.path import abspath
|
8
|
+
from osbot_utils.utils.Misc import list_set
|
11
9
|
from osbot_utils.utils.Files import temp_folder, folder_files, temp_file, is_file, file_copy, file_move, file_exists, \
|
12
10
|
file_contents_as_bytes
|
13
11
|
|
@@ -0,0 +1 @@
|
|
1
|
+
v1.70.0
|
@@ -1 +0,0 @@
|
|
1
|
-
v1.68.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.68.0 → osbot_utils-1.70.0}/osbot_utils/context_managers/disable_root_loggers.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.68.0 → osbot_utils-1.70.0}/osbot_utils/decorators/methods/cache_on_function.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.68.0 → osbot_utils-1.70.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.68.0 → osbot_utils-1.70.0}/osbot_utils/decorators/methods/function_type_check.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-1.68.0 → osbot_utils-1.70.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.68.0 → osbot_utils-1.70.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.68.0 → osbot_utils-1.70.0}/osbot_utils/graphs/mgraph/MGraph__Random_Graphs.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.68.0 → osbot_utils-1.70.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.68.0 → osbot_utils-1.70.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.68.0 → osbot_utils-1.70.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
|