Skip to content

Commit 2824a9a

Browse files
authored
Merge pull request #90 from mindsdb/bump-mindsdb-sql
Bump `mindsdb_sql` requirement
2 parents af9916d + 0deccd3 commit 2824a9a

File tree

6 files changed

+80
-46
lines changed

6 files changed

+80
-46
lines changed

.github/workflows/mindsdb_python_sdk.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ jobs:
4242
needs: test
4343
if: github.ref != 'refs/heads/stable'
4444
runs-on: ubuntu-latest
45+
permissions:
46+
pull-requests: write
4547
steps:
4648
- uses: actions/checkout@v3
4749
- name: Set up Python 3.8

mindsdb_sdk/__about__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
__title__ = 'mindsdb_sdk'
22
__package_name__ = 'mindsdb_sdk'
3-
__version__ = '2.0.0'
3+
__version__ = '2.1.0'
44
__description__ = "MindsDB Python SDK, provides an SDK to use a remote mindsdb instance"
55
__email__ = "jorge@mindsdb.com"
66
__author__ = 'MindsDB Inc'

mindsdb_sdk/server.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@ class Server(Project):
2323
2424
"""
2525

26-
def a(self):
27-
...
28-
2926
def __init__(self, api):
3027
# server is also mindsdb project
3128
super().__init__(api, 'mindsdb')

mindsdb_sdk/utils/objects_collection.py

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -19,39 +19,39 @@ def __getattr__(self, name):
1919
return self.get(name)
2020

2121

22-
class MethodCollection(CollectionBase):
23-
24-
def __init__(self, name, methods):
25-
self.name = name
26-
self.methods = methods
27-
28-
def __repr__(self):
29-
return f'{self.__class__.__name__}({self.name})'
30-
31-
def get(self, *args, **kwargs):
32-
method = self.methods.get('get')
33-
if method is None:
34-
raise NotImplementedError()
35-
36-
return method(*args, **kwargs)
37-
38-
def list(self, *args, **kwargs):
39-
method = self.methods.get('list')
40-
if method is None:
41-
raise NotImplementedError()
42-
43-
return method(*args, **kwargs)
44-
45-
def create(self, *args, **kwargs):
46-
method = self.methods.get('create')
47-
if method is None:
48-
raise NotImplementedError()
49-
50-
return method(*args, **kwargs)
51-
52-
def drop(self, name):
53-
method = self.methods.get('drop')
54-
if method is None:
55-
raise NotImplementedError()
56-
57-
return method(name)
22+
# class MethodCollection(CollectionBase):
23+
#
24+
# def __init__(self, name, methods):
25+
# self.name = name
26+
# self.methods = methods
27+
#
28+
# def __repr__(self):
29+
# return f'{self.__class__.__name__}({self.name})'
30+
#
31+
# def get(self, *args, **kwargs):
32+
# method = self.methods.get('get')
33+
# if method is None:
34+
# raise NotImplementedError()
35+
#
36+
# return method(*args, **kwargs)
37+
#
38+
# def list(self, *args, **kwargs):
39+
# method = self.methods.get('list')
40+
# if method is None:
41+
# raise NotImplementedError()
42+
#
43+
# return method(*args, **kwargs)
44+
#
45+
# def create(self, *args, **kwargs):
46+
# method = self.methods.get('create')
47+
# if method is None:
48+
# raise NotImplementedError()
49+
#
50+
# return method(*args, **kwargs)
51+
#
52+
# def drop(self, name):
53+
# method = self.methods.get('drop')
54+
# if method is None:
55+
# raise NotImplementedError()
56+
#
57+
# return method(name)

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
requests
22
pandas >= 1.3.5
3-
mindsdb-sql >= 0.7.0, < 0.8.0
3+
mindsdb-sql >= 0.7.0, < 0.11.0

tests/test_sdk.py

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -126,16 +126,16 @@ def check_model(self, model, database, mock_post):
126126
f'Finetune {model.project.name}.{model_name} FROM d1 (select a from t1)'
127127
)
128128

129-
model.retrain(query, options={ 'x': 2 })
129+
model.retrain(query, options={'x': 2})
130130
check_sql_call(
131131
mock_post,
132132
f'RETRAIN {model.project.name}.{model_name} FROM {query.database} ({query.sql}) USING x=2'
133133
)
134134

135-
model.retrain('select a from t1', database='d1')
135+
model.retrain('select a from t1', database='d1', engine='openai')
136136
check_sql_call(
137137
mock_post,
138-
f'RETRAIN {model.project.name}.{model_name} FROM d1 (select a from t1)'
138+
f'RETRAIN {model.project.name}.{model_name} FROM d1 (select a from t1) USING engine=\'openai\''
139139
)
140140

141141
# describe
@@ -181,10 +181,15 @@ class Test(BaseFlow):
181181
@patch('requests.Session.put')
182182
@patch('requests.Session.post')
183183
def test_flow(self, mock_post, mock_put):
184+
# check local
185+
server = mindsdb_sdk.connect()
186+
str(server)
184187

188+
assert server.api.url == 'http://127.0.0.1:47334'
189+
190+
# check cloud login
185191
server = mindsdb_sdk.connect(login='a@b.com')
186192

187-
# check login
188193
call_args = mock_post.call_args
189194
assert call_args[0][0] == 'https://cloud.mindsdb.com/cloud/login'
190195
assert call_args[1]['json']['email'] == 'a@b.com'
@@ -197,6 +202,7 @@ def test_flow(self, mock_post, mock_put):
197202
check_sql_call(mock_post, "select NAME from information_schema.databases where TYPE='data'")
198203

199204
database = databases[0]
205+
str(database)
200206
assert database.name == 'db1'
201207
self.check_database(database)
202208

@@ -364,6 +370,7 @@ def check_project_models(self, project, database, mock_post):
364370
f'CREATE PREDICTOR m2 FROM example_db (select * from t1) PREDICT price ORDER BY date GROUP BY a, b WINDOW 10 HORIZON 2 USING module="LightGBM", `engine`="lightwood"'
365371
)
366372
assert model.name == 'm2'
373+
model.wait_complete()
367374
self.check_model(model, database)
368375

369376
# create, using deferred query.
@@ -373,6 +380,7 @@ def check_project_models(self, project, database, mock_post):
373380
predict='price',
374381
query=query,
375382
)
383+
str(query)
376384

377385
check_sql_call(
378386
mock_post,
@@ -599,6 +607,7 @@ def test_flow(self, mock_post, mock_put):
599607
self.check_project(project, database)
600608

601609
project = con.projects.create('proj1')
610+
str(project)
602611
check_sql_call(
603612
mock_post, 'CREATE DATABASE proj1 WITH ENGINE = "mindsdb", PARAMETERS = {}')
604613
self.check_project(project, database)
@@ -755,6 +764,7 @@ def check_project_models(self, project, database, mock_post):
755764

756765
models = project.models.list()
757766
model = models[0] # Model object
767+
str(model)
758768

759769
assert model.name == 'm1'
760770
assert model.get_status() == 'complete'
@@ -784,7 +794,7 @@ def check_project_models(self, project, database, mock_post):
784794
'window': 10,
785795
'horizon': 2
786796
},
787-
module = 'LightGBM', # has to be in options
797+
module='LightGBM', # has to be in options
788798
)
789799
check_sql_call(
790800
mock_post,
@@ -904,6 +914,11 @@ def check_database(self, database, mock_post):
904914
table2 = database.tables.create('t2', query)
905915
check_sql_call(mock_post, f'create table {database.name}.t2 (select * from tbl1)')
906916

917+
# create with replace
918+
database.tables.create('t2', query, replace=True)
919+
check_sql_call(mock_post, f'create or replace table {database.name}.t2 (select * from tbl1)')
920+
921+
907922
assert table2.name == 't2'
908923
self.check_table(table2)
909924

@@ -962,7 +977,9 @@ def check_project_jobs(self, project, mock_post):
962977
assert job.name == 'job1'
963978
assert job.query_str == 'select 1'
964979

980+
dir(project.jobs)
965981
job = project.jobs.job1
982+
str(job)
966983
assert job.name == 'job1'
967984
assert job.query_str == 'select 1'
968985

@@ -972,6 +989,13 @@ def check_project_jobs(self, project, mock_post):
972989
f"select * from jobs where name = 'job1'"
973990
)
974991

992+
job.get_history()
993+
994+
check_sql_call(
995+
mock_post,
996+
f"select * from jobs_history where name = 'job1'"
997+
)
998+
975999
project.jobs.create(
9761000
name='job2',
9771001
query_str='retrain m1',
@@ -986,6 +1010,17 @@ def check_project_jobs(self, project, mock_post):
9861010
call_stack_num=-2
9871011
)
9881012

1013+
project.jobs.create(
1014+
name='job2',
1015+
query_str='retrain m1'
1016+
)
1017+
1018+
check_sql_call(
1019+
mock_post,
1020+
f"CREATE JOB job2 (retrain m1)",
1021+
call_stack_num=-2
1022+
)
1023+
9891024
project.jobs.drop('job2')
9901025

9911026
check_sql_call(

0 commit comments

Comments
 (0)