@@ -79,22 +79,21 @@ class SlicingDice(SlicingDiceAPI):
7979 }
8080 print sd.insert(inserting_json)
8181 """
82+
8283 def __init__ (
83- self , write_key = None , read_key = None , master_key = None ,
84- custom_key = None , use_ssl = True , timeout = 60 , uses_test_endpoint = False ):
84+ self , write_key = None , read_key = None , master_key = None ,
85+ custom_key = None , use_ssl = True , timeout = 60 ):
8586 """Instantiate a new SlicingDice object.
8687
8788 Keyword arguments:
8889 key(string or SlicerKey obj) -- Key to access API
8990 use_ssl(bool) -- Define if the request uses verification SSL for
9091 HTTPS requests. Defaults False.(Optional)
9192 timeout(int) -- Define timeout to request,
92- defaults 30 secs(default 30).
93- test(bool) -- if true will use tests end-point (default False)
93+ defaults 60 secs(default 30).
9494 """
9595 super (SlicingDice , self ).__init__ (
9696 master_key , write_key , read_key , custom_key , use_ssl , timeout )
97- self .uses_test_endpoint = uses_test_endpoint
9897
9998 def _count_query_wrapper (self , url , query ):
10099 """Validate count query and make request.
@@ -126,12 +125,6 @@ def _data_extraction_wrapper(self, url, query):
126125 req_type = "post" ,
127126 key_level = 0 )
128127
129- def _wrapper_test (self ):
130- base_url = SlicingDice .BASE_URL
131- if self .uses_test_endpoint :
132- base_url += "/test"
133- return base_url
134-
135128 def _saved_query_wrapper (self , url , query , update = False ):
136129 """Validate saved query and make request.
137130
@@ -151,7 +144,8 @@ def _saved_query_wrapper(self, url, query, update=False):
151144 key_level = 2 )
152145
153146 def get_database (self ):
154- """Get a database associated with this client (related to keys passed on construction)"""
147+ """Get a database associated with this client (related to keys passed
148+ on construction)"""
155149 url = SlicingDice .BASE_URL + URLResources .DATABASE
156150 return self ._make_request (
157151 url = url ,
@@ -166,10 +160,9 @@ def create_column(self, data):
166160 data -- A dictionary or list on the Slicing Dice column
167161 format.
168162 """
169- base_url = self ._wrapper_test ()
170163 sd_data = validators .ColumnValidator (data )
171164 if sd_data .validator ():
172- url = base_url + URLResources .COLUMN
165+ url = SlicingDice . BASE_URL + URLResources .COLUMN
173166 return self ._make_request (
174167 url = url ,
175168 req_type = "post" ,
@@ -178,8 +171,7 @@ def create_column(self, data):
178171
179172 def get_columns (self ):
180173 """Get a list of columns"""
181- base_url = self ._wrapper_test ()
182- url = base_url + URLResources .COLUMN
174+ url = SlicingDice .BASE_URL + URLResources .COLUMN
183175 return self ._make_request (
184176 url = url ,
185177 req_type = "get" ,
@@ -192,10 +184,9 @@ def insert(self, data):
192184 data -- A dictionary in the Slicing Dice data format
193185 format.
194186 """
195- base_url = self ._wrapper_test ()
196187 sd_data = validators .InsertValidator (data )
197188 if sd_data .validator ():
198- url = base_url + URLResources .INSERT
189+ url = SlicingDice . BASE_URL + URLResources .INSERT
199190 return self ._make_request (
200191 url = url ,
201192 json_data = ujson .dumps (data ),
@@ -208,22 +199,20 @@ def count_entity(self, query):
208199 Keyword arguments:
209200 query -- A dictionary in the Slicing Dice query
210201 """
211- base_url = self ._wrapper_test ()
212- url = base_url + URLResources .QUERY_COUNT_ENTITY
202+ url = SlicingDice .BASE_URL + URLResources .QUERY_COUNT_ENTITY
213203 return self ._count_query_wrapper (url , query )
214204
215- def count_entity_total (self , tables = [] ):
205+ def count_entity_total (self , tables = None ):
216206 """Make a count entity total query
217207
218208 Keyword arguments:
219209 tables -- A dictionary containing the tables in which
220210 the total query will be performed
221211 """
222- query = {
223- 'tables' : tables
224- }
225- base_url = self ._wrapper_test ()
226- url = base_url + URLResources .QUERY_COUNT_ENTITY_TOTAL
212+ query = {}
213+ if tables is not None :
214+ query ['tables' ] = tables
215+ url = SlicingDice .BASE_URL + URLResources .QUERY_COUNT_ENTITY_TOTAL
227216 return self ._make_request (
228217 url = url ,
229218 req_type = "post" ,
@@ -236,8 +225,7 @@ def count_event(self, query):
236225 Keyword arguments:
237226 data -- A dictionary query
238227 """
239- base_url = self ._wrapper_test ()
240- url = base_url + URLResources .QUERY_COUNT_EVENT
228+ url = SlicingDice .BASE_URL + URLResources .QUERY_COUNT_EVENT
241229 return self ._count_query_wrapper (url , query )
242230
243231 def aggregation (self , query ):
@@ -246,8 +234,7 @@ def aggregation(self, query):
246234 Keyword arguments:
247235 query -- An aggregation query
248236 """
249- base_url = self ._wrapper_test ()
250- url = base_url + URLResources .QUERY_AGGREGATION
237+ url = SlicingDice .BASE_URL + URLResources .QUERY_AGGREGATION
251238 if "query" not in query :
252239 raise exceptions .InvalidQueryException (
253240 "The aggregation query must have up the key 'query'." )
@@ -267,8 +254,7 @@ def top_values(self, query):
267254 Keyword arguments:
268255 query -- A dictionary query
269256 """
270- base_url = self ._wrapper_test ()
271- url = base_url + URLResources .QUERY_TOP_VALUES
257+ url = SlicingDice .BASE_URL + URLResources .QUERY_TOP_VALUES
272258 sd_query_top_values = validators .QueryValidator (query )
273259 if sd_query_top_values .validator ():
274260 return self ._make_request (
@@ -284,8 +270,7 @@ def exists_entity(self, ids, table=None):
284270 ids -- A list with entities to check if exists
285271 table -- In which table entities check be checked
286272 """
287- base_url = self ._wrapper_test ()
288- url = base_url + URLResources .QUERY_EXISTS_ENTITY
273+ url = SlicingDice .BASE_URL + URLResources .QUERY_EXISTS_ENTITY
289274 if len (ids ) > 100 :
290275 raise exceptions .MaxLimitException (
291276 "The query exists entity must have up to 100 ids." )
@@ -306,8 +291,7 @@ def get_saved_query(self, query_name):
306291 Keyword arguments:
307292 query_name(string) -- The name of the saved query
308293 """
309- base_url = self ._wrapper_test ()
310- url = base_url + URLResources .QUERY_SAVED + query_name
294+ url = SlicingDice .BASE_URL + URLResources .QUERY_SAVED + query_name
311295 return self ._make_request (
312296 url = url ,
313297 req_type = "get" ,
@@ -319,8 +303,7 @@ def get_saved_queries(self):
319303 Keyword arguments:
320304 query_name(string) -- The name of the saved query
321305 """
322- base_url = self ._wrapper_test ()
323- url = base_url + URLResources .QUERY_SAVED
306+ url = SlicingDice .BASE_URL + URLResources .QUERY_SAVED
324307 return self ._make_request (
325308 url = url ,
326309 req_type = "get" ,
@@ -332,8 +315,7 @@ def delete_saved_query(self, query_name):
332315 Keyword arguments:
333316 query_name(string) -- The name of the saved query
334317 """
335- base_url = self ._wrapper_test ()
336- url = base_url + URLResources .QUERY_SAVED + query_name
318+ url = SlicingDice .BASE_URL + URLResources .QUERY_SAVED + query_name
337319 return self ._make_request (
338320 url = url ,
339321 req_type = "delete" ,
@@ -346,8 +328,7 @@ def create_saved_query(self, query):
346328 Keyword arguments:
347329 query -- A dictionary query
348330 """
349- base_url = self ._wrapper_test ()
350- url = base_url + URLResources .QUERY_SAVED
331+ url = SlicingDice .BASE_URL + URLResources .QUERY_SAVED
351332 return self ._saved_query_wrapper (url , query )
352333
353334 def update_saved_query (self , name , query ):
@@ -357,8 +338,7 @@ def update_saved_query(self, name, query):
357338 name -- The name of the saved query to update
358339 query -- A dictionary query
359340 """
360- base_url = self ._wrapper_test ()
361- url = base_url + URLResources .QUERY_SAVED + name
341+ url = SlicingDice .BASE_URL + URLResources .QUERY_SAVED + name
362342 return self ._saved_query_wrapper (url , query , True )
363343
364344 def result (self , query ):
@@ -367,8 +347,7 @@ def result(self, query):
367347 Keyword arguments:
368348 query -- A dictionary query
369349 """
370- base_url = self ._wrapper_test ()
371- url = base_url + URLResources .QUERY_DATA_EXTRACTION_RESULT
350+ url = SlicingDice .BASE_URL + URLResources .QUERY_DATA_EXTRACTION_RESULT
372351 return self ._data_extraction_wrapper (url , query )
373352
374353 def score (self , query ):
@@ -377,6 +356,19 @@ def score(self, query):
377356 Keyword arguments:
378357 query -- A dictionary query
379358 """
380- base_url = self ._wrapper_test ()
381- url = base_url + URLResources .QUERY_DATA_EXTRACTION_SCORE
359+ url = SlicingDice .BASE_URL + URLResources .QUERY_DATA_EXTRACTION_SCORE
382360 return self ._data_extraction_wrapper (url , query )
361+
362+ def sql (self , query ):
363+ """ Make a sql query to SlicingDice
364+
365+ :param query: the query written in SQL format
366+ :return: The response from the SlicingDice
367+ """
368+ url = SlicingDice .BASE_URL + URLResources .QUERY_SQL
369+ return self ._make_request (
370+ url = url ,
371+ string_data = query ,
372+ req_type = "post" ,
373+ key_level = 0 ,
374+ content_type = 'application/sql' )
0 commit comments