mirror of
https://github.com/aljazceru/bitfinex-api-py.git
synced 2025-12-19 06:44:22 +01:00
Remove inner class Connection.Authenticable (_connection.py).
This commit is contained in:
@@ -69,7 +69,7 @@ class _Delay:
|
|||||||
def reset(self) -> None:
|
def reset(self) -> None:
|
||||||
self.__backoff_delay = _Delay.__BACKOFF_MIN
|
self.__backoff_delay = _Delay.__BACKOFF_MIN
|
||||||
|
|
||||||
class BfxWebSocketClient(Connection, Connection.Authenticable):
|
class BfxWebSocketClient(Connection):
|
||||||
VERSION = BfxWebSocketBucket.VERSION
|
VERSION = BfxWebSocketBucket.VERSION
|
||||||
|
|
||||||
MAXIMUM_CONNECTIONS_AMOUNT = 20
|
MAXIMUM_CONNECTIONS_AMOUNT = 20
|
||||||
@@ -307,7 +307,7 @@ class BfxWebSocketClient(Connection, Connection.Authenticable):
|
|||||||
await self._websocket.close( \
|
await self._websocket.close( \
|
||||||
code=code, reason=reason)
|
code=code, reason=reason)
|
||||||
|
|
||||||
@Connection.Authenticable.require_websocket_authentication
|
@Connection.require_websocket_authentication
|
||||||
async def notify(self,
|
async def notify(self,
|
||||||
info: Any,
|
info: Any,
|
||||||
message_id: Optional[int] = None,
|
message_id: Optional[int] = None,
|
||||||
@@ -316,7 +316,7 @@ class BfxWebSocketClient(Connection, Connection.Authenticable):
|
|||||||
json.dumps([ 0, "n", message_id,
|
json.dumps([ 0, "n", message_id,
|
||||||
{ "type": "ucm-test", "info": info, **kwargs } ]))
|
{ "type": "ucm-test", "info": info, **kwargs } ]))
|
||||||
|
|
||||||
@Connection.Authenticable.require_websocket_authentication
|
@Connection.require_websocket_authentication
|
||||||
async def __handle_websocket_input(self, event: str, data: Any) -> None:
|
async def __handle_websocket_input(self, event: str, data: Any) -> None:
|
||||||
await self._websocket.send(json.dumps(\
|
await self._websocket.send(json.dumps(\
|
||||||
[ 0, event, None, data], cls=JSONEncoder))
|
[ 0, event, None, data], cls=JSONEncoder))
|
||||||
|
|||||||
@@ -10,30 +10,11 @@ if TYPE_CHECKING:
|
|||||||
class Connection:
|
class Connection:
|
||||||
HEARTBEAT = "hb"
|
HEARTBEAT = "hb"
|
||||||
|
|
||||||
class Authenticable:
|
|
||||||
def __init__(self) -> None:
|
|
||||||
self._authentication: bool = False
|
|
||||||
|
|
||||||
@property
|
|
||||||
def authentication(self) -> bool:
|
|
||||||
return self._authentication
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def require_websocket_authentication(function):
|
|
||||||
async def wrapper(self, *args, **kwargs):
|
|
||||||
if not self.authentication:
|
|
||||||
raise ActionRequiresAuthentication("To perform this action you need to " \
|
|
||||||
"authenticate using your API_KEY and API_SECRET.")
|
|
||||||
|
|
||||||
internal = Connection.require_websocket_connection(function)
|
|
||||||
|
|
||||||
return await internal(self, *args, **kwargs)
|
|
||||||
|
|
||||||
return wrapper
|
|
||||||
|
|
||||||
def __init__(self, host: str) -> None:
|
def __init__(self, host: str) -> None:
|
||||||
self._host = host
|
self._host = host
|
||||||
|
|
||||||
|
self._authentication: bool = False
|
||||||
|
|
||||||
self.__protocol: Optional["WebSocketClientProtocol"] = None
|
self.__protocol: Optional["WebSocketClientProtocol"] = None
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@@ -41,6 +22,10 @@ class Connection:
|
|||||||
return self.__protocol is not None and \
|
return self.__protocol is not None and \
|
||||||
self.__protocol.open
|
self.__protocol.open
|
||||||
|
|
||||||
|
@property
|
||||||
|
def authentication(self) -> bool:
|
||||||
|
return self._authentication
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def _websocket(self) -> "WebSocketClientProtocol":
|
def _websocket(self) -> "WebSocketClientProtocol":
|
||||||
return cast("WebSocketClientProtocol", self.__protocol)
|
return cast("WebSocketClientProtocol", self.__protocol)
|
||||||
@@ -58,3 +43,16 @@ class Connection:
|
|||||||
raise ConnectionNotOpen("No open connection with the server.")
|
raise ConnectionNotOpen("No open connection with the server.")
|
||||||
|
|
||||||
return wrapper
|
return wrapper
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def require_websocket_authentication(function):
|
||||||
|
async def wrapper(self, *args, **kwargs):
|
||||||
|
if not self.authentication:
|
||||||
|
raise ActionRequiresAuthentication("To perform this action you need to " \
|
||||||
|
"authenticate using your API_KEY and API_SECRET.")
|
||||||
|
|
||||||
|
internal = Connection.require_websocket_connection(function)
|
||||||
|
|
||||||
|
return await internal(self, *args, **kwargs)
|
||||||
|
|
||||||
|
return wrapper
|
||||||
|
|||||||
Reference in New Issue
Block a user