@@ -126,6 +126,7 @@ def __init__(self, host, port,
126
126
self .encoding = encoding
127
127
self .call_16 = call_16
128
128
self .connection_timeout = connection_timeout
129
+ self .authenticated = False
129
130
if connect_now :
130
131
self .connect ()
131
132
@@ -200,9 +201,11 @@ def connect(self):
200
201
:raise: `NetworkError`
201
202
'''
202
203
try :
204
+ self .authenticated = False
203
205
self .connect_basic ()
204
206
self .handshake ()
205
207
self .load_schema ()
208
+ self .authenticated = True
206
209
except Exception as e :
207
210
self .connected = False
208
211
raise NetworkError (e )
@@ -370,14 +373,33 @@ def call(self, func_name, *args):
370
373
371
374
:rtype: `Response` instance
372
375
'''
373
- assert isinstance (func_name , str )
374
376
375
377
# This allows to use a tuple or list as an argument
376
378
if len (args ) == 1 and isinstance (args [0 ], (list , tuple )):
377
379
args = args [0 ]
378
380
381
+ return self .call_ex (func_name , args , True )
382
+
383
+ def call_ex (self , func_name , args = [], reconnect = True ):
384
+ '''
385
+ Execute CALL request. Call stored Lua function.
386
+
387
+ :param func_name: stored Lua function name
388
+ :type func_name: str
389
+ :param args: list of function arguments
390
+ :type args: list or tuple
391
+ :param reconnect: reconnect before call
392
+ :type reconnect: boolean
393
+
394
+ :rtype: `Response` instance
395
+ '''
396
+ assert isinstance (func_name , str )
397
+
379
398
request = RequestCall (self , func_name , args , self .call_16 )
380
- response = self ._send_request (request )
399
+ if reconnect :
400
+ response = self ._send_request (request )
401
+ else :
402
+ response = self ._send_request_wo_reconnect (request )
381
403
return response
382
404
383
405
def eval (self , expr , * args ):
@@ -391,14 +413,33 @@ def eval(self, expr, *args):
391
413
392
414
:rtype: `Response` instance
393
415
'''
394
- assert isinstance (expr , str )
395
416
396
417
# This allows to use a tuple or list as an argument
397
418
if len (args ) == 1 and isinstance (args [0 ], (list , tuple )):
398
419
args = args [0 ]
399
420
421
+ return self .eval_ex (expr , args , True )
422
+
423
+ def eval_ex (self , expr , args = [], reconnect = True ):
424
+ '''
425
+ Execute EVAL request. Eval Lua expression.
426
+
427
+ :param expr: Lua expression
428
+ :type expr: str
429
+ :param args: list of function arguments
430
+ :type args: list or tuple
431
+ :param reconnect: reconnect before call
432
+ :type reconnect: boolean
433
+
434
+ :rtype: `Response` instance
435
+ '''
436
+ assert isinstance (expr , str )
437
+
400
438
request = RequestEval (self , expr , args )
401
- response = self ._send_request (request )
439
+ if reconnect :
440
+ response = self ._send_request (request )
441
+ else :
442
+ response = self ._send_request_wo_reconnect (request )
402
443
return response
403
444
404
445
def replace (self , space_name , values ):
0 commit comments