osbot-utils 2.78.0__tar.gz → 2.79.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-2.78.0 → osbot_utils-2.79.0}/PKG-INFO +2 -2
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/README.md +1 -1
- osbot_utils-2.79.0/osbot_utils/helpers/Dict_To_Attr.py +4 -0
- osbot_utils-2.79.0/osbot_utils/helpers/transformers/Dict__To__Toml.py +211 -0
- osbot_utils-2.79.0/osbot_utils/utils/Toml.py +34 -0
- osbot_utils-2.79.0/osbot_utils/version +1 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/pyproject.toml +1 -1
- osbot_utils-2.78.0/osbot_utils/helpers/Dict_To_Attr.py +0 -7
- osbot_utils-2.78.0/osbot_utils/utils/Toml.py +0 -53
- osbot_utils-2.78.0/osbot_utils/version +0 -1
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/LICENSE +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/base_classes/Cache_Pickle.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/base_classes/Kwargs_To_Disk.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/base_classes/Kwargs_To_Self.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/base_classes/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/context_managers/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/context_managers/async_invoke.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/context_managers/disable_root_loggers.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/classes/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/classes/singleton.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/lists/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/lists/filter_list.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/lists/group_by.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/lists/index_by.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/methods/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/methods/cache.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/methods/cache_on_function.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/methods/cache_on_self.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/methods/cache_on_tmp.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/methods/capture_exception.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/methods/capture_status.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/methods/catch.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/methods/context.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/methods/depreciated.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/methods/function_type_check.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/methods/obj_as_context.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/methods/remove_return_value.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/methods/required_fields.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/fluent/Fluent_Dict.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/fluent/Fluent_List.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/fluent/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/CFormat.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/CPrint.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/Dependency_Manager.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/Hashicorp_Secrets.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/Local_Cache.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/Local_Caches.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/Obj_Id.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/Print_Table.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/Python_Audit.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/Random_Seed.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/Str_ASCII.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/Type_Registry.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/Zip_Bytes.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/Ast.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/Ast_Base.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/Ast_Data.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/Ast_Load.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/Ast_Merge.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/Ast_Node.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/Ast_Visit.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/Call_Tree.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Add.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Alias.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_And.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Argument.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Arguments.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Assert.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Assign.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Attribute.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Aug_Assign.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Bin_Op.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Bool_Op.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Break.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Call.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Class_Def.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Compare.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Comprehension.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Constant.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Continue.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Dict.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Eq.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Except_Handler.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Expr.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_For.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Function_Def.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Generator_Exp.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Gt.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_GtE.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_If.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_If_Exp.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Import.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Import_From.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_In.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Is.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Is_Not.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Keyword.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Lambda.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_List.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_List_Comp.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Load.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Lt.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_LtE.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Mod.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Module.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Mult.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Name.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Not.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Not_Eq.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Not_In.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Or.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Pass.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Pow.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Raise.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Return.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Set.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Slice.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Starred.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Store.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Sub.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Subscript.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Try.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Tuple.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Unary_Op.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_While.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_With.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_With_Item.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/Ast_Yield.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ast/nodes/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/cache_on_self/Cache_Controller.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/cache_on_self/Cache_Key_Generator.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/cache_on_self/Cache_Metrics.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/cache_on_self/Cache_On_Self.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/cache_on_self/Cache_Storage.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/cache_on_self/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Actions.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Config.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Data.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Invoke.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Row.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Table.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/cache_requests/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/duration/Duration.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/duration/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/duration/decorators/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/duration/decorators/capture_duration.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/duration/decorators/duration.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/duration/decorators/print_duration.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/duration/schemas/Schema__Duration.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/duration/schemas/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/Flow.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/Task.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/actions/Flow__Data.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/actions/Flow__Events.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/actions/Flow__Stats__Collector.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/actions/Task__Stats__Collector.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/actions/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/decorators/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/decorators/flow.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/decorators/task.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/models/Flow_Run__Config.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/models/Flow_Run__Event.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Data.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Type.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/models/Schema__Flow__Artifact.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/models/Schema__Flow__Result.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/models/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/schemas/Schema__Flow.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Data.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Event.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Event__Data.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Log.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Stats.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Status.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Task__Data.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/schemas/Schema__Task__Stats.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/flows/schemas/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/generators/Generator_Context_Manager.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/generators/Generator_Manager.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/generators/Model__Generator_State.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/generators/Model__Generator_Target.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/generators/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/schemas/Schema__Html_Document.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/schemas/Schema__Html_Node.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/schemas/Schema__Html_Node__Data.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/schemas/Schema__Html_Node__Data__Type.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/schemas/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/tags/Tag__Base.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/tags/Tag__Body.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/tags/Tag__Div.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/tags/Tag__H.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/tags/Tag__HR.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/tags/Tag__Head.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/tags/Tag__Html.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/tags/Tag__Link.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/tags/Tag__Style.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/tags/Tag__Text.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/tags/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/transformers/CSS_Dict__To__Css.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/transformers/Html_Dict__To__Html.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/transformers/Html_Dict__To__Html_Document.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/transformers/Html_Dict__To__Html_Tags.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/transformers/Html_Document__To__Html_Dict.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/transformers/Html__To__Html_Dict.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/transformers/Html__To__Html_Document.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/transformers/Html__To__Html_Tag.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/transformers/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/utils/Html__Query.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/html/utils/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/actions/LLM_Request__Execute.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/actions/Type_Safe__Schema_For__LLMs.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/actions/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/builders/LLM_Request__Builder.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/builders/LLM_Request__Builder__Open_AI.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/builders/LLM_Request__Factory.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/builders/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/cache/LLM_Cache__Path_Generator.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/cache/LLM_Request__Cache.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/cache/LLM_Request__Cache__File_System.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/cache/LLM_Request__Cache__Storage.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/cache/Virtual_Storage__Local__Folder.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/cache/Virtual_Storage__Sqlite.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/cache/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/platforms/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/platforms/open_ai/API__LLM__Open_AI.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/platforms/open_ai/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/schemas/Safe_Str__LLM__Model_Name.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Cache__Index.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Request.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Request__Data.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Request__Function_Call.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Request__Message__Content.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Request__Message__Role.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Response.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Response__Cache.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/llms/schemas/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/pubsub/Event__Queue.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/pubsub/PubSub__Client.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/pubsub/PubSub__Room.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/pubsub/PubSub__Server.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/pubsub/PubSub__Sqlite.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/pubsub/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Connect.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Disconnect.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Execute_Method.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Join_Room.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Leave_Room.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Message.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/pubsub/schemas/Schema__PubSub__Client.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/pubsub/schemas/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/python_compatibility/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/python_compatibility/python_3_8.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/Capture_Sqlite_Error.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/Sqlite__Cursor.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/Sqlite__Database.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/Sqlite__Field.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/Sqlite__Globals.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/Sqlite__Table.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/Sqlite__Table__Create.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Database__Disk.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Table.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/cache/Schema__Table__Requests.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Patch.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Sqlite.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Table.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/cache/Sqlite__DB__Requests.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/cache/TestCase__Sqlite__Cache__Requests.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/cache/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Files.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Graph.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Json.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Local.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/domains/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/domains/schemas/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/models/Sqlite__Field__Type.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/models/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/sample_data/Sqlite__Sample_Data__Chinook.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/sample_data/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder__Select.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/sql_builder/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Config.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Edges.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Files.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Nodes.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/sqlite/tables/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ssh/SCP.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ssh/SSH.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ssh/SSH__Cache__Requests.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ssh/SSH__Execute.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ssh/SSH__Health_Check.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ssh/SSH__Linux.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ssh/SSH__Linux__Amazon.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ssh/SSH__Python.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ssh/TestCase__SSH.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/ssh/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/trace/Trace_Call.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/trace/Trace_Call__Config.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/trace/Trace_Call__Handler.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/trace/Trace_Call__Print_Lines.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/trace/Trace_Call__Print_Traces.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/trace/Trace_Call__Stack.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/trace/Trace_Call__Stack_Node.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/trace/Trace_Call__Stats.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/trace/Trace_Call__View_Model.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/trace/Trace_Files.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/trace/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/xml/Xml__Attribute.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/xml/Xml__Element.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/xml/Xml__File.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/xml/Xml__File__Load.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/xml/Xml__File__To_Dict.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/xml/Xml__File__To_Xml.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/xml/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/xml/rss/RSS__Channel.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/xml/rss/RSS__Enclosure.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/xml/rss/RSS__Feed.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/xml/rss/RSS__Feed__Parser.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/xml/rss/RSS__Image.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/helpers/xml/rss/RSS__Item.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/Catch.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/Custom_Handler_For_Http_Tests.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/Hook_Method.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/Log_To_Queue.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/Log_To_String.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/Logging.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/Patch_Print.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/Profiler.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/Pytest.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/Stderr.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/Stdout.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/Temp_Env_Vars.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/Temp_File.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/Temp_Folder.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/Temp_Sys_Path.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/Temp_Web_Server.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/Temp_Zip.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/Temp_Zip_In_Memory.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/Unit_Test.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/Unzip_File.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/performance/Performance_Measure__Session.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/performance/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/performance/models/Model__Performance_Measure__Measurement.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/performance/models/Model__Performance_Measure__Result.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/performance/models/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/test_data/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/testing/test_data/const__test__data__html.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/Type_Safe.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/Type_Safe__Base.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/Type_Safe__Primitive.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_float/Safe_Float.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_float/Safe_Float__Engineering.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_float/Safe_Float__Money.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_float/Safe_Float__Percentage_Exact.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_float/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_int/Safe_Int.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_int/Timestamp_Now.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_int/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/Enum__Safe_Str__Regex_Mode.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/Safe_Str.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/cryptography/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/cryptography/hashes/Safe_Str__Hash.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/cryptography/hashes/Safe_Str__SHA1.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/cryptography/hashes/Safe_Str__SHA1__Short.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/cryptography/hashes/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/cryptography/nacl/Safe_Str__NaCl__Private_Key.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/cryptography/nacl/Safe_Str__NaCl__Public_Key.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/cryptography/nacl/Schema__NaCl__Keys.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/cryptography/nacl/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/filesystem/Safe_Str__File__Name.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/filesystem/Safe_Str__File__Path.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/filesystem/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/git/Safe_Str__Git__Branch.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/git/Safe_Str__Git__Ref.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/git/Safe_Str__Git__Ref_Base.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/git/Safe_Str__Git__Tag.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/git/Safe_Str__Version.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/git/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/github/Safe_Str__GitHub__Repo.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/github/Safe_Str__GitHub__Repo_Name.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/github/Safe_Str__GitHub__Repo_Owner.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/github/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/http/Safe_Str__Http__Content_Type.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/http/Safe_Str__Http__ETag.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/http/Safe_Str__Http__Last_Modified.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/http/Safe_Str__Http__Text.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/http/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/identifiers/Guid.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/identifiers/Random_Guid.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/identifiers/Random_Guid_Short.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/identifiers/Safe_Id.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/identifiers/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/text/Safe_Str__Text.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/text/Safe_Str__Text__Dangerous.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/text/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/web/Safe_Str__Html.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/web/Safe_Str__IP_Address.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/web/Safe_Str__Url.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_str/web/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_uint/Safe_UInt.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_uint/Safe_UInt__Byte.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_uint/Safe_UInt__FileSize.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_uint/Safe_UInt__Percentage.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_uint/Safe_UInt__Port.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/primitives/safe_uint/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/collections/Type_Safe__Dict.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/collections/Type_Safe__List.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/collections/Type_Safe__Set.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/collections/Type_Safe__Tuple.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/collections/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/decorators/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/decorators/type_safe.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/methods/Type_Safe__Method.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/methods/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/methods/type_safe_property.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/shared/Type_Safe__Annotations.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/shared/Type_Safe__Cache.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/shared/Type_Safe__Convert.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/shared/Type_Safe__Json_Compressor.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/shared/Type_Safe__Json_Compressor__Type_Registry.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/shared/Type_Safe__Not_Cached.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/shared/Type_Safe__Raise_Exception.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/shared/Type_Safe__Shared__Variables.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/shared/Type_Safe__Validation.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/shared/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/steps/Type_Safe__Step__Class_Kwargs.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/steps/Type_Safe__Step__Default_Kwargs.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/steps/Type_Safe__Step__Default_Value.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/steps/Type_Safe__Step__From_Json.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/steps/Type_Safe__Step__Init.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/steps/Type_Safe__Step__Set_Attr.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/type_safe_core/steps/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/validators/Type_Safe__Validator.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/validators/Validator__Max.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/validators/Validator__Min.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/validators/Validator__One_Of.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/validators/Validator__Regex.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/type_safe/validators/__init__.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Assert.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Call_Stack.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Csv.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Dev.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Env.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Exceptions.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Files.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Functions.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Http.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Int.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Json.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Json_Cache.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Lists.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Misc.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Objects.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Png.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Process.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Python_Logger.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Regex.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Status.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Str.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Threads.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Version.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/Zip.py +0 -0
- {osbot_utils-2.78.0 → osbot_utils-2.79.0}/osbot_utils/utils/__init__.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: osbot_utils
|
3
|
-
Version: 2.
|
3
|
+
Version: 2.79.0
|
4
4
|
Summary: OWASP Security Bot - Utils
|
5
5
|
License: MIT
|
6
6
|
Author: Dinis Cruz
|
@@ -21,7 +21,7 @@ Description-Content-Type: text/markdown
|
|
21
21
|
|
22
22
|
# OSBot-Utils
|
23
23
|
|
24
|
-

