osbot-utils 2.68.0__tar.gz → 2.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-2.68.0 → osbot_utils-2.70.0}/PKG-INFO +2 -2
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/README.md +1 -1
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/builders/LLM_Request__Builder.py +9 -8
- osbot_utils-2.70.0/osbot_utils/helpers/llms/schemas/Safe_Str__LLM__Model_Name.py +10 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Request__Data.py +2 -1
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_str/Safe_Str__File__Name.py +3 -1
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/Type_Safe__Primitive.py +6 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Files.py +17 -4
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Zip.py +7 -3
- osbot_utils-2.70.0/osbot_utils/version +1 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/pyproject.toml +1 -1
- osbot_utils-2.68.0/osbot_utils/version +0 -1
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/LICENSE +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/base_classes/Cache_Pickle.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/base_classes/Kwargs_To_Disk.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/base_classes/Kwargs_To_Self.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/base_classes/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/context_managers/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/context_managers/async_invoke.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/context_managers/disable_root_loggers.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/classes/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/classes/singleton.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/lists/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/lists/filter_list.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/lists/group_by.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/lists/index_by.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/methods/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/methods/cache.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/methods/cache_on_function.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/methods/cache_on_self.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/methods/cache_on_tmp.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/methods/capture_exception.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/methods/capture_status.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/methods/catch.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/methods/context.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/methods/depreciated.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/methods/function_type_check.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/methods/obj_as_context.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/methods/remove_return_value.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/methods/required_fields.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/fluent/Fluent_Dict.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/fluent/Fluent_List.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/fluent/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/CFormat.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/CPrint.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/Dependency_Manager.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/Dict_To_Attr.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/Guid.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/Hashicorp_Secrets.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/Local_Cache.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/Local_Caches.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/Obj_Id.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/Print_Table.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/Python_Audit.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/Random_Guid.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/Random_Guid_Short.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/Random_Seed.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/Safe_Id.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/Str_ASCII.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/Timestamp_Now.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/Type_Registry.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/Zip_Bytes.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/Ast.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/Ast_Base.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/Ast_Data.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/Ast_Load.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/Ast_Merge.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/Ast_Node.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/Ast_Visit.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/Call_Tree.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Add.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Alias.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_And.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Argument.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Arguments.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Assert.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Assign.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Attribute.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Aug_Assign.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Bin_Op.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Bool_Op.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Break.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Call.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Class_Def.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Compare.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Comprehension.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Constant.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Continue.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Dict.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Eq.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Except_Handler.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Expr.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_For.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Function_Def.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Generator_Exp.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Gt.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_GtE.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_If.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_If_Exp.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Import.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Import_From.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_In.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Is.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Is_Not.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Keyword.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Lambda.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_List.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_List_Comp.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Load.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Lt.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_LtE.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Mod.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Module.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Mult.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Name.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Not.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Not_Eq.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Not_In.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Or.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Pass.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Pow.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Raise.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Return.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Set.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Slice.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Starred.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Store.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Sub.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Subscript.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Try.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Tuple.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Unary_Op.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_While.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_With.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_With_Item.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/Ast_Yield.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ast/nodes/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/cache_on_self/Cache_Controller.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/cache_on_self/Cache_Key_Generator.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/cache_on_self/Cache_Metrics.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/cache_on_self/Cache_On_Self.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/cache_on_self/Cache_Storage.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/cache_on_self/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Actions.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Config.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Data.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Invoke.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Row.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Table.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/cache_requests/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/duration/Duration.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/duration/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/duration/decorators/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/duration/decorators/capture_duration.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/duration/decorators/duration.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/duration/decorators/print_duration.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/duration/schemas/Schema__Duration.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/duration/schemas/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/Flow.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/Task.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/actions/Flow__Data.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/actions/Flow__Events.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/actions/Flow__Stats__Collector.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/actions/Task__Stats__Collector.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/actions/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/decorators/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/decorators/flow.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/decorators/task.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/models/Flow_Run__Config.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/models/Flow_Run__Event.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Data.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Type.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/models/Schema__Flow__Artifact.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/models/Schema__Flow__Result.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/models/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/schemas/Schema__Flow.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Data.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Event.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Event__Data.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Log.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Stats.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Status.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Task__Data.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/schemas/Schema__Task__Stats.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/flows/schemas/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/generators/Generator_Context_Manager.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/generators/Generator_Manager.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/generators/Model__Generator_State.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/generators/Model__Generator_Target.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/generators/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/CSS_Dict__To__Css.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/Html_Dict__To__Html.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/Html_Dict__To__Html_Document.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/Html_Dict__To__Html_Tags.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/Html_Document__To__Html_Dict.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/Html__To__Html_Dict.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/Html__To__Html_Document.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/Html__To__Html_Tag.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/Tag__Base.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/Tag__Body.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/Tag__Div.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/Tag__H.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/Tag__HR.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/Tag__Head.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/Tag__Html.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/Tag__Link.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/Tag__Style.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/Tag__Text.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/schemas/Schema__Html_Document.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/schemas/Schema__Html_Node.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/schemas/Schema__Html_Node__Data.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/schemas/Schema__Html_Node__Data__Type.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/html/schemas/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/actions/LLM_Request__Execute.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/actions/Type_Safe__Schema_For__LLMs.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/actions/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/builders/LLM_Request__Builder__Open_AI.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/builders/LLM_Request__Factory.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/builders/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/cache/LLM_Cache__Path_Generator.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/cache/LLM_Request__Cache.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/cache/LLM_Request__Cache__File_System.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/cache/LLM_Request__Cache__Storage.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/cache/Virtual_Storage__Local__Folder.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/cache/Virtual_Storage__Sqlite.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/cache/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/platforms/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/platforms/open_ai/API__LLM__Open_AI.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/platforms/open_ai/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Cache__Index.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Request.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Request__Function_Call.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Request__Message__Content.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Request__Message__Role.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Response.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Response__Cache.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/schemas/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/pubsub/Event__Queue.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/pubsub/PubSub__Client.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/pubsub/PubSub__Room.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/pubsub/PubSub__Server.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/pubsub/PubSub__Sqlite.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/pubsub/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Connect.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Disconnect.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Execute_Method.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Join_Room.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Leave_Room.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Message.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/pubsub/schemas/Schema__PubSub__Client.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/pubsub/schemas/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/python_compatibility/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/python_compatibility/python_3_8.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_float/Safe_Float.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_float/Safe_Float__Engineering.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_float/Safe_Float__Money.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_float/Safe_Float__Percentage_Exact.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_float/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_int/Safe_Int.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_int/Safe_UInt.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_int/Safe_UInt__Byte.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_int/Safe_UInt__FileSize.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_int/Safe_UInt__Percentage.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_int/Safe_UInt__Port.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_int/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_str/Safe_Str.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_str/Safe_Str__File__Path.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_str/Safe_Str__Hash.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_str/Safe_Str__Text.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_str/Safe_Str__Text__Dangerous.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_str/Safe_Str__Url.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_str/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_str/http/Safe_Str__Html.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_str/http/Safe_Str__Http__Content_Type.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_str/http/Safe_Str__Http__ETag.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_str/http/Safe_Str__Http__Last_Modified.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_str/http/Safe_Str__Http__Text.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_str/http/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/Capture_Sqlite_Error.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/Sqlite__Cursor.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/Sqlite__Database.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/Sqlite__Field.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/Sqlite__Globals.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/Sqlite__Table.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/Sqlite__Table__Create.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Database__Disk.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Table.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/cache/Schema__Table__Requests.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Patch.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Sqlite.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Table.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/cache/Sqlite__DB__Requests.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/cache/TestCase__Sqlite__Cache__Requests.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/cache/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Files.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Graph.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Json.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Local.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/domains/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/domains/schemas/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/models/Sqlite__Field__Type.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/models/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/sample_data/Sqlite__Sample_Data__Chinook.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/sample_data/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder__Select.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/sql_builder/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Config.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Edges.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Files.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Nodes.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/sqlite/tables/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ssh/SCP.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ssh/SSH.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ssh/SSH__Cache__Requests.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ssh/SSH__Execute.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ssh/SSH__Health_Check.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ssh/SSH__Linux.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ssh/SSH__Linux__Amazon.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ssh/SSH__Python.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ssh/TestCase__SSH.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/ssh/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/trace/Trace_Call.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/trace/Trace_Call__Config.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/trace/Trace_Call__Handler.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/trace/Trace_Call__Print_Lines.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/trace/Trace_Call__Print_Traces.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/trace/Trace_Call__Stack.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/trace/Trace_Call__Stack_Node.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/trace/Trace_Call__Stats.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/trace/Trace_Call__View_Model.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/trace/Trace_Files.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/trace/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/xml/Xml__Attribute.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/xml/Xml__Element.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/xml/Xml__File.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/xml/Xml__File__Load.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/xml/Xml__File__To_Dict.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/xml/Xml__File__To_Xml.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/xml/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/xml/rss/RSS__Channel.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/xml/rss/RSS__Enclosure.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/xml/rss/RSS__Feed.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/xml/rss/RSS__Feed__Parser.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/xml/rss/RSS__Image.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/xml/rss/RSS__Item.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/Catch.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/Custom_Handler_For_Http_Tests.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/Hook_Method.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/Log_To_Queue.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/Log_To_String.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/Logging.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/Patch_Print.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/Profiler.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/Pytest.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/Stderr.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/Stdout.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/Temp_Env_Vars.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/Temp_File.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/Temp_Folder.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/Temp_Sys_Path.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/Temp_Web_Server.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/Temp_Zip.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/Temp_Zip_In_Memory.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/Unit_Test.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/Unzip_File.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/performance/Performance_Measure__Session.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/performance/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/performance/models/Model__Performance_Measure__Measurement.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/performance/models/Model__Performance_Measure__Result.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/testing/performance/models/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/Type_Safe.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/Type_Safe__Base.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/Type_Safe__Dict.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/Type_Safe__List.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/Type_Safe__Method.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/Type_Safe__Set.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/Type_Safe__Tuple.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/decorators/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/decorators/type_safe.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/methods/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/methods/type_safe_property.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/shared/Type_Safe__Annotations.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/shared/Type_Safe__Cache.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/shared/Type_Safe__Convert.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/shared/Type_Safe__Json_Compressor.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/shared/Type_Safe__Json_Compressor__Type_Registry.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/shared/Type_Safe__Not_Cached.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/shared/Type_Safe__Raise_Exception.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/shared/Type_Safe__Shared__Variables.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/shared/Type_Safe__Validation.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/shared/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Class_Kwargs.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Default_Kwargs.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Default_Value.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/steps/Type_Safe__Step__From_Json.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Init.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Set_Attr.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/steps/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/validators/Type_Safe__Validator.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/validators/Validator__Max.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/validators/Validator__Min.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/validators/Validator__One_Of.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/validators/Validator__Regex.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/type_safe/validators/__init__.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Assert.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Call_Stack.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Csv.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Dev.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Env.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Exceptions.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Functions.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Http.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Int.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Json.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Json_Cache.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Lists.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Misc.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Objects.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Png.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Process.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Python_Logger.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Regex.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Status.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Str.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Threads.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Toml.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/utils/Version.py +0 -0
- {osbot_utils-2.68.0 → osbot_utils-2.70.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.70.0
|
4
4
|
Summary: OWASP Security Bot - Utils
|
5
5
|
License: MIT
|
6
6
|
Author: Dinis Cruz
|
@@ -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
|
|
{osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/llms/builders/LLM_Request__Builder.py
RENAMED
@@ -1,5 +1,6 @@
|
|
1
1
|
from typing import Dict, Any, Type
|
2
2
|
from osbot_utils.helpers.llms.actions.Type_Safe__Schema_For__LLMs import Type_Safe__Schema_For__LLMs
|
3
|
+
from osbot_utils.helpers.llms.schemas.Safe_Str__LLM__Model_Name import Safe_Str__LLM__Model_Name
|
3
4
|
from osbot_utils.helpers.llms.schemas.Schema__LLM_Request import Schema__LLM_Request
|
4
5
|
from osbot_utils.helpers.llms.schemas.Schema__LLM_Request__Data import Schema__LLM_Request__Data
|
5
6
|
from osbot_utils.helpers.llms.schemas.Schema__LLM_Request__Function_Call import Schema__LLM_Request__Function_Call
|
@@ -40,14 +41,14 @@ class LLM_Request__Builder(Type_Safe):
|
|
40
41
|
self.llm_request_data.function_call = function_call
|
41
42
|
return self
|
42
43
|
|
43
|
-
def set__model (self, model :
|
44
|
-
def set__platform (self, platform: Safe_Str__Text): self.llm_request_data.platform = platform; return self
|
45
|
-
def set__provider (self, provider: Safe_Str__Text): self.llm_request_data.provider = provider; return self
|
46
|
-
def set__model__gpt_4o (self
|
47
|
-
def set__model__gpt_4o_mini (self
|
48
|
-
def set__model__gpt_4_1 (self
|
49
|
-
def set__model__gpt_4_1_mini(self
|
50
|
-
def set__model__gpt_4_1_nano(self
|
44
|
+
def set__model (self, model : Safe_Str__LLM__Model_Name): self.llm_request_data.model = model ; return self
|
45
|
+
def set__platform (self, platform: Safe_Str__Text ): self.llm_request_data.platform = platform; return self
|
46
|
+
def set__provider (self, provider: Safe_Str__Text ): self.llm_request_data.provider = provider; return self
|
47
|
+
def set__model__gpt_4o (self ): return self.set__model('gpt-4o' )
|
48
|
+
def set__model__gpt_4o_mini (self ): return self.set__model('gpt-4o-mini' )
|
49
|
+
def set__model__gpt_4_1 (self ): return self.set__model('gpt-4.1' )
|
50
|
+
def set__model__gpt_4_1_mini(self ): return self.set__model('gpt-4.1-mini')
|
51
|
+
def set__model__gpt_4_1_nano(self ): return self.set__model('gpt-4.1-nano')
|
51
52
|
|
52
53
|
|
53
54
|
@type_safe
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import re
|
2
|
+
|
3
|
+
from osbot_utils.helpers.safe_str.Safe_Str import Safe_Str
|
4
|
+
|
5
|
+
TYPE_SAFE_STR__LLM__MODEL_NAME__MAX_LENGTH = 256
|
6
|
+
TYPE_SAFE_STR__LLM__MODEL_NAME__REGEX = r'[^a-zA-Z0-9/_\-.:]'
|
7
|
+
|
8
|
+
class Safe_Str__LLM__Model_Name(Safe_Str):
|
9
|
+
regex = re.compile(TYPE_SAFE_STR__LLM__MODEL_NAME__REGEX)
|
10
|
+
max_length = TYPE_SAFE_STR__LLM__MODEL_NAME__MAX_LENGTH
|
@@ -1,11 +1,12 @@
|
|
1
1
|
from typing import List, Optional
|
2
|
+
from osbot_utils.helpers.llms.schemas.Safe_Str__LLM__Model_Name import Safe_Str__LLM__Model_Name
|
2
3
|
from osbot_utils.helpers.llms.schemas.Schema__LLM_Request__Function_Call import Schema__LLM_Request__Function_Call
|
3
4
|
from osbot_utils.helpers.llms.schemas.Schema__LLM_Request__Message__Content import Schema__LLM_Request__Message__Content
|
4
5
|
from osbot_utils.helpers.safe_str.Safe_Str__Text import Safe_Str__Text
|
5
6
|
from osbot_utils.type_safe.Type_Safe import Type_Safe
|
6
7
|
|
7
8
|
class Schema__LLM_Request__Data(Type_Safe): # Schema for LLM API request data
|
8
|
-
model :
|
9
|
+
model : Safe_Str__LLM__Model_Name # LLM model identifier
|
9
10
|
platform : Safe_Str__Text
|
10
11
|
provider : Safe_Str__Text
|
11
12
|
messages : List [Schema__LLM_Request__Message__Content] # Message content entries
|
{osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/safe_str/Safe_Str__File__Name.py
RENAMED
@@ -1,8 +1,10 @@
|
|
1
1
|
import re
|
2
2
|
from osbot_utils.helpers.safe_str.Safe_Str import Safe_Str
|
3
3
|
|
4
|
+
TYPE_SAFE_STR__FILE__NAME__REGEX = re.compile(r'[^a-zA-Z0-9_\-. ]')
|
5
|
+
|
4
6
|
class Safe_Str__File__Name(Safe_Str):
|
5
|
-
regex =
|
7
|
+
regex = TYPE_SAFE_STR__FILE__NAME__REGEX
|
6
8
|
allow_empty = False
|
7
9
|
trim_whitespace = True
|
8
10
|
allow_all_replacement_char = False
|
@@ -29,6 +29,12 @@ class Type_Safe__Primitive:
|
|
29
29
|
return super().__eq__(other)
|
30
30
|
return False # Different types → not equal
|
31
31
|
|
32
|
+
def __enter__(self): # support context manager
|
33
|
+
return self
|
34
|
+
|
35
|
+
def __exit__(self, exc_type, exc_val, exc_tb):
|
36
|
+
return
|
37
|
+
|
32
38
|
def __ne__(self, other):
|
33
39
|
return not self.__eq__(other)
|
34
40
|
|
@@ -1,5 +1,8 @@
|
|
1
1
|
import os
|
2
|
-
from typing import Union
|
2
|
+
from typing import Union, List
|
3
|
+
|
4
|
+
from osbot_utils.helpers.safe_str.Safe_Str__File__Path import Safe_Str__File__Path
|
5
|
+
|
3
6
|
|
4
7
|
class Files:
|
5
8
|
@staticmethod
|
@@ -72,16 +75,25 @@ class Files:
|
|
72
75
|
return glob.glob(path_pattern, recursive=recursive)
|
73
76
|
|
74
77
|
@staticmethod
|
75
|
-
def files(path, pattern= '*', only_files=True):
|
78
|
+
def files(path, pattern= '*', only_files=True, include_path=True) -> List[Safe_Str__File__Path]:
|
79
|
+
|
76
80
|
from pathlib import Path
|
77
81
|
|
78
|
-
result
|
82
|
+
result = []
|
79
83
|
for file in Path(path).rglob(pattern):
|
80
84
|
if only_files and is_not_file(file):
|
81
85
|
continue
|
82
|
-
|
86
|
+
file_path = file.as_posix()
|
87
|
+
if include_path is False:
|
88
|
+
file_path = str(file.relative_to(path))
|
89
|
+
result.append(Safe_Str__File__Path(file_path))
|
90
|
+
|
83
91
|
return sorted(result)
|
84
92
|
|
93
|
+
@staticmethod
|
94
|
+
def files__virtual_paths(path, pattern='*', only_files=True):
|
95
|
+
return Files.files(path, pattern=pattern, only_files=only_files, include_path=False)
|
96
|
+
|
85
97
|
@staticmethod
|
86
98
|
def files_names(files : list, check_if_exists=True):
|
87
99
|
result = []
|
@@ -628,6 +640,7 @@ filter_parent_folder = Files.filter_parent_folder
|
|
628
640
|
files_find = Files.find
|
629
641
|
files_recursive = Files.files_recursive
|
630
642
|
files_list = Files.files
|
643
|
+
files_list__virtual_paths = Files.files__virtual_paths
|
631
644
|
files_names = Files.files_names
|
632
645
|
|
633
646
|
find_files = Files.files
|
@@ -79,6 +79,8 @@ def zip_bytes__add_files(zip_bytes, files_to_add):
|
|
79
79
|
file_contents = file_contents.encode('utf-8')
|
80
80
|
elif not isinstance(file_contents, bytes):
|
81
81
|
continue
|
82
|
+
if file_path.startswith(('/', '\\')): # Strip leading slash or backslash to make the path relative
|
83
|
+
file_path = file_path.lstrip('/\\')
|
82
84
|
zf.writestr(file_path, file_contents)
|
83
85
|
|
84
86
|
return zip_buffer.getvalue()
|
@@ -135,7 +137,7 @@ def zip_bytes__replace_files(zip_bytes, files_to_replace):
|
|
135
137
|
def zip_bytes__unzip(zip_bytes, target_folder=None):
|
136
138
|
target_folder = target_folder or temp_folder() # Use the provided target folder or create a temporary one
|
137
139
|
zip_buffer = io.BytesIO(zip_bytes) # Create a BytesIO buffer from the zip bytes
|
138
|
-
with zipfile.ZipFile(zip_buffer, 'r') as zf:
|
140
|
+
with zipfile.ZipFile(zip_buffer, 'r') as zf: # Open the zip file from the buffer
|
139
141
|
zf.extractall(target_folder) # Extract all files to the target folder
|
140
142
|
return target_folder # Return the path of the target folder
|
141
143
|
|
@@ -200,16 +202,18 @@ def zip_folder_to_file (root_dir, target_file):
|
|
200
202
|
zip_file = zip_folder(root_dir)
|
201
203
|
return file_move(zip_file, target_file)
|
202
204
|
|
203
|
-
def zip_folder_to_bytes(root_dir): # todo add unit test
|
205
|
+
def zip_folder_to_bytes(root_dir, files_to_ignore:list=None): # todo add unit test
|
204
206
|
zip_buffer = io.BytesIO() # Create a BytesIO buffer to hold the zipped file
|
205
207
|
with zipfile.ZipFile(zip_buffer, 'w', zipfile.ZIP_DEFLATED) as zf: # Create a ZipFile object with the buffer as the target
|
206
208
|
for foldername, subfolders, filenames in os.walk(root_dir): # Walk the root_dir and add all files and folders to the zip file
|
207
209
|
for filename in filenames:
|
210
|
+
if files_to_ignore and filename in files_to_ignore:
|
211
|
+
continue
|
208
212
|
absolute_path = os.path.join(foldername, filename) # Create the complete filepath
|
209
213
|
arcname = os.path.relpath(absolute_path, root_dir) # Define the arcname, which is the name inside the zip file
|
210
214
|
zf.write(absolute_path, arcname) # Add the file to the zip file
|
211
215
|
zip_buffer.seek(0) # Reset buffer position
|
212
|
-
return zip_buffer
|
216
|
+
return zip_buffer.getvalue()
|
213
217
|
|
214
218
|
def zip_files(base_folder, file_pattern="*.*", target_file=None):
|
215
219
|
base_folder = abspath(base_folder)
|
@@ -0,0 +1 @@
|
|
1
|
+
v2.70.0
|
@@ -1 +0,0 @@
|
|
1
|
-
v2.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
|
{osbot_utils-2.68.0 → osbot_utils-2.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
|
{osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/methods/cache_on_function.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.68.0 → osbot_utils-2.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-2.68.0 → osbot_utils-2.70.0}/osbot_utils/decorators/methods/function_type_check.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-2.68.0 → osbot_utils-2.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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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.68.0 → osbot_utils-2.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-2.68.0 → osbot_utils-2.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-2.68.0 → osbot_utils-2.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
|
File without changes
|
{osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/cache_on_self/Cache_Controller.py
RENAMED
File without changes
|
{osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/cache_on_self/Cache_Key_Generator.py
RENAMED
File without changes
|
{osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/cache_on_self/Cache_Metrics.py
RENAMED
File without changes
|
{osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/cache_on_self/Cache_On_Self.py
RENAMED
File without changes
|
{osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/cache_on_self/Cache_Storage.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Row.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.68.0 → osbot_utils-2.70.0}/osbot_utils/helpers/duration/decorators/__init__.py
RENAMED
File without changes
|
File without changes
|