|
8 | 8 | from funcy import retry, compose, decorator, wrap_with
|
9 | 9 | from funcy.py3 import cat
|
10 | 10 |
|
11 |
| -from dvc.remote.gdrive.utils import TrackFileReadProgress, FOLDER_MIME_TYPE |
| 11 | +from dvc.progress import Tqdm |
12 | 12 | from dvc.scheme import Schemes
|
13 | 13 | from dvc.path_info import CloudURLInfo
|
14 | 14 | from dvc.remote.base import RemoteBASE
|
|
17 | 17 | from dvc.utils import tmp_fname
|
18 | 18 |
|
19 | 19 | logger = logging.getLogger(__name__)
|
| 20 | +FOLDER_MIME_TYPE = "application/vnd.google-apps.folder" |
20 | 21 |
|
21 | 22 |
|
22 | 23 | class GDriveRetriableError(DvcException):
|
@@ -92,30 +93,34 @@ def gdrive_upload_file(
|
92 | 93 | item = self.drive.CreateFile(
|
93 | 94 | {"title": args["title"], "parents": [{"id": args["parent_id"]}]}
|
94 | 95 | )
|
95 |
| - self.upload_file(item, no_progress_bar, from_file, progress_name) |
96 |
| - return item |
97 | 96 |
|
98 |
| - def upload_file(self, item, no_progress_bar, from_file, progress_name): |
99 |
| - with open(from_file, "rb") as opened_file: |
100 |
| - if not no_progress_bar: |
101 |
| - opened_file = TrackFileReadProgress(progress_name, opened_file) |
102 |
| - # PyDrive doesn't like content property setting for empty files |
103 |
| - # https://github.com/gsuitedevs/PyDrive/issues/121 |
104 |
| - if os.stat(from_file).st_size: |
105 |
| - item.content = opened_file |
106 |
| - item.Upload() |
| 97 | + with open(from_file, "rb") as fobj: |
| 98 | + total = os.path.getsize(from_file) |
| 99 | + with Tqdm.wrapattr( |
| 100 | + fobj, |
| 101 | + "read", |
| 102 | + desc=progress_name, |
| 103 | + total=total, |
| 104 | + disable=no_progress_bar, |
| 105 | + ) as wrapped: |
| 106 | + # PyDrive doesn't like content property setting for empty files |
| 107 | + # https://github.com/gsuitedevs/PyDrive/issues/121 |
| 108 | + if total: |
| 109 | + item.content = wrapped |
| 110 | + item.Upload() |
| 111 | + return item |
107 | 112 |
|
108 | 113 | @gdrive_retry
|
109 | 114 | def gdrive_download_file(
|
110 | 115 | self, file_id, to_file, progress_name, no_progress_bar
|
111 | 116 | ):
|
112 |
| - from dvc.progress import Tqdm |
113 |
| - |
114 | 117 | gdrive_file = self.drive.CreateFile({"id": file_id})
|
| 118 | + bar_format = ( |
| 119 | + "Donwloading {desc:{ncols_desc}.{ncols_desc}}... " |
| 120 | + + Tqdm.format_sizeof(int(gdrive_file["fileSize"]), "B", 1024) |
| 121 | + ) |
115 | 122 | with Tqdm(
|
116 |
| - desc=progress_name, |
117 |
| - total=int(gdrive_file["fileSize"]), |
118 |
| - disable=no_progress_bar, |
| 123 | + bar_format=bar_format, desc=progress_name, disable=no_progress_bar |
119 | 124 | ):
|
120 | 125 | gdrive_file.GetContentFile(to_file)
|
121 | 126 |
|
|
0 commit comments