Source code for granicus_archiver.googledrive.types
from__future__importannotationsfromtypingimport(NewType,TypeVar,Generic,TypedDict,NotRequired,AsyncGenerator,Iterable,)frompathlibimportPathfrom..utilsimportSHA1Hash,SHA256Hash,MD5Hashfromaiogoogle.resourceimportGoogleAPI,Resourcefromaiogoogle.modelsimportRequest__all__=('FileId','DriveFileMeta','DriveFileMetaFull','FileUploadResponse','FileListResponse','DriveResource','DriveFiles','FolderCache',)T=TypeVar('T')FileId=NewType('FileId',str)"""A unique id for a file or directory in Drive"""FolderCache=dict[Path,FileId]"""Mapping of paths to :obj:`FileId` to aid in caching Drive folders"""
[docs]classDriveFileMeta(TypedDict):"""Metadata for a Drive file or folder """name:str#: The file or folder nameid:NotRequired[FileId]#: The item id (not required for uploads)mimeType:NotRequired[str]#: Content typeparents:NotRequired[list[FileId]]#: Parent folder(s)size:NotRequired[str]#: Size in byteswebViewLink:NotRequired[str]#: Sharable link to the itemwebContentLink:NotRequired[str]#: Download link
[docs]classDriveFileMetaFull(TypedDict):"""Similar to :class:`DriveFileMeta` but with all fields required """name:str#: The file or folder nameid:FileId#: The item idmimeType:str#: Content typeparents:list[FileId]#: Parent folder(s)size:str#: Size in byteswebViewLink:str#: Sharable link to the itemwebContentLink:str#: Download linkmd5Checksum:MD5Hash#: MD5 Checksumsha1Checksum:SHA1Hash#: SHA1 Checksumsha256Checksum:SHA256Hash#: SHA256 Checksum
[docs]classFileUploadResponse(TypedDict):"""Response type for a Drive upload """id:FileId#: The file id
classFilePageResponse(TypedDict,Generic[T]):"""A single result during pagination in :class:`FileListResponse` """files:Iterable[T]"""Iterable of either :class:`DriveFileMeta` or :class:`DriveFileMetaFull` objects """FileListResponse=AsyncGenerator[FilePageResponse[T],None]"""Response type for file lists as an :term:`asynchronous generator` yielding:class:`FilePageResponse` objects"""
[docs]classDriveResource(GoogleAPI):"""Overload for :class:`aiogoogle.resource.GoogleAPI` as a Drive resource This wraps the response of :meth:`aiogoogle.resource.GoogleAPI.discover` with ``api_name`` and ``api_version`` arguments set to ``("drive", "v3")`` """files:DriveFiles"""A :class:`DriveFiles` resource """
[docs]classDriveFiles(Resource):"""Resource for Drive files """deflist(self,**kwargs)->Request:...defcreate(self,**kwargs)->Request:...defupdate(self,**kwargs)->Request:...defget(self,**kwargs)->Request:...