python-engineio 4.15.0__tar.gz → 4.15.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {python_engineio-4.15.0/src/python_engineio.egg-info → python_engineio-4.15.1}/PKG-INFO +1 -1
- {python_engineio-4.15.0 → python_engineio-4.15.1}/pyproject.toml +1 -1
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/async_server.py +14 -2
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/async_socket.py +2 -2
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/server.py +14 -2
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/socket.py +2 -2
- {python_engineio-4.15.0 → python_engineio-4.15.1/src/python_engineio.egg-info}/PKG-INFO +1 -1
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/python_engineio.egg-info/SOURCES.txt +1 -1
- python_engineio-4.15.1/tests/async/.test_server.py.swp +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/async/test_server.py +21 -1
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/common/test_server.py +20 -0
- python_engineio-4.15.0/tests/async/.test_client.py.swp +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/LICENSE +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/MANIFEST.in +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/README.md +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/docs/_static/README.md +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/setup.cfg +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/__init__.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/async_client.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/async_drivers/__init__.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/async_drivers/_websocket_wsgi.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/async_drivers/aiohttp.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/async_drivers/asgi.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/async_drivers/eventlet.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/async_drivers/gevent.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/async_drivers/gevent_uwsgi.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/async_drivers/sanic.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/async_drivers/threading.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/async_drivers/tornado.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/base_client.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/base_server.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/base_socket.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/client.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/exceptions.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/json.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/middleware.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/packet.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/payload.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/static_files.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/python_engineio.egg-info/dependency_links.txt +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/python_engineio.egg-info/not-zip-safe +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/python_engineio.egg-info/requires.txt +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/src/python_engineio.egg-info/top_level.txt +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/async/__init__.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/async/index.html +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/async/test_aiohttp.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/async/test_asgi.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/async/test_client.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/async/test_sanic.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/async/test_socket.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/async/test_tornado.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/common/__init__.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/common/index.html +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/common/test_client.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/common/test_middleware.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/common/test_packet.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/common/test_payload.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/common/test_socket.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/performance/README.md +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/performance/binary_b64_packet.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/performance/binary_packet.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/performance/json_packet.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/performance/payload.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/performance/run.sh +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/performance/server_receive.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tests/performance/text_packet.py +0 -0
- {python_engineio-4.15.0 → python_engineio-4.15.1}/tox.ini +0 -0
|
@@ -298,7 +298,13 @@ class AsyncServer(base_server.BaseServer):
|
|
|
298
298
|
self._log_error_once(f'{e} {sid}', 'bad-sid')
|
|
299
299
|
r = self._bad_request(f'{e} {sid}')
|
|
300
300
|
else:
|
|
301
|
-
if socket.
|
|
301
|
+
if not socket.connected:
|
|
302
|
+
# cannot accept requests before connecting
|
|
303
|
+
self._log_error_once(
|
|
304
|
+
f'Socket for session {sid} is not connected',
|
|
305
|
+
'not-connected')
|
|
306
|
+
r = self._bad_request('Not connected')
|
|
307
|
+
elif socket.upgraded:
|
|
302
308
|
# cannot accept HTTP requests once upgraded
|
|
303
309
|
self._log_error_once(
|
|
304
310
|
f'Unexpected HTTP request for session {sid}',
|
|
@@ -332,7 +338,13 @@ class AsyncServer(base_server.BaseServer):
|
|
|
332
338
|
r = self._bad_request(f'Invalid session {sid}')
|
|
333
339
|
else:
|
|
334
340
|
socket = self._get_socket(sid)
|
|
335
|
-
if not socket.
|
|
341
|
+
if not socket.connected:
|
|
342
|
+
# cannot accept requests before connecting
|
|
343
|
+
self._log_error_once(
|
|
344
|
+
f'Socket for session {sid} is not connected',
|
|
345
|
+
'not-connected')
|
|
346
|
+
r = self._bad_request('Not connected')
|
|
347
|
+
elif not socket.upgraded:
|
|
336
348
|
try:
|
|
337
349
|
await socket.handle_post_request(environ)
|
|
338
350
|
r = self._ok(jsonp_index=jsonp_index)
|
|
@@ -56,8 +56,8 @@ class AsyncSocket(base_socket.BaseSocket):
|
|
|
56
56
|
"""Make sure the client is still sending pings."""
|
|
57
57
|
if self.closed:
|
|
58
58
|
raise exceptions.SocketIsClosedError()
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
last_ping = self.last_ping
|
|
60
|
+
if last_ping and time.time() - last_ping > self.server.ping_timeout:
|
|
61
61
|
self.server.logger.info('%s: Client is gone, closing socket',
|
|
62
62
|
self.sid)
|
|
63
63
|
# Passing abort=False here will cause close() to write a
|
|
@@ -276,7 +276,13 @@ class Server(base_server.BaseServer):
|
|
|
276
276
|
self._log_error_once(f'{e} {sid}', 'bad-sid')
|
|
277
277
|
r = self._bad_request(f'{e} {sid}')
|
|
278
278
|
else:
|
|
279
|
-
if socket.
|
|
279
|
+
if not socket.connected:
|
|
280
|
+
# cannot accept requests before connecting
|
|
281
|
+
self._log_error_once(
|
|
282
|
+
f'Socket for session {sid} is not connected',
|
|
283
|
+
'not-connected')
|
|
284
|
+
r = self._bad_request('Not connected')
|
|
285
|
+
elif socket.upgraded:
|
|
280
286
|
# cannot accept HTTP requests once upgraded
|
|
281
287
|
self._log_error_once(
|
|
282
288
|
f'Unexpected HTTP request for session {sid}',
|
|
@@ -310,7 +316,13 @@ class Server(base_server.BaseServer):
|
|
|
310
316
|
r = self._bad_request(f'Invalid session {sid}')
|
|
311
317
|
else:
|
|
312
318
|
socket = self._get_socket(sid)
|
|
313
|
-
if not socket.
|
|
319
|
+
if not socket.connected:
|
|
320
|
+
# cannot accept requests before connecting
|
|
321
|
+
self._log_error_once(
|
|
322
|
+
f'Socket for session {sid} is not connected',
|
|
323
|
+
'not-connected')
|
|
324
|
+
r = self._bad_request('Not connected')
|
|
325
|
+
elif not socket.upgraded:
|
|
314
326
|
try:
|
|
315
327
|
socket.handle_post_request(environ)
|
|
316
328
|
r = self._ok(jsonp_index=jsonp_index)
|
|
@@ -57,8 +57,8 @@ class Socket(base_socket.BaseSocket):
|
|
|
57
57
|
"""Make sure the client is still responding to pings."""
|
|
58
58
|
if self.closed:
|
|
59
59
|
raise exceptions.SocketIsClosedError()
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
last_ping = self.last_ping
|
|
61
|
+
if last_ping and time.time() - last_ping > self.server.ping_timeout:
|
|
62
62
|
self.server.logger.info('%s: Client is gone, closing socket',
|
|
63
63
|
self.sid)
|
|
64
64
|
# Passing abort=False here will cause close() to write a
|
|
@@ -36,7 +36,7 @@ src/python_engineio.egg-info/dependency_links.txt
|
|
|
36
36
|
src/python_engineio.egg-info/not-zip-safe
|
|
37
37
|
src/python_engineio.egg-info/requires.txt
|
|
38
38
|
src/python_engineio.egg-info/top_level.txt
|
|
39
|
-
tests/async/.
|
|
39
|
+
tests/async/.test_server.py.swp
|
|
40
40
|
tests/async/__init__.py
|
|
41
41
|
tests/async/index.html
|
|
42
42
|
tests/async/test_aiohttp.py
|
|
Binary file
|
|
@@ -688,6 +688,7 @@ class TestAsyncServer:
|
|
|
688
688
|
import_module.side_effect = [a]
|
|
689
689
|
s = async_server.AsyncServer()
|
|
690
690
|
s.sockets['foo'] = mock_socket = self._get_mock_socket()
|
|
691
|
+
mock_socket.connected = True
|
|
691
692
|
mock_socket.upgraded = False
|
|
692
693
|
await s.handle_request('request')
|
|
693
694
|
assert a._async['make_response'].call_args[0][0] == '400 BAD REQUEST'
|
|
@@ -701,6 +702,7 @@ class TestAsyncServer:
|
|
|
701
702
|
import_module.side_effect = [a]
|
|
702
703
|
s = async_server.AsyncServer()
|
|
703
704
|
s.sockets['foo'] = mock_socket = self._get_mock_socket()
|
|
705
|
+
mock_socket.connected = True
|
|
704
706
|
mock_socket.upgraded = True
|
|
705
707
|
await s.handle_request('request')
|
|
706
708
|
assert a._async['make_response'].call_args[0][0] == '400 BAD REQUEST'
|
|
@@ -724,6 +726,7 @@ class TestAsyncServer:
|
|
|
724
726
|
import_module.side_effect = [a]
|
|
725
727
|
s = async_server.AsyncServer()
|
|
726
728
|
s.sockets['foo'] = self._get_mock_socket()
|
|
729
|
+
s.sockets['foo'].connected = True
|
|
727
730
|
s.sockets['foo'].upgraded = True
|
|
728
731
|
await s.handle_request('request')
|
|
729
732
|
assert a._async['make_response'].call_args[0][0] == '400 BAD REQUEST'
|
|
@@ -757,6 +760,7 @@ class TestAsyncServer:
|
|
|
757
760
|
import_module.side_effect = [a]
|
|
758
761
|
s = async_server.AsyncServer()
|
|
759
762
|
s.sockets['foo'] = mock_socket = self._get_mock_socket()
|
|
763
|
+
mock_socket.connected = True
|
|
760
764
|
mock_socket.handle_get_request.return_value = [
|
|
761
765
|
packet.Packet(packet.MESSAGE, data='hello')
|
|
762
766
|
]
|
|
@@ -777,6 +781,7 @@ class TestAsyncServer:
|
|
|
777
781
|
import_module.side_effect = [a]
|
|
778
782
|
s = async_server.AsyncServer()
|
|
779
783
|
s.sockets['foo'] = mock_socket = self._get_mock_socket()
|
|
784
|
+
mock_socket.connected = True
|
|
780
785
|
mock_socket.handle_get_request.return_value = 'resp'
|
|
781
786
|
r = await s.handle_request('request')
|
|
782
787
|
assert r == 'resp'
|
|
@@ -789,6 +794,7 @@ class TestAsyncServer:
|
|
|
789
794
|
import_module.side_effect = [a]
|
|
790
795
|
s = async_server.AsyncServer()
|
|
791
796
|
s.sockets['foo'] = mock_socket = self._get_mock_socket()
|
|
797
|
+
mock_socket.connected = True
|
|
792
798
|
|
|
793
799
|
async def mock_get_request(*args, **kwargs):
|
|
794
800
|
mock_socket.closed = True
|
|
@@ -807,6 +813,7 @@ class TestAsyncServer:
|
|
|
807
813
|
import_module.side_effect = [a]
|
|
808
814
|
s = async_server.AsyncServer()
|
|
809
815
|
s.sockets['foo'] = mock_socket = self._get_mock_socket()
|
|
816
|
+
mock_socket.connected = True
|
|
810
817
|
|
|
811
818
|
async def mock_get_request(*args, **kwargs):
|
|
812
819
|
raise exceptions.QueueEmpty()
|
|
@@ -823,10 +830,22 @@ class TestAsyncServer:
|
|
|
823
830
|
)
|
|
824
831
|
import_module.side_effect = [a]
|
|
825
832
|
s = async_server.AsyncServer()
|
|
826
|
-
s.sockets['foo'] = self._get_mock_socket()
|
|
833
|
+
s.sockets['foo'] = mock_socket = self._get_mock_socket()
|
|
834
|
+
mock_socket.connected = True
|
|
827
835
|
await s.handle_request('request')
|
|
828
836
|
assert a._async['make_response'].call_args[0][0] == '200 OK'
|
|
829
837
|
|
|
838
|
+
@mock.patch('importlib.import_module')
|
|
839
|
+
async def test_post_request_before_connecting(self, import_module):
|
|
840
|
+
a = self.get_async_mock(
|
|
841
|
+
{'REQUEST_METHOD': 'POST', 'QUERY_STRING': 'sid=foo'}
|
|
842
|
+
)
|
|
843
|
+
import_module.side_effect = [a]
|
|
844
|
+
s = async_server.AsyncServer()
|
|
845
|
+
s.sockets['foo'] = self._get_mock_socket()
|
|
846
|
+
await s.handle_request('request')
|
|
847
|
+
assert a._async['make_response'].call_args[0][0] == '400 BAD REQUEST'
|
|
848
|
+
|
|
830
849
|
@mock.patch('importlib.import_module')
|
|
831
850
|
async def test_post_request_error(self, import_module):
|
|
832
851
|
a = self.get_async_mock(
|
|
@@ -835,6 +854,7 @@ class TestAsyncServer:
|
|
|
835
854
|
import_module.side_effect = [a]
|
|
836
855
|
s = async_server.AsyncServer()
|
|
837
856
|
s.sockets['foo'] = mock_socket = self._get_mock_socket()
|
|
857
|
+
mock_socket.connected = True
|
|
838
858
|
|
|
839
859
|
async def mock_post_request(*args, **kwargs):
|
|
840
860
|
raise exceptions.ContentTooLongError()
|
|
@@ -35,6 +35,7 @@ class TestServer:
|
|
|
35
35
|
|
|
36
36
|
def _get_mock_socket(self):
|
|
37
37
|
mock_socket = mock.MagicMock()
|
|
38
|
+
mock_socket.connected = False
|
|
38
39
|
mock_socket.closed = False
|
|
39
40
|
mock_socket.closing = False
|
|
40
41
|
mock_socket.upgraded = False
|
|
@@ -862,6 +863,7 @@ class TestServer:
|
|
|
862
863
|
def test_post_request_after_upgrade(self):
|
|
863
864
|
s = server.Server()
|
|
864
865
|
mock_socket = self._get_mock_socket()
|
|
866
|
+
mock_socket.connected = True
|
|
865
867
|
mock_socket.upgraded = True
|
|
866
868
|
mock_socket.handle_post_request = mock.MagicMock()
|
|
867
869
|
s.sockets['foo'] = mock_socket
|
|
@@ -887,6 +889,7 @@ class TestServer:
|
|
|
887
889
|
def test_get_request(self):
|
|
888
890
|
s = server.Server()
|
|
889
891
|
mock_socket = self._get_mock_socket()
|
|
892
|
+
mock_socket.connected = True
|
|
890
893
|
mock_socket.handle_get_request = mock.MagicMock(
|
|
891
894
|
return_value=[packet.Packet(packet.MESSAGE, data='hello')]
|
|
892
895
|
)
|
|
@@ -903,6 +906,7 @@ class TestServer:
|
|
|
903
906
|
def test_get_request_custom_response(self):
|
|
904
907
|
s = server.Server()
|
|
905
908
|
mock_socket = self._get_mock_socket()
|
|
909
|
+
mock_socket.connected = True
|
|
906
910
|
mock_socket.handle_get_request = mock.MagicMock(side_effect=['resp'])
|
|
907
911
|
s.sockets['foo'] = mock_socket
|
|
908
912
|
environ = {'REQUEST_METHOD': 'GET', 'QUERY_STRING': 'EIO=4&sid=foo'}
|
|
@@ -912,6 +916,7 @@ class TestServer:
|
|
|
912
916
|
def test_get_request_closes_socket(self):
|
|
913
917
|
s = server.Server()
|
|
914
918
|
mock_socket = self._get_mock_socket()
|
|
919
|
+
mock_socket.connected = True
|
|
915
920
|
|
|
916
921
|
def mock_get_request(*args, **kwargs):
|
|
917
922
|
mock_socket.closed = True
|
|
@@ -927,6 +932,7 @@ class TestServer:
|
|
|
927
932
|
def test_get_request_error(self):
|
|
928
933
|
s = server.Server()
|
|
929
934
|
mock_socket = self._get_mock_socket()
|
|
935
|
+
mock_socket.connected = True
|
|
930
936
|
mock_socket.handle_get_request = mock.MagicMock(
|
|
931
937
|
side_effect=[exceptions.QueueEmpty]
|
|
932
938
|
)
|
|
@@ -940,6 +946,7 @@ class TestServer:
|
|
|
940
946
|
def test_get_request_bad_websocket_transport(self):
|
|
941
947
|
s = server.Server()
|
|
942
948
|
mock_socket = self._get_mock_socket()
|
|
949
|
+
mock_socket.connected = True
|
|
943
950
|
mock_socket.upgraded = False
|
|
944
951
|
s.sockets['foo'] = mock_socket
|
|
945
952
|
environ = {'REQUEST_METHOD': 'GET',
|
|
@@ -951,6 +958,7 @@ class TestServer:
|
|
|
951
958
|
def test_get_request_bad_polling_transport(self):
|
|
952
959
|
s = server.Server()
|
|
953
960
|
mock_socket = self._get_mock_socket()
|
|
961
|
+
mock_socket.connected = True
|
|
954
962
|
mock_socket.upgraded = True
|
|
955
963
|
s.sockets['foo'] = mock_socket
|
|
956
964
|
environ = {'REQUEST_METHOD': 'GET',
|
|
@@ -962,6 +970,7 @@ class TestServer:
|
|
|
962
970
|
def test_post_request(self):
|
|
963
971
|
s = server.Server()
|
|
964
972
|
mock_socket = self._get_mock_socket()
|
|
973
|
+
mock_socket.connected = True
|
|
965
974
|
mock_socket.handle_post_request = mock.MagicMock()
|
|
966
975
|
s.sockets['foo'] = mock_socket
|
|
967
976
|
environ = {'REQUEST_METHOD': 'POST', 'QUERY_STRING': 'EIO=4&sid=foo'}
|
|
@@ -969,9 +978,20 @@ class TestServer:
|
|
|
969
978
|
s.handle_request(environ, start_response)
|
|
970
979
|
assert start_response.call_args[0][0] == '200 OK'
|
|
971
980
|
|
|
981
|
+
def test_post_request_before_connecting(self):
|
|
982
|
+
s = server.Server()
|
|
983
|
+
mock_socket = self._get_mock_socket()
|
|
984
|
+
mock_socket.handle_post_request = mock.MagicMock()
|
|
985
|
+
s.sockets['foo'] = mock_socket
|
|
986
|
+
environ = {'REQUEST_METHOD': 'POST', 'QUERY_STRING': 'EIO=4&sid=foo'}
|
|
987
|
+
start_response = mock.MagicMock()
|
|
988
|
+
s.handle_request(environ, start_response)
|
|
989
|
+
assert start_response.call_args[0][0] == '400 BAD REQUEST'
|
|
990
|
+
|
|
972
991
|
def test_post_request_error(self):
|
|
973
992
|
s = server.Server()
|
|
974
993
|
mock_socket = self._get_mock_socket()
|
|
994
|
+
mock_socket.connected = True
|
|
975
995
|
mock_socket.handle_post_request = mock.MagicMock(
|
|
976
996
|
side_effect=[exceptions.EngineIOError]
|
|
977
997
|
)
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/async_drivers/_websocket_wsgi.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_engineio-4.15.0 → python_engineio-4.15.1}/src/engineio/async_drivers/gevent_uwsgi.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_engineio-4.15.0 → python_engineio-4.15.1}/src/python_engineio.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_engineio-4.15.0 → python_engineio-4.15.1}/src/python_engineio.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|