|
25
25
|

|
26
26
|

|
27
27
|

|
@@ -1,6 +1,6 @@
|
|
1
1
|
# OSBot-Utils
|
2
2
|
|
3
|
-

|
4
4
|

|
5
5
|

|
6
6
|

|
@@ -0,0 +1,211 @@
|
|
1
|
+
from typing import Dict, Any, List, Set, Tuple, Union
|
2
|
+
from osbot_utils.type_safe.Type_Safe import Type_Safe
|
3
|
+
from osbot_utils.type_safe.type_safe_core.decorators.type_safe import type_safe
|
4
|
+
|
5
|
+
|
6
|
+
class Dict__To__Toml(Type_Safe):
|
7
|
+
|
8
|
+
@type_safe
|
9
|
+
def convert(self, data: Dict[str, Any] # Dictionary to convert to TOML
|
10
|
+
) -> str: # Returns TOML formatted string
|
11
|
+
toml_str = ""
|
12
|
+
|
13
|
+
# First, process top-level simple values
|
14
|
+
toml_str += self._process_simple_values(data, indent_level=0)
|
15
|
+
|
16
|
+
# Process top-level arrays of simple types
|
17
|
+
toml_str += self._process_simple_arrays(data, indent_level=0)
|
18
|
+
|
19
|
+
# Process top-level dictionaries as sections
|
20
|
+
toml_str += self._process_sections(data, parent_key="")
|
21
|
+
|
22
|
+
# Process arrays of tables
|
23
|
+
toml_str += self._process_array_of_tables(data, parent_key="")
|
24
|
+
|
25
|
+
return toml_str
|
26
|
+
|
27
|
+
@type_safe
|
28
|
+
def _format_string_value(self, value: str # String to format
|
29
|
+
) -> str: # Returns formatted TOML string
|
30
|
+
"""Format a string value for TOML output"""
|
31
|
+
# For TOML basic strings, we need to handle:
|
32
|
+
# 1. If string contains single quotes, use double quotes
|
33
|
+
# 2. If string contains double quotes but no single quotes, use single quotes
|
34
|
+
# 3. If string contains both, use triple quotes (multi-line literal)
|
35
|
+
|
36
|
+
has_single = "'" in value
|
37
|
+
has_double = '"' in value
|
38
|
+
has_newline = '\n' in value or '\r' in value
|
39
|
+
|
40
|
+
# Use triple quotes for complex strings (multilineelif has_single: or with both quote types)
|
41
|
+
if has_newline or (has_single and has_double):
|
42
|
+
# Use multi-line literal string (triple single quotes)
|
43
|
+
# This preserves the exact content without escaping
|
44
|
+
return f"'''\n{value}'''"
|
45
|
+
elif has_single:
|
46
|
+
# Use double quotes and escape any double quotes
|
47
|
+
escaped = value.replace('"', '\\"')
|
48
|
+
return f'"{escaped}"'
|
49
|
+
else:
|
50
|
+
# Use single quotes (default) - no escaping needed
|
51
|
+
return f"'{value}'"
|
52
|
+
|
53
|
+
@type_safe
|
54
|
+
def _process_simple_values(self, data : Dict[str, Any] , # Data to process
|
55
|
+
indent_level : int = 0 # Current indentation level
|
56
|
+
) -> str: # Returns TOML for simple values
|
57
|
+
toml_str = ""
|
58
|
+
indent = " " * indent_level
|
59
|
+
|
60
|
+
for key, value in data.items():
|
61
|
+
if not isinstance(value, (dict, list, tuple, set)):
|
62
|
+
if isinstance(value, str):
|
63
|
+
toml_str += f"{indent}{key} = {self._format_string_value(value)}\n"
|
64
|
+
elif isinstance(value, bool):
|
65
|
+
toml_str += f"{indent}{key} = {str(value).lower()}\n"
|
66
|
+
elif value is not None:
|
67
|
+
toml_str += f"{indent}{key} = {value}\n"
|
68
|
+
|
69
|
+
return toml_str
|
70
|
+
|
71
|
+
@type_safe
|
72
|
+
def _process_simple_arrays(self, data : Dict[str, Any] , # Data to process
|
73
|
+
indent_level : int = 0 # Current indentation level
|
74
|
+
) -> str: # Returns TOML for simple arrays
|
75
|
+
toml_str = ""
|
76
|
+
indent = " " * indent_level
|
77
|
+
|
78
|
+
for key, value in data.items():
|
79
|
+
if isinstance(value, (list, tuple, set)):
|
80
|
+
if not value: # Empty collection
|
81
|
+
toml_str += f"{indent}{key} = []\n"
|
82
|
+
elif not any(isinstance(item, dict) for item in value): # No dict items
|
83
|
+
toml_str += f"{indent}{key} = [\n"
|
84
|
+
for item in value:
|
85
|
+
if isinstance(item, str):
|
86
|
+
toml_str += f"{indent} {self._format_string_value(item)},\n"
|
87
|
+
elif isinstance(item, bool):
|
88
|
+
toml_str += f"{indent} {str(item).lower()},\n"
|
89
|
+
elif item is not None:
|
90
|
+
toml_str += f"{indent} {item},\n"
|
91
|
+
toml_str += f"{indent}]\n"
|
92
|
+
|
93
|
+
return toml_str
|
94
|
+
|
95
|
+
@type_safe
|
96
|
+
def _process_sections(self, data : Dict[str, Any] , # Data to process
|
97
|
+
parent_key : str = "" # Parent section key
|
98
|
+
) -> str: # Returns TOML sections
|
99
|
+
toml_str = ""
|
100
|
+
|
101
|
+
for key, value in data.items():
|
102
|
+
if isinstance(value, dict):
|
103
|
+
section_key = f"{parent_key}.{key}" if parent_key else key
|
104
|
+
toml_str += f"[{section_key}]\n"
|
105
|
+
toml_str += self._process_section_content(value, section_key)
|
106
|
+
|
107
|
+
return toml_str
|
108
|
+
|
109
|
+
@type_safe
|
110
|
+
def _process_section_content(self, section_data : Dict[str, Any] , # Section data to process
|
111
|
+
section_key : str # Current section key
|
112
|
+
) -> str: # Returns section content
|
113
|
+
toml_str = ""
|
114
|
+
indent = " "
|
115
|
+
|
116
|
+
# Process simple values in section
|
117
|
+
for key, value in section_data.items():
|
118
|
+
if isinstance(value, str):
|
119
|
+
toml_str += f"{indent}{key} = {self._format_string_value(value)}\n"
|
120
|
+
elif isinstance(value, bool):
|
121
|
+
toml_str += f"{indent}{key} = {str(value).lower()}\n"
|
122
|
+
elif isinstance(value, (int, float)) and value is not None:
|
123
|
+
toml_str += f"{indent}{key} = {value}\n"
|
124
|
+
elif isinstance(value, (list, tuple, set)) and not value:
|
125
|
+
toml_str += f"{indent}{key} = []\n"
|
126
|
+
elif isinstance(value, (list, tuple, set)):
|
127
|
+
if not any(isinstance(item, dict) for item in value):
|
128
|
+
toml_str += f"{indent}{key} = [\n"
|
129
|
+
for item in value:
|
130
|
+
if isinstance(item, str):
|
131
|
+
toml_str += f"{indent}{indent}{self._format_string_value(item)},\n"
|
132
|
+
elif isinstance(item, bool):
|
133
|
+
toml_str += f"{indent}{indent}{str(item).lower()},\n"
|
134
|
+
elif item is not None:
|
135
|
+
toml_str += f"{indent}{indent}{item},\n"
|
136
|
+
toml_str += f"{indent}]\n"
|
137
|
+
|
138
|
+
# Process arrays of tables within sections (NEW)
|
139
|
+
for key, value in section_data.items():
|
140
|
+
if isinstance(value, (list, tuple, set)):
|
141
|
+
if value and all(isinstance(item, dict) for item in value):
|
142
|
+
for item in value:
|
143
|
+
toml_str += f"[[{section_key}.{key}]]\n"
|
144
|
+
for item_key, item_value in item.items():
|
145
|
+
if isinstance(item_value, str):
|
146
|
+
toml_str += f"{indent}{item_key} = {self._format_string_value(item_value)}\n"
|
147
|
+
elif isinstance(item_value, bool):
|
148
|
+
toml_str += f"{indent}{item_key} = {str(item_value).lower()}\n"
|
149
|
+
elif isinstance(item_value, (int, float)) and item_value is not None:
|
150
|
+
toml_str += f"{indent}{item_key} = {item_value}\n"
|
151
|
+
|
152
|
+
# Process nested dictionaries
|
153
|
+
for key, value in section_data.items():
|
154
|
+
if isinstance(value, dict):
|
155
|
+
nested_key = f"{section_key}.{key}"
|
156
|
+
toml_str += f"[{nested_key}]\n"
|
157
|
+
toml_str += self._process_section_content(value, nested_key)
|
158
|
+
|
159
|
+
return toml_str
|
160
|
+
|
161
|
+
@type_safe
|
162
|
+
def _process_array_of_tables(self, data : Dict[str, Any] , # Data to process
|
163
|
+
parent_key : str = "" # Parent section key
|
164
|
+
) -> str: # Returns array of tables
|
165
|
+
toml_str = ""
|
166
|
+
|
167
|
+
for key, value in data.items():
|
168
|
+
if isinstance(value, (list, tuple, set)):
|
169
|
+
if value and all(isinstance(item, dict) for item in value):
|
170
|
+
for item in value:
|
171
|
+
section_key = f"{parent_key}.{key}" if parent_key else key
|
172
|
+
toml_str += f"[[{section_key}]]\n"
|
173
|
+
toml_str += self._process_table_item(item, section_key)
|
174
|
+
|
175
|
+
return toml_str
|
176
|
+
|
177
|
+
@type_safe
|
178
|
+
def _process_table_item(self, item : Dict[str, Any] , # Table item to process
|
179
|
+
section_key : str # Current section key
|
180
|
+
) -> str: # Returns formatted table item
|
181
|
+
toml_str = ""
|
182
|
+
indent = " "
|
183
|
+
|
184
|
+
# Process simple values in table item
|
185
|
+
for key, value in item.items():
|
186
|
+
if isinstance(value, str):
|
187
|
+
toml_str += f"{indent}{key} = {self._format_string_value(value)}\n"
|
188
|
+
elif isinstance(value, bool):
|
189
|
+
toml_str += f"{indent}{key} = {str(value).lower()}\n"
|
190
|
+
elif isinstance(value, (int, float)) and value is not None:
|
191
|
+
toml_str += f"{indent}{key} = {value}\n"
|
192
|
+
elif isinstance(value, (list, tuple, set)) and not value:
|
193
|
+
toml_str += f"{indent}{key} = []\n"
|
194
|
+
elif isinstance(value, (list, tuple, set)):
|
195
|
+
if not any(isinstance(sub_item, dict) for sub_item in value):
|
196
|
+
toml_str += f"{indent}{key} = [\n"
|
197
|
+
for sub_item in value:
|
198
|
+
if isinstance(sub_item, str):
|
199
|
+
toml_str += f"{indent}{indent}{self._format_string_value(sub_item)},\n"
|
200
|
+
else:
|
201
|
+
toml_str += f"{indent}{indent}{sub_item},\n"
|
202
|
+
toml_str += f"{indent}]\n"
|
203
|
+
|
204
|
+
# Process nested dicts in table items
|
205
|
+
for key, value in item.items():
|
206
|
+
if isinstance(value, dict):
|
207
|
+
nested_section = f"{section_key}.{key}"
|
208
|
+
toml_str += f"[{nested_section}]\n"
|
209
|
+
toml_str += self._process_section_content(value, nested_section)
|
210
|
+
|
211
|
+
return toml_str
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import sys
|
2
|
+
from osbot_utils.helpers.transformers.Dict__To__Toml import Dict__To__Toml
|
3
|
+
from osbot_utils.utils.Files import file_create, file_contents
|
4
|
+
from osbot_utils.utils.Objects import dict_to_obj
|
5
|
+
|
6
|
+
|
7
|
+
def dict_to_toml(data):
|
8
|
+
return Dict__To__Toml().convert(data) # Singleton instance for convenience
|
9
|
+
|
10
|
+
def toml_dict_to_file(toml_file, data):
|
11
|
+
str_toml = dict_to_toml(data)
|
12
|
+
return file_create(toml_file, str_toml)
|
13
|
+
|
14
|
+
def toml_dict_from_file(toml_file):
|
15
|
+
str_toml = file_contents(toml_file)
|
16
|
+
return toml_to_dict(str_toml)
|
17
|
+
|
18
|
+
def toml_to_dict(str_toml):
|
19
|
+
if sys.version_info >= (3, 11):
|
20
|
+
import tomllib
|
21
|
+
return tomllib.loads(str_toml)
|
22
|
+
raise NotImplementedError("TOML parsing is not supported in Python versions earlier than 3.11")
|
23
|
+
|
24
|
+
|
25
|
+
def toml_obj_from_file(toml_file):
|
26
|
+
data = toml_dict_from_file(toml_file)
|
27
|
+
return dict_to_obj(data)
|
28
|
+
|
29
|
+
json_load_file = toml_dict_from_file
|
30
|
+
toml_file_load = toml_dict_from_file
|
31
|
+
|
32
|
+
toml_from_file = toml_dict_from_file
|
33
|
+
toml_load = toml_dict_from_file
|
34
|
+
toml_load_obj = toml_obj_from_file
|
@@ -0,0 +1 @@
|
|
1
|
+
v2.79.0
|
@@ -1,53 +0,0 @@
|
|
1
|
-
import sys
|
2
|
-
from osbot_utils.utils.Files import file_create, file_contents
|
3
|
-
from osbot_utils.utils.Objects import dict_to_obj
|
4
|
-
|
5
|
-
|
6
|
-
def dict_to_toml(data, indent_level=0):
|
7
|
-
toml_str = ""
|
8
|
-
indent = " " * (indent_level * 4)
|
9
|
-
|
10
|
-
for key, value in data.items():
|
11
|
-
if isinstance(value, dict):
|
12
|
-
toml_str += f"{indent}[{key}]\n"
|
13
|
-
toml_str += dict_to_toml(value, indent_level + 1)
|
14
|
-
elif isinstance(value, (list, tuple, set)):
|
15
|
-
toml_str += f"{indent}{key} = [\n"
|
16
|
-
for item in value:
|
17
|
-
toml_str += f"{indent} {repr(item)},\n"
|
18
|
-
toml_str += f"{indent}]\n"
|
19
|
-
elif isinstance(value, str):
|
20
|
-
toml_str += f"{indent}{key} = '{value}'\n"
|
21
|
-
elif isinstance(value, bool):
|
22
|
-
toml_str += f"{indent}{key} = {str(value).lower()}\n"
|
23
|
-
else:
|
24
|
-
toml_str += f"{indent}{key} = {value}\n"
|
25
|
-
|
26
|
-
return toml_str
|
27
|
-
|
28
|
-
def toml_dict_to_file(toml_file, data):
|
29
|
-
str_toml = dict_to_toml(data)
|
30
|
-
return file_create(toml_file, str_toml)
|
31
|
-
|
32
|
-
def toml_dict_from_file(toml_file):
|
33
|
-
str_toml = file_contents(toml_file)
|
34
|
-
return toml_to_dict(str_toml)
|
35
|
-
|
36
|
-
|
37
|
-
def toml_to_dict(str_toml):
|
38
|
-
if sys.version_info >= (3, 11):
|
39
|
-
import tomllib
|
40
|
-
return tomllib.loads(str_toml)
|
41
|
-
raise NotImplementedError("TOML parsing is not supported in Python versions earlier than 3.11")
|
42
|
-
|
43
|
-
|
44
|
-
def toml_obj_from_file(toml_file):
|
45
|
-
data = toml_dict_from_file(toml_file)
|
46
|
-
return dict_to_obj(data)
|
47
|
-
|
48
|
-
json_load_file = toml_dict_from_file
|
49
|
-
toml_file_load = toml_dict_from_file
|
50
|
-
|
51
|
-
toml_from_file = toml_dict_from_file
|
52
|
-
toml_load = toml_dict_from_file
|
53
|
-
toml_load_obj = toml_obj_from_file
|
@@ -1 +0,0 @@
|
|
1
|
-
v2.78.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
|
{osbot_utils-2.78.0 → osbot_utils-2.79.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-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/methods/cache_on_function.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.78.0 → osbot_utils-2.79.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-2.78.0 → osbot_utils-2.79.0}/osbot_utils/decorators/methods/function_type_check.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-2.78.0 → osbot_utils-2.79.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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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-2.78.0 → osbot_utils-2.79.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-2.78.0 → osbot_utils-2.79.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-2.78.0 → osbot_utils-2.79.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
|