osbot-utils 1.87.0__tar.gz → 1.88.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/PKG-INFO +2 -2
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/README.md +1 -1
- osbot_utils-1.88.0/osbot_utils/helpers/Guid.py +18 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/Random_Guid.py +1 -1
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/Safe_Id.py +2 -2
- osbot_utils-1.88.0/osbot_utils/helpers/Str_ASCII.py +22 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Misc.py +0 -1
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Objects.py +4 -2
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Str.py +2 -2
- osbot_utils-1.88.0/osbot_utils/version +1 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/pyproject.toml +1 -1
- osbot_utils-1.87.0/osbot_utils/version +0 -1
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/LICENSE +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/base_classes/Cache_Pickle.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/base_classes/Kwargs_To_Disk.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/base_classes/Kwargs_To_Self.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/base_classes/Type_Safe.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/base_classes/Type_Safe__List.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/base_classes/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/context_managers/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/context_managers/async_invoke.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/context_managers/capture_duration.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/context_managers/disable_root_loggers.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/context_managers/print_duration.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/classes/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/classes/singleton.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/lists/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/lists/filter_list.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/lists/group_by.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/lists/index_by.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/methods/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/methods/cache.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/methods/cache_on_function.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/methods/cache_on_self.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/methods/cache_on_tmp.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/methods/capture_exception.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/methods/capture_status.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/methods/catch.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/methods/context.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/methods/depreciated.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/methods/function_type_check.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/methods/obj_as_context.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/methods/remove_return_value.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/methods/required_fields.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/methods/type_safe.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/fluent/Fluent_Dict.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/fluent/Fluent_List.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/fluent/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mermaid/Mermaid.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mermaid/Mermaid__Edge.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mermaid/Mermaid__Graph.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mermaid/Mermaid__Node.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mermaid/Mermaid__Renderer.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mermaid/configs/Mermaid__Edge__Config.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mermaid/configs/Mermaid__Node__Config.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mermaid/configs/Mermaid__Render__Config.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mermaid/examples/Mermaid_Examples__FlowChart.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mermaid/models/Mermaid__Diagram_Direction.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mermaid/models/Mermaid__Diagram__Type.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mermaid/models/Mermaid__Node__Shape.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mgraph/MGraph.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mgraph/MGraph__Config.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mgraph/MGraph__Data.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mgraph/MGraph__Edge.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mgraph/MGraph__Node.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mgraph/MGraph__Random_Graphs.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mgraph/MGraph__Serializer.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mgraph/MGraphs.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mgraph/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/CFormat.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/CPrint.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/Dependency_Manager.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/Dict_To_Attr.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/Hashicorp_Secrets.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/Local_Cache.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/Local_Caches.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/Print_Table.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/Python_Audit.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/Random_Guid_Short.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/Random_Seed.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/Timestamp_Now.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/Type_Registry.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/Type_Safe_Method.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/Zip_Bytes.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/Ast.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/Ast_Base.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/Ast_Data.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/Ast_Load.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/Ast_Merge.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/Ast_Node.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/Ast_Visit.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/Call_Tree.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Add.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Alias.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_And.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Argument.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Arguments.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Assert.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Assign.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Attribute.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Aug_Assign.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Bin_Op.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Bool_Op.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Break.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Call.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Class_Def.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Compare.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Comprehension.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Constant.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Continue.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Dict.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Eq.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Except_Handler.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Expr.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_For.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Function_Def.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Generator_Exp.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Gt.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_GtE.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_If.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_If_Exp.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Import.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Import_From.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_In.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Is.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Is_Not.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Keyword.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Lambda.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_List.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_List_Comp.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Load.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Lt.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_LtE.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Mod.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Module.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Mult.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Name.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Not.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Not_Eq.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Not_In.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Or.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Pass.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Pow.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Raise.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Return.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Set.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Slice.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Starred.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Store.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Sub.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Subscript.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Try.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Tuple.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Unary_Op.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_While.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_With.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_With_Item.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Yield.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Actions.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Config.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Data.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Invoke.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Row.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Table.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/cache_requests/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/cache_requests/flows/flow__Cache__Requests.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/flows/Flow.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/flows/Flow__Events.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/flows/Task.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/flows/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/flows/decorators/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/flows/decorators/flow.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/flows/decorators/task.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/flows/models/Flow_Run__Config.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/flows/models/Flow_Run__Event.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Data.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Type.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/flows/models/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/generators/Generator_Context_Manager.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/generators/Generator_Manager.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/generators/Model__Generator_State.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/generators/Model__Generator_Target.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/generators/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/html/Dict_To_Css.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/html/Dict_To_Html.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/html/Dict_To_Tags.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/html/Html_To_Dict.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/html/Html_To_Tag.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/html/Tag__Base.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/html/Tag__Body.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/html/Tag__Div.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/html/Tag__H.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/html/Tag__HR.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/html/Tag__Head.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/html/Tag__Html.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/html/Tag__Link.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/html/Tag__Style.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/html/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/pubsub/Event__Queue.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/pubsub/PubSub__Client.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/pubsub/PubSub__Room.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/pubsub/PubSub__Server.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/pubsub/PubSub__Sqlite.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/pubsub/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Connect.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Disconnect.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Execute_Method.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Join_Room.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Leave_Room.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Message.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/pubsub/schemas/Schema__PubSub__Client.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/pubsub/schemas/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/Capture_Sqlite_Error.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/Sqlite__Cursor.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/Sqlite__Database.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/Sqlite__Field.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/Sqlite__Globals.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/Sqlite__Table.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/Sqlite__Table__Create.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Database__Disk.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Table.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/cache/Schema__Table__Requests.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Patch.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Sqlite.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Table.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/cache/Sqlite__DB__Requests.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/cache/TestCase__Sqlite__Cache__Requests.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/cache/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Files.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Graph.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Json.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Local.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/domains/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/domains/schemas/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/models/Sqlite__Field__Type.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/models/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/sample_data/Sqlite__Sample_Data__Chinook.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/sample_data/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder__Select.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/sql_builder/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Config.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Edges.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Files.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Nodes.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/sqlite/tables/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ssh/SCP.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ssh/SSH.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ssh/SSH__Cache__Requests.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ssh/SSH__Execute.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ssh/SSH__Health_Check.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ssh/SSH__Linux.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ssh/SSH__Linux__Amazon.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ssh/SSH__Python.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ssh/TestCase__SSH.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ssh/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/trace/Trace_Call.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/trace/Trace_Call__Config.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/trace/Trace_Call__Graph.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/trace/Trace_Call__Handler.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/trace/Trace_Call__Print_Lines.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/trace/Trace_Call__Print_Traces.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/trace/Trace_Call__Stack.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/trace/Trace_Call__Stack_Node.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/trace/Trace_Call__Stats.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/trace/Trace_Call__View_Model.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/trace/Trace_Files.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/trace/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/testing/Catch.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/testing/Custom_Handler_For_Http_Tests.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/testing/Duration.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/testing/Hook_Method.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/testing/Log_To_Queue.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/testing/Log_To_String.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/testing/Logging.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/testing/Patch_Print.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/testing/Profiler.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/testing/Pytest.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/testing/Stderr.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/testing/Stdout.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/testing/Temp_Env_Vars.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/testing/Temp_File.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/testing/Temp_Folder.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/testing/Temp_Sys_Path.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/testing/Temp_Web_Server.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/testing/Temp_Zip.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/testing/Temp_Zip_In_Memory.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/testing/Unit_Test.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/testing/Unzip_File.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/testing/__init__.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Assert.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Call_Stack.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Csv.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Dev.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Env.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Exceptions.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Files.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Functions.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Http.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Int.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Json.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Json_Cache.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Lists.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Png.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Process.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Python_Logger.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Regex.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Status.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Threads.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Toml.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Version.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/Zip.py +0 -0
- {osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/utils/__init__.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: osbot_utils
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.88.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
|
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import uuid
|
2
|
+
|
3
|
+
from osbot_utils.utils.Misc import is_guid
|
4
|
+
|
5
|
+
GUID__NAMESPACE = uuid.UUID('2cfec064-537a-4ff7-8fdc-2fc9e2606f3d')
|
6
|
+
|
7
|
+
class Guid(str):
|
8
|
+
def __new__(cls, value: str):
|
9
|
+
if not isinstance(value, str): # Check if the value is a string
|
10
|
+
raise ValueError(f'in Guid: value provided was not a string: {value}') # if not raise a ValueError
|
11
|
+
if is_guid(value):
|
12
|
+
guid = value
|
13
|
+
else:
|
14
|
+
guid = uuid.uuid5(GUID__NAMESPACE, value) # Generate a UUID5 using the namespace and value
|
15
|
+
return super().__new__(cls, str(guid)) # Return a new instance of Guid initialized with the string version of the UUID
|
16
|
+
|
17
|
+
def __str__(self):
|
18
|
+
return self
|
@@ -2,10 +2,10 @@ from osbot_utils.utils.Misc import random_id_short
|
|
2
2
|
from osbot_utils.utils.Str import safe_id
|
3
3
|
|
4
4
|
class Safe_Id(str):
|
5
|
-
def __new__(cls, value=None):
|
5
|
+
def __new__(cls, value=None, max_length=36):
|
6
6
|
if value is None:
|
7
7
|
value = safe_id(random_id_short('safe-id'))
|
8
|
-
sanitized_value = safe_id(value)
|
8
|
+
sanitized_value = safe_id(value, max_length=max_length)
|
9
9
|
return str.__new__(cls, sanitized_value)
|
10
10
|
|
11
11
|
def __str__(self):
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import re
|
2
|
+
|
3
|
+
REGEX__ASCII_VALUE = re.compile(r'[^a-zA-Z0-9_\s!@#$%^&*()\[\]{}\-+=:;,.?]')
|
4
|
+
|
5
|
+
class Str_ASCII(str):
|
6
|
+
"""
|
7
|
+
A string subclass that ensures values only contain safe ASCII characters.
|
8
|
+
Replaces any unsafe characters with underscores.
|
9
|
+
"""
|
10
|
+
def __new__(cls, value=None, max_length=None):
|
11
|
+
if value is None:
|
12
|
+
value = ""
|
13
|
+
|
14
|
+
if not isinstance(value, str):
|
15
|
+
value = str(value)
|
16
|
+
|
17
|
+
if max_length and len(value) > max_length:
|
18
|
+
raise ValueError(f"Value length exceeds maximum of {max_length} characters (was {len(value)})")
|
19
|
+
|
20
|
+
sanitized_value = REGEX__ASCII_VALUE.sub('_', value)
|
21
|
+
|
22
|
+
return super().__new__(cls, sanitized_value)
|
@@ -109,11 +109,13 @@ def convert_dict_to_value_from_obj_annotation(target, attr_name, value):
|
|
109
109
|
|
110
110
|
def convert_to_value_from_obj_annotation(target, attr_name, value): # todo: see the side effects of doing this for all ints and floats
|
111
111
|
|
112
|
-
from osbot_utils.helpers.
|
112
|
+
from osbot_utils.helpers.Guid import Guid
|
113
113
|
from osbot_utils.helpers.Timestamp_Now import Timestamp_Now
|
114
114
|
from osbot_utils.helpers.Random_Guid import Random_Guid
|
115
|
+
from osbot_utils.helpers.Safe_Id import Safe_Id
|
116
|
+
from osbot_utils.helpers.Str_ASCII import Str_ASCII
|
115
117
|
|
116
|
-
TYPE_SAFE__CONVERT_VALUE__SUPPORTED_TYPES = [
|
118
|
+
TYPE_SAFE__CONVERT_VALUE__SUPPORTED_TYPES = [Guid, Random_Guid, Safe_Id, Str_ASCII, Timestamp_Now]
|
117
119
|
|
118
120
|
if target is not None and attr_name is not None:
|
119
121
|
if hasattr(target, '__annotations__'):
|
@@ -34,14 +34,14 @@ def strip_quotes(value: str): # Remove surrounding quo
|
|
34
34
|
return value[1:-1]
|
35
35
|
return value
|
36
36
|
|
37
|
-
def safe_id(value):
|
37
|
+
def safe_id(value, max_length=36):
|
38
38
|
if value is None or value == "":
|
39
39
|
raise ValueError("Invalid ID: The ID must not be empty.")
|
40
40
|
|
41
41
|
if not isinstance(value, str):
|
42
42
|
value = str(value)
|
43
43
|
|
44
|
-
if len(value) >
|
44
|
+
if len(value) > max_length:
|
45
45
|
raise ValueError(f"Invalid ID: The ID must not exceed 36 characters (was {len(value)}).")
|
46
46
|
|
47
47
|
sanitized_value = REGEX__SAFE_ID_REGEX.sub('_', value)
|
@@ -0,0 +1 @@
|
|
1
|
+
v1.88.0
|
@@ -1 +0,0 @@
|
|
1
|
-
v1.87.0
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/context_managers/disable_root_loggers.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/methods/cache_on_function.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/methods/capture_exception.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/decorators/methods/function_type_check.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-1.87.0 → osbot_utils-1.88.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
|
{osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mermaid/models/Mermaid__Node__Shape.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/graphs/mgraph/MGraph__Random_Graphs.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Comprehension.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/ast/nodes/Ast_Except_Handler.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-1.87.0 → osbot_utils-1.88.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-1.87.0 → osbot_utils-1.88.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-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/flows/models/Flow_Run__Config.py
RENAMED
File without changes
|
{osbot_utils-1.87.0 → osbot_utils-1.88.0}/osbot_utils/helpers/flows/models/Flow_Run__Event.py
RENAMED
File without changes
|