@@ -47,18 +47,7 @@ def update(
4747 if datasources is not None :
4848 ds_names = []
4949 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 )
6251 ds_names .append (ds )
6352 data ['datasources' ] = ds_names
6453
@@ -79,9 +68,14 @@ def update(
7968 self .name = name
8069
8170 def add_datasource (self , datasource : Datasource ):
71+
72+ ds_name = self .client .minds ._check_datasource (datasource )
73+
8274 self .api .post (
8375 f'/projects/{ self .project } /minds/{ self .name } /datasources' ,
84- data = datasource .model_dump ()
76+ data = {
77+ 'name' : ds_name ,
78+ }
8579 )
8680 updated = self .client .minds .get (self .name )
8781
@@ -135,6 +129,21 @@ def get(self, name: str) -> Mind:
135129 item = self .api .get (f'/projects/{ self .project } /minds/{ name } ' ).json ()
136130 return Mind (self .client , ** item )
137131
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+
138147 def create (
139148 self , name ,
140149 model_name = None ,
@@ -154,18 +163,8 @@ def create(
154163 ds_names = []
155164 if datasources :
156165 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+
169168 ds_names .append (ds )
170169
171170 if parameters is None :
0 commit comments