From 5cf90c372fd1cb2613f7c3c5cb844fa6ae600d02 Mon Sep 17 00:00:00 2001 From: Andika Wasisto Date: Sun, 24 May 2020 07:33:43 +0700 Subject: [PATCH] Auto reset on failure --- README.md | 5 ----- quanttp/__main__.py | 9 -------- quanttp/data/qng_wrapper.py | 35 ++++++++++++++++++++++---------- quanttp/data/qng_wrapper_mock.py | 3 --- 4 files changed, 24 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 31b360d..f1137ef 100644 --- a/README.md +++ b/README.md @@ -30,9 +30,6 @@ Usage Example http://localhost:62456/api/randbytes?length=8 < ���E��s_�b����G� - http://localhost:62456/api/reset - < OK - ### WebSocket API @@ -45,8 +42,6 @@ Usage Example < -1.6120135370 > RANDBYTES 16 < �����9L).�!:���@Nh������d����_q� - > RESET - < OK License ------- diff --git a/quanttp/__main__.py b/quanttp/__main__.py index e081154..000cb36 100644 --- a/quanttp/__main__.py +++ b/quanttp/__main__.py @@ -57,12 +57,6 @@ def api_randbytes(): return Response(str(e), status=400, content_type='text/plain') -@app.route('/api/reset') -def api_reset(): - qng_wrapper.reset() - return Response('OK', content_type='text/plain') - - @sockets.route('/ws') def ws(websocket): while not websocket.closed: @@ -77,9 +71,6 @@ def ws(websocket): websocket.send(str(qng_wrapper.randnormal())) elif split_message[0] == 'randbytes': websocket.send(qng_wrapper.randbytes(int(split_message[1]))) - elif split_message[0] == 'reset': - qng_wrapper.reset() - websocket.send('OK') except ValueError as e: websocket.close(code=1003, message=str(e)) except Exception as e: diff --git a/quanttp/data/qng_wrapper.py b/quanttp/data/qng_wrapper.py index 025083d..c6eb6f9 100644 --- a/quanttp/data/qng_wrapper.py +++ b/quanttp/data/qng_wrapper.py @@ -27,20 +27,33 @@ class QngWrapper: self.qng = win32com.client.Dispatch("QWQNG.QNG") def randint32(self): - self.qng.Clear() - return self.qng.RandInt32 + try: + self.qng.Clear() + return self.qng.RandInt32 + except: + self.qng.Reset() + return self.qng.RandInt32 def randuniform(self): - self.qng.Clear() - return self.qng.RandUniform + try: + self.qng.Clear() + return self.qng.RandUniform + except: + self.qng.Reset() + return self.qng.RandUniform def randnormal(self): - self.qng.Clear() - return self.qng.RandNormal + try: + self.qng.Clear() + return self.qng.RandNormal + except: + self.qng.Reset() + return self.qng.RandNormal def randbytes(self, length): - self.qng.Clear() - return self.qng.RandBytes(length) - - def reset(self): - self.qng.Reset() + try: + self.qng.Clear() + return self.qng.RandBytes(length) + except: + self.qng.Reset() + return self.qng.RandBytes(length) diff --git a/quanttp/data/qng_wrapper_mock.py b/quanttp/data/qng_wrapper_mock.py index 9af9337..8c31f4f 100644 --- a/quanttp/data/qng_wrapper_mock.py +++ b/quanttp/data/qng_wrapper_mock.py @@ -35,6 +35,3 @@ class QngWrapperMock: def randbytes(self, length): return secrets.token_bytes(nbytes=length) - - def reset(self): - pass