5
5
import inspect
6
6
import dataclasses
7
7
import pathlib
8
+ import threading
8
9
from typing import Any , cast
9
10
from collections .abc import Sequence
10
11
import httplib2
@@ -64,6 +65,7 @@ def patch_colab_gce_credentials():
64
65
class FileServiceClient (glm .FileServiceClient ):
65
66
def __init__ (self , * args , ** kwargs ):
66
67
self ._discovery_api = None
68
+ self ._local = threading .local ()
67
69
super ().__init__ (* args , ** kwargs )
68
70
69
71
def _setup_discovery_api (self , metadata : dict | Sequence [tuple [str , str ]] = ()):
@@ -83,7 +85,7 @@ def _setup_discovery_api(self, metadata: dict | Sequence[tuple[str, str]] = ()):
83
85
request .http .close ()
84
86
85
87
discovery_doc = content .decode ("utf-8" )
86
- self ._discovery_api = googleapiclient .discovery .build_from_document (
88
+ self ._local . discovery_api = googleapiclient .discovery .build_from_document (
87
89
discovery_doc , developerKey = api_key
88
90
)
89
91
@@ -115,7 +117,7 @@ def create_file(
115
117
filename = path , mimetype = mime_type , resumable = resumable
116
118
)
117
119
118
- request = self ._discovery_api .media ().upload (body = {"file" : file }, media_body = media )
120
+ request = self ._local . discovery_api .media ().upload (body = {"file" : file }, media_body = media )
119
121
for key , value in metadata :
120
122
request .headers [key ] = value
121
123
result = request .execute ()
0 commit comments