osbot-utils 2.18.0__tar.gz → 2.19.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.18.0 → osbot_utils-2.19.0}/PKG-INFO +2 -2
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/README.md +1 -1
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/xml/rss/RSS__Feed__Parser.py +6 -5
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/Type_Safe__Set.py +6 -1
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Json.py +34 -0
- osbot_utils-2.19.0/osbot_utils/version +1 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/pyproject.toml +1 -1
- osbot_utils-2.18.0/osbot_utils/version +0 -1
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/LICENSE +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/base_classes/Cache_Pickle.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/base_classes/Kwargs_To_Disk.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/base_classes/Kwargs_To_Self.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/base_classes/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/context_managers/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/context_managers/async_invoke.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/context_managers/capture_duration.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/context_managers/disable_root_loggers.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/context_managers/print_duration.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/classes/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/classes/singleton.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/lists/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/lists/filter_list.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/lists/group_by.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/lists/index_by.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/methods/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/methods/cache.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/methods/cache_on_function.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/methods/cache_on_self.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/methods/cache_on_tmp.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/methods/capture_exception.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/methods/capture_status.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/methods/catch.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/methods/context.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/methods/depreciated.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/methods/function_type_check.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/methods/obj_as_context.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/methods/remove_return_value.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/methods/required_fields.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/fluent/Fluent_Dict.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/fluent/Fluent_List.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/fluent/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/CFormat.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/CPrint.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/Dependency_Manager.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/Dict_To_Attr.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/Guid.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/Hashicorp_Secrets.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/Local_Cache.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/Local_Caches.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/Obj_Id.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/Print_Table.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/Python_Audit.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/Random_Guid.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/Random_Guid_Short.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/Random_Seed.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/Safe_Id.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/Str_ASCII.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/Timestamp_Now.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/Type_Registry.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/Zip_Bytes.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/Ast.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/Ast_Base.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/Ast_Data.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/Ast_Load.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/Ast_Merge.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/Ast_Node.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/Ast_Visit.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/Call_Tree.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Add.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Alias.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_And.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Argument.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Arguments.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Assert.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Assign.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Attribute.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Aug_Assign.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Bin_Op.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Bool_Op.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Break.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Call.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Class_Def.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Compare.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Comprehension.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Constant.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Continue.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Dict.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Eq.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Except_Handler.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Expr.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_For.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Function_Def.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Generator_Exp.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Gt.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_GtE.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_If.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_If_Exp.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Import.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Import_From.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_In.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Is.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Is_Not.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Keyword.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Lambda.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_List.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_List_Comp.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Load.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Lt.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_LtE.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Mod.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Module.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Mult.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Name.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Not.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Not_Eq.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Not_In.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Or.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Pass.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Pow.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Raise.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Return.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Set.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Slice.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Starred.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Store.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Sub.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Subscript.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Try.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Tuple.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Unary_Op.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_While.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_With.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_With_Item.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Yield.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Actions.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Config.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Data.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Invoke.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Row.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Table.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/cache_requests/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/cache_requests/flows/flow__Cache__Requests.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/flows/Flow.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/flows/Flow__Events.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/flows/Task.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/flows/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/flows/decorators/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/flows/decorators/flow.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/flows/decorators/task.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/flows/models/Flow_Run__Config.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/flows/models/Flow_Run__Event.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Data.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Type.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/flows/models/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/generators/Generator_Context_Manager.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/generators/Generator_Manager.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/generators/Model__Generator_State.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/generators/Model__Generator_Target.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/generators/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/html/Dict_To_Css.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/html/Dict_To_Html.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/html/Dict_To_Tags.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/html/Html_To_Dict.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/html/Html_To_Tag.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/html/Tag__Base.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/html/Tag__Body.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/html/Tag__Div.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/html/Tag__H.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/html/Tag__HR.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/html/Tag__Head.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/html/Tag__Html.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/html/Tag__Link.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/html/Tag__Style.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/html/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/pubsub/Event__Queue.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/pubsub/PubSub__Client.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/pubsub/PubSub__Room.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/pubsub/PubSub__Server.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/pubsub/PubSub__Sqlite.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/pubsub/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Connect.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Disconnect.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Execute_Method.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Join_Room.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Leave_Room.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Message.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/pubsub/schemas/Schema__PubSub__Client.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/pubsub/schemas/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/python_compatibility/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/python_compatibility/python_3_8.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/Capture_Sqlite_Error.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/Sqlite__Cursor.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/Sqlite__Database.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/Sqlite__Field.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/Sqlite__Globals.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/Sqlite__Table.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/Sqlite__Table__Create.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Database__Disk.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Table.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/cache/Schema__Table__Requests.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Patch.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Sqlite.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Table.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/cache/Sqlite__DB__Requests.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/cache/TestCase__Sqlite__Cache__Requests.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/cache/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Files.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Graph.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Json.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Local.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/domains/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/domains/schemas/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/models/Sqlite__Field__Type.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/models/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/sample_data/Sqlite__Sample_Data__Chinook.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/sample_data/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder__Select.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/sql_builder/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Config.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Edges.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Files.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Nodes.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/sqlite/tables/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ssh/SCP.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ssh/SSH.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ssh/SSH__Cache__Requests.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ssh/SSH__Execute.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ssh/SSH__Health_Check.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ssh/SSH__Linux.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ssh/SSH__Linux__Amazon.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ssh/SSH__Python.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ssh/TestCase__SSH.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ssh/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/trace/Trace_Call.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/trace/Trace_Call__Config.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/trace/Trace_Call__Handler.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/trace/Trace_Call__Print_Lines.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/trace/Trace_Call__Print_Traces.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/trace/Trace_Call__Stack.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/trace/Trace_Call__Stack_Node.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/trace/Trace_Call__Stats.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/trace/Trace_Call__View_Model.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/trace/Trace_Files.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/trace/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/xml/Xml__Attribute.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/xml/Xml__Element.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/xml/Xml__File.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/xml/Xml__File__Load.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/xml/Xml__File__To_Dict.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/xml/Xml__File__To_Xml.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/xml/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/xml/rss/RSS__Channel.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/xml/rss/RSS__Enclosure.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/xml/rss/RSS__Feed.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/xml/rss/RSS__Image.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/xml/rss/RSS__Item.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/Catch.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/Custom_Handler_For_Http_Tests.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/Duration.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/Hook_Method.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/Log_To_Queue.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/Log_To_String.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/Logging.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/Patch_Print.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/Profiler.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/Pytest.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/Stderr.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/Stdout.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/Temp_Env_Vars.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/Temp_File.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/Temp_Folder.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/Temp_Sys_Path.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/Temp_Web_Server.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/Temp_Zip.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/Temp_Zip_In_Memory.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/Unit_Test.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/Unzip_File.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/performance/Performance_Measure__Session.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/performance/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/performance/models/Model__Performance_Measure__Measurement.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/performance/models/Model__Performance_Measure__Result.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/testing/performance/models/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/Type_Safe.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/Type_Safe__Base.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/Type_Safe__Dict.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/Type_Safe__List.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/Type_Safe__Method.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/Type_Safe__Tuple.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/decorators/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/decorators/type_safe.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/methods/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/methods/type_safe_property.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/shared/Type_Safe__Annotations.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/shared/Type_Safe__Cache.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/shared/Type_Safe__Convert.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/shared/Type_Safe__Not_Cached.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/shared/Type_Safe__Raise_Exception.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/shared/Type_Safe__Shared__Variables.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/shared/Type_Safe__Validation.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/shared/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Class_Kwargs.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Default_Kwargs.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Default_Value.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/steps/Type_Safe__Step__From_Json.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Init.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Set_Attr.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/steps/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/validators/Type_Safe__Validator.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/validators/Validator__Max.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/validators/Validator__Min.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/validators/Validator__One_Of.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/validators/Validator__Regex.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/type_safe/validators/__init__.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Assert.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Call_Stack.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Csv.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Dev.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Env.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Exceptions.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Files.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Functions.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Http.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Int.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Json_Cache.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Lists.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Misc.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Objects.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Png.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Process.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Python_Logger.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Regex.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Status.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Str.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Threads.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Toml.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Version.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/utils/Zip.py +0 -0
- {osbot_utils-2.18.0 → osbot_utils-2.19.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.19.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
|
|
@@ -58,11 +58,12 @@ class RSS__Feed__Parser:
|
|
58
58
|
# Process channel image if present
|
59
59
|
if 'image' in channel_data:
|
60
60
|
img_data = channel_data['image']
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
61
|
+
if img_data:
|
62
|
+
channel.image = RSS__Image( url = img_data.get('url' , '' ),
|
63
|
+
title = img_data.get('title' , '' ),
|
64
|
+
link = img_data.get('link' , '' ),
|
65
|
+
width = int(img_data.get('width' , 0 )),
|
66
|
+
height = int(img_data.get('height', 0 )))
|
66
67
|
|
67
68
|
known_channel_fields = {'title', 'link', 'description', 'language', # Move non-standard channel elements to extensions
|
68
69
|
'lastBuildDate', 'image', 'item', 'updateFrequency', 'updatePeriod'}
|
@@ -29,4 +29,9 @@ class Type_Safe__Set(Type_Safe__Base, set):
|
|
29
29
|
result.append({k: v.json() if isinstance(v, Type_Safe) else v for k, v in item.items()})
|
30
30
|
else:
|
31
31
|
result.append(item)
|
32
|
-
return result
|
32
|
+
return result
|
33
|
+
|
34
|
+
def __eq__(self, other): # todo: see if this is needed
|
35
|
+
if isinstance(other, (set, Type_Safe__Set)):
|
36
|
+
return set(self) == set(other)
|
37
|
+
return False
|
@@ -1,3 +1,5 @@
|
|
1
|
+
from typing import Any
|
2
|
+
|
1
3
|
|
2
4
|
def bytes_to_json_loads(data):
|
3
5
|
import json
|
@@ -21,6 +23,38 @@ def json_dumps(python_object, indent=4, pretty=True, sort_keys=False, default=st
|
|
21
23
|
def json_dumps_to_bytes(*args, **kwargs):
|
22
24
|
return json_dumps(*args, **kwargs).encode()
|
23
25
|
|
26
|
+
def json__type_key(obj: Any) -> tuple:
|
27
|
+
if obj is None : return (0, None)
|
28
|
+
if isinstance(obj, bool) : return (1, obj)
|
29
|
+
if isinstance(obj, int) : return (2, obj)
|
30
|
+
if isinstance(obj, float) : return (3, obj)
|
31
|
+
if isinstance(obj, str) : return (4, obj)
|
32
|
+
if isinstance(obj, (list, set, tuple)): return (5, tuple(sorted(json__type_key(x) for x in obj)))
|
33
|
+
if isinstance(obj, dict) : return (6, tuple(sorted((k, json__type_key(v)) for k,v in obj.items())))
|
34
|
+
return (7, str(obj)) # Fallback for unknown types
|
35
|
+
|
36
|
+
def json__equals__list_and_set(value_1: Any, value_2: Any) -> bool:
|
37
|
+
if isinstance(value_1, (list, set)) or isinstance(value_2, (list, set)):
|
38
|
+
list_1 = list(value_1)
|
39
|
+
list_2 = list(value_2)
|
40
|
+
|
41
|
+
if len(list_1) != len(list_2): # Quick length check
|
42
|
+
return False
|
43
|
+
|
44
|
+
sorted_1 = sorted(list_1, key=json__type_key)
|
45
|
+
sorted_2 = sorted(list_2, key=json__type_key)
|
46
|
+
|
47
|
+
return all(json__equals__list_and_set(a, b)
|
48
|
+
for a, b in zip(sorted_1, sorted_2))
|
49
|
+
|
50
|
+
if isinstance(value_1, dict) and isinstance(value_2, dict):
|
51
|
+
if value_1.keys() != value_2.keys(): # Check keys match
|
52
|
+
return False
|
53
|
+
return all(json__equals__list_and_set(value_1[key], value_2[key]) # Recursively compare values
|
54
|
+
for key in value_1.keys())
|
55
|
+
|
56
|
+
return value_1 == value_2
|
57
|
+
|
24
58
|
def json_lines_file_load(target_path):
|
25
59
|
from osbot_utils.utils.Files import file_lines
|
26
60
|
|
@@ -0,0 +1 @@
|
|
1
|
+
v2.19.0
|
@@ -1 +0,0 @@
|
|
1
|
-
v2.18.0
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/context_managers/disable_root_loggers.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/methods/cache_on_function.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.18.0 → osbot_utils-2.19.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.18.0 → osbot_utils-2.19.0}/osbot_utils/decorators/methods/function_type_check.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-2.18.0 → osbot_utils-2.19.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.18.0 → osbot_utils-2.19.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.18.0 → osbot_utils-2.19.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.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/ast/nodes/Ast_Generator_Exp.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Row.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/flows/models/Flow_Run__Config.py
RENAMED
File without changes
|
{osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/flows/models/Flow_Run__Event.py
RENAMED
File without changes
|
{osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Data.py
RENAMED
File without changes
|
{osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Type.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/generators/Generator_Manager.py
RENAMED
File without changes
|
{osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/generators/Model__Generator_State.py
RENAMED
File without changes
|
{osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/generators/Model__Generator_Target.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
|
{osbot_utils-2.18.0 → osbot_utils-2.19.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event.py
RENAMED
File without changes
|
File without changes
|
File without changes
|