Source code for yadisk.api.disk

# -*- coding: utf-8 -*-

from .api_request import APIRequest
from ..objects import DiskInfoObject
from ..exceptions import InvalidResponseError

from typing import Optional, TYPE_CHECKING
from ..compat import Iterable

if TYPE_CHECKING:
    from ..types import AnySession

__all__ = ["DiskInfoRequest"]

[docs] class DiskInfoRequest(APIRequest): """ A request to get disk information. :param session: an instance of :any:`Session` or :any:`AsyncSession` with prepared headers :param fields: list of keys to be included in the response :returns: :any:`DiskInfoObject` """ url = "https://cloud-api.yandex.net/v1/disk" method = "GET" def __init__(self, session: "AnySession", fields: Optional[Iterable[str]] = None, **kwargs): APIRequest.__init__(self, session, {"fields": fields}, **kwargs) def process_args(self, fields: Optional[Iterable[str]]) -> None: if fields is not None: self.params["fields"] = ",".join(fields)
[docs] def process_json(self, js: Optional[dict]) -> DiskInfoObject: if js is None: raise InvalidResponseError("Yandex.Disk returned invalid JSON") return DiskInfoObject(js)