script.module.vk/lib/vk/api.py

39 lines
1.1 KiB
Python

import logging
from vk.utils import stringify_values
logger = logging.getLogger('vk')
class APINamespace:
def __init__(self, api, method_common_params):
self._api = api
self._method_common_params = method_common_params
def __call__(self, method):
return APIMethod(self._api, method, self._method_common_params)
__getattr__ = __call__
class APIMethod:
def __init__(self, api, method, method_common_params):
self._api = api
self._method = method
self._method_common_params = method_common_params
def __getattr__(self, method):
return self.__class__(self._api, self._method + '.' + method, self._method_common_params)
def __call__(self, **method_params):
request_method_params = self._method_common_params.copy()
request_method_params.update(stringify_values(method_params))
return self._api.send(APIRequest(self._method, request_method_params))
class APIRequest:
def __init__(self, method, method_params):
self.method = method
self.method_params = method_params