"""
This module holds dynamically generated classes.
For more info see protocol.py and protocol.json.
"""
# =============================================================================
# >> IMPORTS
# =============================================================================
# Python
from enum import Enum
# obs-ws-rc
from .struct import Struct, StructField, StructMeta
# =============================================================================
# >> BASE CLASSES
# =============================================================================
[docs]class ResponseStatus(Enum):
OK = 'OK'
ERROR = 'ERROR'
[docs]class BaseResponse(Struct, metaclass=BaseResponseMeta):
pass
[docs]class BaseRequest(Struct):
@property
def type_name(self):
raise NotImplementedError
[docs] class response_class(BaseResponse):
pass
[docs] def get_request_data(self, message_id):
dict_ = self.copy()
dict_['request-type'] = self.type_name
dict_['message-id'] = message_id
return dict_
[docs]def dummy_request(**kwargs):
raise NotImplementedError("protocol.json doesn't implement this request")
AuthenticateRequest = dummy_request
GetAuthRequiredRequest = dummy_request