@@ -47,18 +47,7 @@ def update(
47
47
if datasources is not None :
48
48
ds_names = []
49
49
for ds in datasources :
50
- if isinstance (ds , Datasource ):
51
- ds = ds .name
52
- elif isinstance (ds , DatabaseConfig ):
53
- # if not exists - create
54
- try :
55
- self .client .datasources .get (ds .name )
56
- except exc .ObjectNotFound :
57
- self .client .datasources .create (ds )
58
-
59
- ds = ds .name
60
- elif not isinstance (ds , str ):
61
- raise ValueError (f'Unknown type of datasource: { ds } ' )
50
+ ds = self .client .minds ._check_datasource (ds )
62
51
ds_names .append (ds )
63
52
data ['datasources' ] = ds_names
64
53
@@ -79,9 +68,14 @@ def update(
79
68
self .name = name
80
69
81
70
def add_datasource (self , datasource : Datasource ):
71
+
72
+ ds_name = self .client .minds ._check_datasource (datasource )
73
+
82
74
self .api .post (
83
75
f'/projects/{ self .project } /minds/{ self .name } /datasources' ,
84
- data = datasource .model_dump ()
76
+ data = {
77
+ 'name' : ds_name ,
78
+ }
85
79
)
86
80
updated = self .client .minds .get (self .name )
87
81
@@ -135,6 +129,21 @@ def get(self, name: str) -> Mind:
135
129
item = self .api .get (f'/projects/{ self .project } /minds/{ name } ' ).json ()
136
130
return Mind (self .client , ** item )
137
131
132
+ def _check_datasource (self , ds ) -> str :
133
+ if isinstance (ds , Datasource ):
134
+ ds = ds .name
135
+ elif isinstance (ds , DatabaseConfig ):
136
+ # if not exists - create
137
+ try :
138
+ self .client .datasources .get (ds .name )
139
+ except exc .ObjectNotFound :
140
+ self .client .datasources .create (ds )
141
+
142
+ ds = ds .name
143
+ elif not isinstance (ds , str ):
144
+ raise ValueError (f'Unknown type of datasource: { ds } ' )
145
+ return ds
146
+
138
147
def create (
139
148
self , name ,
140
149
model_name = None ,
@@ -154,18 +163,8 @@ def create(
154
163
ds_names = []
155
164
if datasources :
156
165
for ds in datasources :
157
- if isinstance (ds , Datasource ):
158
- ds = ds .name
159
- elif isinstance (ds , DatabaseConfig ):
160
- # if not exists - create
161
- try :
162
- self .client .datasources .get (ds .name )
163
- except exc .ObjectNotFound :
164
- self .client .datasources .create (ds )
165
-
166
- ds = ds .name
167
- elif not isinstance (ds , str ):
168
- raise ValueError (f'Unknown type of datasource: { ds } ' )
166
+ ds = self ._check_datasource (ds )
167
+
169
168
ds_names .append (ds )
170
169
171
170
if parameters is None :
0 commit comments