Source code for yadisk.objects.disk

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

from functools import partial
from .yadisk_object import YaDiskObject
from ..common import str_or_error, bool_or_error, int_or_error

from typing import Any, Optional, NoReturn

__all__ = ["DiskInfoObject", "SystemFoldersObject", "UserObject", "UserPublicInfoObject"]

[docs] class DiskInfoObject(YaDiskObject): """ Disk information object. :param disk_info: `dict` or `None` :param yadisk: :any:`YaDisk` or `None`, `YaDisk` object :ivar max_file_size: `int`, maximum supported file size (bytes) :ivar paid_max_file_size: `int`, maximum supported file size for a paid account (bytes) :ivar unlimited_autoupload_enabled: `bool`, tells whether unlimited autoupload from mobile devices is enabled :ivar total_space: `int`, total disk size (bytes) :ivar trash_size: `int`, amount of space used by trash (bytes), part of `used_space` :ivar is_paid: `bool`, tells if the account is paid or not :ivar used_space: `int`, amount of space used (bytes) :ivar system_folders: :any:`SystemFoldersObject`, paths to the system folders :ivar user: :any:`UserObject`, owner of the disk :ivar revision: `int`, current revision of Yandex.Disk """ max_file_size: Optional[int] paid_max_file_size: Optional[int] unlimited_autoupload_enabled: Optional[bool] total_space: Optional[int] trash_size: Optional[int] is_paid: Optional[bool] used_space: Optional[int] system_folders: "SystemFoldersObject" user: "UserObject" revision: Optional[int] def __init__(self, disk_info: Optional[dict] = None, yadisk: Optional[Any] = None): YaDiskObject.__init__( self, {"max_file_size": int_or_error, "paid_max_file_size": int_or_error, "unlimited_autoupload_enabled": bool_or_error, "total_space": int_or_error, "trash_size": int_or_error, "is_paid": bool_or_error, "used_space": int_or_error, "system_folders": partial(SystemFoldersObject, yadisk=yadisk), "user": partial(UserObject, yadisk=yadisk), "revision": int_or_error}, yadisk) self.import_fields(disk_info)
[docs] class SystemFoldersObject(YaDiskObject): """ Object, containing paths to system folders. :param system_folders: `dict` or `None` :param yadisk: :any:`YaDisk` or `None`, `YaDisk` object :ivar odnoklassniki: `str`, path to the Odnoklassniki folder :ivar google: `str`, path to the Google+ folder :ivar instagram: `str`, path to the Instagram folder :ivar vkontakte: `str`, path to the VKontakte folder :ivar attach: `str`, path to the mail attachments folder :ivar mailru: `str`, path to the My World folder :ivar downloads: `str`, path to the Downloads folder :ivar applications: `str` path to the Applications folder :ivar facebook: `str`, path to the Facebook folder :ivar social: `str`, path to the social networks folder :ivar messenger: `str`, path to the Messenger Files folder :ivar calendar: `str`, path to the Meeting Materials folder :ivar photostream: `str`, path to the camera folder :ivar screenshots: `str`, path to the screenshot folder :ivar scans: `str`, path to the Scans folder """ odnoklassniki: Optional[str] google: Optional[str] instagram: Optional[str] vkontakte: Optional[str] attach: Optional[str] mailru: Optional[str] downloads: Optional[str] applications: Optional[str] facebook: Optional[str] social: Optional[str] messenger: Optional[str] calendar: Optional[str] photostream: Optional[str] screenshots: Optional[str] scans: Optional[str] def __init__(self, system_folders: Optional[dict] = None, yadisk: Optional[Any] = None): YaDiskObject.__init__( self, {"odnoklassniki": str_or_error, "google": str_or_error, "instagram": str_or_error, "vkontakte": str_or_error, "attach": str_or_error, "mailru": str_or_error, "downloads": str_or_error, "applications": str_or_error, "facebook": str_or_error, "social": str_or_error, "messenger": str_or_error, "calendar": str_or_error, "photostream": str_or_error, "screenshots": str_or_error, "scans": str_or_error}, yadisk) self.import_fields(system_folders)
[docs] class UserObject(YaDiskObject): """ User object. :param user: `dict` or `None` :param yadisk: :any:`YaDisk` or `None`, `YaDisk` object :ivar country: `str`, user's country :ivar login: `str`, user's login :ivar display_name: `str`, user's display name :ivar uid: `str`, user's UID """ country: Optional[str] login: Optional[str] display_name: Optional[str] uid: Optional[str] def __init__(self, user: Optional[dict] = None, yadisk: Optional[Any] = None): YaDiskObject.__init__( self, {"country": str_or_error, "login": str_or_error, "display_name": str_or_error, "uid": str_or_error}, yadisk) self.import_fields(user)
[docs] class UserPublicInfoObject(UserObject): """ Public user information object. Inherits from :any:`UserObject` for compatibility. :param public_user_info: `dict` or `None` :param yadisk: :any:`YaDisk` or `None`, `YaDisk` object :ivar login: `str`, user's login :ivar display_name: `str`, user's display name :ivar uid: `str`, user's UID """ country: NoReturn def __init__(self, public_user_info: Optional[dict] = None, yadisk: Optional[Any] = None): UserObject.__init__(self, None, yadisk) self.remove_field("country") self.import_fields(public_user_info)