golden hour
/opt/alt/python37/lib64/python3.7/site-packages/aiohttp
⬆️ Go Up
Upload
File/Folder
Size
Actions
.hash
-
Del
OK
__init__.py
6.71 KB
Del
OK
__pycache__
-
Del
OK
_cparser.pxd
4.88 KB
Del
OK
_find_header.c
183.17 KB
Del
OK
_find_header.h
170 B
Del
OK
_find_header.pxd
68 B
Del
OK
_headers.pxi
1.96 KB
Del
OK
_helpers.c
207.99 KB
Del
OK
_helpers.cpython-37m-x86_64-linux-gnu.so
207.44 KB
Del
OK
_helpers.pyi
202 B
Del
OK
_helpers.pyx
1.02 KB
Del
OK
_http_parser.c
955.26 KB
Del
OK
_http_parser.cpython-37m-x86_64-linux-gnu.so
1.56 MB
Del
OK
_http_parser.pyx
25.95 KB
Del
OK
_http_writer.c
216.08 KB
Del
OK
_http_writer.cpython-37m-x86_64-linux-gnu.so
196.02 KB
Del
OK
_http_writer.pyx
4.47 KB
Del
OK
_websocket.c
135.18 KB
Del
OK
_websocket.cpython-37m-x86_64-linux-gnu.so
95.97 KB
Del
OK
_websocket.pyx
1.52 KB
Del
OK
abc.py
5.38 KB
Del
OK
base_protocol.py
2.64 KB
Del
OK
client.py
43.87 KB
Del
OK
client_exceptions.py
9.06 KB
Del
OK
client_proto.py
8 KB
Del
OK
client_reqrep.py
36.02 KB
Del
OK
client_ws.py
10.29 KB
Del
OK
connector.py
49.66 KB
Del
OK
cookiejar.py
13.25 KB
Del
OK
formdata.py
5.98 KB
Del
OK
hdrs.py
4.61 KB
Del
OK
helpers.py
25.63 KB
Del
OK
http.py
1.78 KB
Del
OK
http_exceptions.py
2.53 KB
Del
OK
http_parser.py
31.83 KB
Del
OK
http_websocket.py
24.76 KB
Del
OK
http_writer.py
5.84 KB
Del
OK
locks.py
1.13 KB
Del
OK
log.py
325 B
Del
OK
multipart.py
31.68 KB
Del
OK
payload.py
13.38 KB
Del
OK
payload_streamer.py
2.06 KB
Del
OK
py.typed
7 B
Del
OK
pytest_plugin.py
11.5 KB
Del
OK
resolver.py
4.97 KB
Del
OK
streams.py
20.35 KB
Del
OK
tcp_helpers.py
962 B
Del
OK
test_utils.py
20.72 KB
Del
OK
tracing.py
14.95 KB
Del
OK
typedefs.py
1.72 KB
Del
OK
web.py
17.51 KB
Del
OK
web_app.py
16.86 KB
Del
OK
web_exceptions.py
9.87 KB
Del
OK
web_fileresponse.py
10.53 KB
Del
OK
web_log.py
7.39 KB
Del
OK
web_middlewares.py
4.04 KB
Del
OK
web_protocol.py
22.02 KB
Del
OK
web_request.py
27.23 KB
Del
OK
web_response.py
26.92 KB
Del
OK
web_routedef.py
5.9 KB
Del
OK
web_runner.py
10.93 KB
Del
OK
web_server.py
2.01 KB
Del
OK
web_urldispatcher.py
38.62 KB
Del
OK
web_ws.py
16.85 KB
Del
OK
worker.py
8.57 KB
Del
OK
Edit: _websocket.pyx
from cpython cimport PyBytes_AsString #from cpython cimport PyByteArray_AsString # cython still not exports that cdef extern from "Python.h": char* PyByteArray_AsString(bytearray ba) except NULL from libc.stdint cimport uint32_t, uint64_t, uintmax_t def _websocket_mask_cython(object mask, object data): """Note, this function mutates its `data` argument """ cdef: Py_ssize_t data_len, i # bit operations on signed integers are implementation-specific unsigned char * in_buf const unsigned char * mask_buf uint32_t uint32_msk uint64_t uint64_msk assert len(mask) == 4 if not isinstance(mask, bytes): mask = bytes(mask) if isinstance(data, bytearray): data = <bytearray>data else: data = bytearray(data) data_len = len(data) in_buf = <unsigned char*>PyByteArray_AsString(data) mask_buf = <const unsigned char*>PyBytes_AsString(mask) uint32_msk = (<uint32_t*>mask_buf)[0] # TODO: align in_data ptr to achieve even faster speeds # does it need in python ?! malloc() always aligns to sizeof(long) bytes if sizeof(size_t) >= 8: uint64_msk = uint32_msk uint64_msk = (uint64_msk << 32) | uint32_msk while data_len >= 8: (<uint64_t*>in_buf)[0] ^= uint64_msk in_buf += 8 data_len -= 8 while data_len >= 4: (<uint32_t*>in_buf)[0] ^= uint32_msk in_buf += 4 data_len -= 4 for i in range(0, data_len): in_buf[i] ^= mask_buf[i]
Save