diff --git a/quanttp/__main__.py b/quanttp/__main__.py index a9b41e1..7e4778a 100644 --- a/quanttp/__main__.py +++ b/quanttp/__main__.py @@ -37,16 +37,19 @@ qng_wrapper = QngWrapper() @app.route('/api/randint32') def api_randint32(): + qng_wrapper.clear() return Response(str(qng_wrapper.randint32()), content_type='text/plain') @app.route('/api/randuniform') def api_randuniform(): + qng_wrapper.clear() return Response(str(qng_wrapper.randuniform()), content_type='text/plain') @app.route('/api/randnormal') def api_randnormal(): + qng_wrapper.clear() return Response(str(qng_wrapper.randnormal()), content_type='text/plain') @@ -54,6 +57,7 @@ def api_randnormal(): def api_randbytes(): try: length = int(request.args.get('length')) + qng_wrapper.clear() return Response(qng_wrapper.randbytes(length), content_type='application/octet-stream') except ValueError as e: return Response(str(e), status=400, content_type='text/plain') @@ -70,31 +74,39 @@ def handle_ws_message(message, websocket, subscribed): try: split_message = message.strip().lower().split() if split_message[0] == 'randint32': + qng_wrapper.clear() websocket.send(str(qng_wrapper.randint32())) elif split_message[0] == 'randuniform': + qng_wrapper.clear() websocket.send(str(qng_wrapper.randuniform())) elif split_message[0] == 'randnormal': + qng_wrapper.clear() websocket.send(str(qng_wrapper.randnormal())) elif split_message[0] == 'randbytes': length = int(split_message[1]) + qng_wrapper.clear() websocket.send(qng_wrapper.randbytes(length)) elif split_message[0] == 'subscribeint32': if not subscribed[0]: subscribed[0] = True + qng_wrapper.clear() while subscribed[0] and not websocket.closed: websocket.send(str(qng_wrapper.randint32())) elif split_message[0] == 'subscribeuniform': if not subscribed[0]: subscribed[0] = True + qng_wrapper.clear() while subscribed[0] and not websocket.closed: websocket.send(str(qng_wrapper.randuniform())) elif split_message[0] == 'subscribenormal': if not subscribed[0]: subscribed[0] = True + qng_wrapper.clear() while subscribed[0] and not websocket.closed: websocket.send(str(qng_wrapper.randnormal())) elif split_message[0] == 'subscribebytes': chunk = int(split_message[1]) + qng_wrapper.clear() if not subscribed[0]: subscribed[0] = True while subscribed[0] and not websocket.closed: diff --git a/quanttp/data/qng_wrapper.py b/quanttp/data/qng_wrapper.py index c6eb6f9..efb0799 100644 --- a/quanttp/data/qng_wrapper.py +++ b/quanttp/data/qng_wrapper.py @@ -28,7 +28,6 @@ class QngWrapper: def randint32(self): try: - self.qng.Clear() return self.qng.RandInt32 except: self.qng.Reset() @@ -36,7 +35,6 @@ class QngWrapper: def randuniform(self): try: - self.qng.Clear() return self.qng.RandUniform except: self.qng.Reset() @@ -44,7 +42,6 @@ class QngWrapper: def randnormal(self): try: - self.qng.Clear() return self.qng.RandNormal except: self.qng.Reset() @@ -52,8 +49,10 @@ class QngWrapper: def randbytes(self, length): try: - self.qng.Clear() return self.qng.RandBytes(length) except: self.qng.Reset() return self.qng.RandBytes(length) + + def clear(self): + self.qng.Clear() diff --git a/quanttp/data/qng_wrapper_mock.py b/quanttp/data/qng_wrapper_mock.py index 8c31f4f..4bcf8b5 100644 --- a/quanttp/data/qng_wrapper_mock.py +++ b/quanttp/data/qng_wrapper_mock.py @@ -35,3 +35,6 @@ class QngWrapperMock: def randbytes(self, length): return secrets.token_bytes(nbytes=length) + + def clear(self): + pass \ No newline at end of file