Coverage for functions \ flipdare \ error \ app_error_protocol.py: 94%
18 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-05-08 12:22 +1000
« prev ^ index » next coverage.py v7.13.0, created at 2026-05-08 12:22 +1000
1# Copyright (c) 2026 Flipdare Pty Ltd. All rights reserved.
2#
3# This file is part of Flipdare's proprietary software and contains
4# confidential and copyrighted material. Unauthorised copying,
5# modification, distribution, or use of this file is strictly
6# prohibited without prior written permission from Flipdare Pty Ltd.
7#
8# This software includes third-party components licensed under MIT,
9# BSD, and Apache 2.0 licences. See THIRD_PARTY_NOTICES for details.
10#
11from __future__ import annotations
13from typing import Protocol, TypeGuard, override, runtime_checkable, Any
15from flipdare.generated.shared.app_error_code import AppErrorCode
16from flipdare.generated.shared.app_log_category import AppLogCategory
17from flipdare.generated.shared.app_payment_error_code import AppPaymentErrorCode
19__all__ = ["AppErrorProtocol", "ErrorProtocolGuard"]
22class ErrorProtocolGuard:
23 @staticmethod
24 def is_app_code(obj: Any) -> TypeGuard[AppErrorCode]:
25 return isinstance(obj, AppErrorCode)
27 @staticmethod
28 def is_payment_code(obj: Any) -> TypeGuard[AppPaymentErrorCode]:
29 return isinstance(obj, AppPaymentErrorCode)
32@runtime_checkable
33class AppErrorProtocol(Protocol):
34 """Protocol for objects acting as application error codes."""
36 _http_code: int
37 _category: AppLogCategory
38 _display_title: str
40 @property
41 def value(self) -> str: ...
43 @property
44 def http_code(self) -> int: ...
46 @property
47 def category(self) -> AppLogCategory: ...
49 @property
50 def display_title(self) -> str: ...
52 @override
53 def __str__(self) -> str: ...