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

|
27
27
|
[](https://codecov.io/gh/owasp-sbot/OSBot-Utils)
|
28
28
|
|
29
29
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Powerful Python util methods and classes that simplify common apis and tasks.
|
4
4
|
|
5
|
-

|
6
6
|
[](https://codecov.io/gh/owasp-sbot/OSBot-Utils)
|
7
7
|
|
8
8
|
|
@@ -157,6 +157,8 @@ class Type_Safe:
|
|
157
157
|
continue
|
158
158
|
if type(v) is functools._lru_cache_wrapper: # todo, find better way to handle edge cases like this one (which happens when the @cache decorator is used in a instance method that uses Kwargs_To_Self)
|
159
159
|
continue
|
160
|
+
if isinstance(v, property): # skip property descriptors since they should not be handled here
|
161
|
+
continue
|
160
162
|
if (k in kwargs) is False: # do not set the value is it has already been set
|
161
163
|
kwargs[k] = v
|
162
164
|
|
@@ -0,0 +1,36 @@
|
|
1
|
+
from typing import TypeVar, Type, Optional
|
2
|
+
|
3
|
+
T = TypeVar('T')
|
4
|
+
|
5
|
+
def type_safe_property(target_path: str, target_name: str, expected_type: Optional[Type[T]] = None) -> property: # Creates a type-safe property that delegates get/set operations to a nested data object
|
6
|
+
|
7
|
+
def getter(self) -> T:
|
8
|
+
target = self
|
9
|
+
for part in target_path.split('.'):
|
10
|
+
target = getattr(target, part)
|
11
|
+
|
12
|
+
value = getattr(target, target_name)
|
13
|
+
|
14
|
+
if expected_type and value is not None:
|
15
|
+
if not isinstance(value, expected_type):
|
16
|
+
raise TypeError(f"Property '{target_name}' returned value of type {type(value)}, expected {expected_type}")
|
17
|
+
return value
|
18
|
+
|
19
|
+
def setter(self, value: T) -> None:
|
20
|
+
if expected_type and value is not None:
|
21
|
+
if not isinstance(value, expected_type):
|
22
|
+
raise TypeError(f"Cannot set property '{target_name}' with value of type {type(value)}, expected {expected_type}")
|
23
|
+
|
24
|
+
target = self
|
25
|
+
for part in target_path.split('.'):
|
26
|
+
target = getattr(target, part)
|
27
|
+
if hasattr(target, target_name) is False:
|
28
|
+
raise AttributeError(f"Target path '{target_path}' does not have an attribute '{target_name}'")
|
29
|
+
setattr(target, target_name, value)
|
30
|
+
|
31
|
+
return property(getter, setter)
|
32
|
+
|
33
|
+
|
34
|
+
wire_as_property = type_safe_property
|
35
|
+
bind_as_property = type_safe_property
|
36
|
+
set_as_property = type_safe_property
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
v2.9.0
|
@@ -1 +0,0 @@
|
|
1
|
-
v2.8.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.8.0 → osbot_utils-2.9.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
|
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.8.0 → osbot_utils-2.9.0}/osbot_utils/decorators/methods/function_type_check.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-2.8.0 → osbot_utils-2.9.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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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.8.0 → osbot_utils-2.9.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Data.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-2.8.0 → osbot_utils-2.9.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Row.py
RENAMED
File without changes
|
{osbot_utils-2.8.0 → osbot_utils-2.9.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Table.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.8.0 → osbot_utils-2.9.0}/osbot_utils/helpers/flows/models/Flow_Run__Config.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-2.8.0 → osbot_utils-2.9.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Data.py
RENAMED
File without changes
|
{osbot_utils-2.8.0 → osbot_utils-2.9.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Type.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-2.8.0 → osbot_utils-2.9.0}/osbot_utils/helpers/generators/Generator_Context_Manager.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-2.8.0 → osbot_utils-2.9.0}/osbot_utils/helpers/generators/Model__Generator_State.py
RENAMED
File without changes
|
{osbot_utils-2.8.0 → osbot_utils-2.9.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
|
File without changes
|
{osbot_utils-2.8.0 → osbot_utils-2.9.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Connect.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.8.0 → osbot_utils-2.9.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Message.py
RENAMED
File without changes
|
{osbot_utils-2.8.0 → osbot_utils-2.9.0}/osbot_utils/helpers/pubsub/schemas/Schema__PubSub__Client.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-2.8.0 → osbot_utils-2.9.0}/osbot_utils/helpers/python_compatibility/__init__.py
RENAMED
File without changes
|
{osbot_utils-2.8.0 → osbot_utils-2.9.0}/osbot_utils/helpers/python_compatibility/python_3_8.py
RENAMED
File without changes
|
File without changes
|
File without changes
|