All classes:
- websocket._exceptions.WebSocketException
- websocket._exceptions.WebSocketProtocolException
- websocket._exceptions.WebSocketPayloadException
- websocket._exceptions.WebSocketConnectionClosedException
- websocket._exceptions.WebSocketTimeoutException
- websocket._exceptions.WebSocketProxyException
- websocket._exceptions.WebSocketBadStatusException
- websocket._exceptions.WebSocketAddressException
- websocket._utils.NoLock
- websocket._abnf.ABNF
- websocket._abnf.frame_buffer
- websocket._abnf.continuous_frame
- websocket._logging.NullHandler
- websocket._cookiejar.SimpleCookieJar
- websocket._ssl_compat.SSLError
- websocket._ssl_compat.SSLEOFError
- websocket._ssl_compat.SSLWantReadError
- websocket._ssl_compat.SSLWantWriteError
- websocket._http.ProxyError
- websocket._http.ProxyTimeoutError
- websocket._http.ProxyConnectionError
- websocket._http.ProxyType
- websocket._http.proxy_info
- websocket._handshake.handshake_response
- websocket._dispatcher.DispatcherBase
- websocket._dispatcher.Dispatcher
- websocket._dispatcher.SSLDispatcher
- websocket._dispatcher.WrappedDispatcher
- websocket._core.WebSocket
- websocket._app.WebSocketApp
- '...fuzz_http.FuzzMock'
- websocket._wsdump.VAction
- websocket._wsdump.RawInput
- websocket._wsdump.InteractiveConsole
- websocket._wsdump.NonInteractive
- websocket._socket.sock_opt
All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: '...fuzz_http'
    functionSourceFile: '...fuzz_http'
    functionUses: 0
    functionsReached:
    - '...fuzz_http.main'
    - atheris.instrument_all
    - atheris.Fuzz
    - atheris.Setup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - packet
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 26
    functionName: '...fuzz_http.FuzzMock.__init__'
    functionSourceFile: '...fuzz_http'
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 30
    functionName: '...fuzz_http.FuzzMock.gettimeout'
    functionSourceFile: '...fuzz_http'
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - bufsize
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 33
    functionName: '...fuzz_http.FuzzMock.recv'
    functionSourceFile: '...fuzz_http'
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.isinstance
    functionSourceFile: <builtin>
    functionUses: 75
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.len
    functionSourceFile: <builtin>
    functionUses: 69
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 42
    functionName: '...fuzz_http.FuzzMock.send'
    functionSourceFile: '...fuzz_http'
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 47
    functionName: '...fuzz_http.TestOneInput'
    functionSourceFile: '...fuzz_http'
    functionUses: 0
    functionsReached:
    - base64.encodebytes.strip
    - _socket.recv_line
    - websocket._logging.debug
    - websocket._logging.dump
    - websocket._http.read_headers
    - websocket._logging.trace
    - fdp.ConsumeBytes
    - <builtin>.len
    - _socket.recv_line.decode
    - headers.get
    - fdp.ConsumeUnicodeNoSurrogates
    - fdp.ConsumeIntInRange
    - _socket.recv_line.split
    - atheris.FuzzedDataProvider
    - websocket._http._tunnel
    - _socket.send
    - auth_str.encode
    - value.strip
    - '...fuzz_http.FuzzMock.__init__'
    - <builtin>.int
    - key.lower
    - _logger.debug
    - base64.encodebytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.FuzzedDataProvider
    functionSourceFile: atheris
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fdp.ConsumeBytes
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fdp.ConsumeUnicodeNoSurrogates
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fdp.ConsumeIntInRange
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - sock
    - host
    - port
    - auth
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 363
    functionName: websocket._http._tunnel
    functionSourceFile: websocket._http
    functionUses: 2
    functionsReached:
    - websocket._logging.dump
    - key.lower
    - websocket._http.read_headers
    - _socket.recv_line.split
    - websocket._logging.trace
    - _logger.debug
    - <builtin>.len
    - base64.encodebytes.strip
    - _socket.send
    - base64.encodebytes
    - _socket.recv_line
    - _socket.recv_line.decode
    - headers.get
    - auth_str.encode
    - value.strip
    - websocket._logging.debug
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - WebSocketProxyException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 67
    functionName: '...fuzz_http.main'
    functionSourceFile: '...fuzz_http'
    functionUses: 1
    functionsReached:
    - atheris.instrument_all
    - atheris.Fuzz
    - atheris.Setup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.instrument_all
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.Setup
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.Fuzz
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._exceptions
    functionSourceFile: websocket._exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f939b1fc7f0>
    - <ast.Constant object at 0x7f939b1fca00>
    - <ast.Constant object at 0x7f939b1fcc70>
    argNames:
    - self
    - message
    - status_code
    - status_message
    - resp_headers
    - resp_body
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 77
    functionName: websocket._exceptions.WebSocketBadStatusException.__init__
    functionSourceFile: websocket._exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.super
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._http
    functionSourceFile: websocket._http
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 62
    functionName: websocket._http.proxy_info.__init__
    functionSourceFile: websocket._http
    functionUses: 13
    functionsReached:
    - options.get
    linkageType: pythonLinkage
    raised:
    - ProxyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: options.get
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 0
    IfCount: 7
    argCount: 3
    argDefaultValues: []
    argNames:
    - url
    - options
    - proxy
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 88
    functionName: websocket._http._start_proxied_socket
    functionSourceFile: websocket._http
    functionUses: 1
    functionsReached:
    - os.environ.get
    - context.set_ecdh_curve
    - sslopt.update
    - <builtin>.isinstance
    - ssl.SSLContext
    - os.path.isdir
    - <builtin>.hasattr
    - websocket._http._wrap_sni_socket
    - <builtin>.len
    - websocket._url.parse_url
    - ws_proxy.connect
    - context.set_ciphers
    - websocket._http._ssl_socket
    - url.split
    - urllib.parse.urlparse
    - context.load_default_certs
    - user_sslopt.get
    - python_socks.sync.Proxy.create
    - context.load_verify_locations
    - <builtin>.int
    - os.path.isfile
    - context.load_cert_chain
    - sslopt.get
    - context.wrap_socket
    linkageType: pythonLinkage
    raised:
    - WebSocketException
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 1
    IfCount: 9
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 29
    functionName: websocket._url.parse_url
    functionSourceFile: websocket._url
    functionUses: 3
    functionsReached:
    - urllib.parse.urlparse
    - url.split
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.int
    functionSourceFile: <builtin>
    functionUses: 43
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: python_socks.sync.Proxy.create
    functionSourceFile: python_socks
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ws_proxy.connect
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - sock
    - user_sslopt
    - hostname
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 336
    functionName: websocket._http._ssl_socket
    functionSourceFile: websocket._http
    functionUses: 2
    functionsReached:
    - os.environ.get
    - <builtin>.hasattr
    - os.path.isfile
    - websocket._http._wrap_sni_socket
    - <builtin>.len
    - context.set_ecdh_curve
    - sslopt.update
    - context.load_cert_chain
    - user_sslopt.get
    - <builtin>.isinstance
    - context.load_default_certs
    - context.load_verify_locations
    - sslopt.get
    - context.set_ciphers
    - ssl.SSLContext
    - os.path.isdir
    - context.wrap_socket
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 4
    argDefaultValues: []
    argNames:
    - url
    - options
    - proxy
    - socket
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 133
    functionName: websocket._http.connect
    functionSourceFile: websocket._http
    functionUses: 0
    functionsReached:
    - os.environ.get
    - base64.encodebytes.strip
    - sslopt.update
    - context.set_ecdh_curve
    - _socket.recv_line
    - <builtin>.isinstance
    - websocket._url._is_address_in_network
    - hostname.endswith
    - ipaddress.ip_network
    - websocket._url._is_no_proxy_host
    - websocket._url._is_ip_address
    - sock.setsockopt
    - ssl.SSLContext
    - os.path.isdir
    - env_key.upper
    - websocket._logging.debug
    - sock.settimeout
    - websocket._logging.dump
    - <builtin>.hasattr
    - websocket._http.read_headers
    - websocket._logging.trace
    - websocket._http._wrap_sni_socket
    - websocket._http._open_socket
    - sock.close
    - <builtin>.len
    - websocket._url.get_proxy_info
    - websocket._url.parse_url
    - urllib.parse.unquote
    - _socket.recv_line.decode
    - ws_proxy.connect
    - headers.get
    - ipaddress.ip_address
    - context.set_ciphers
    - sock.connect
    - websocket._http._ssl_socket
    - ip_net.subnet_of
    - <builtin>.getattr
    - url.split
    - _socket.recv_line.split
    - websocket._http._tunnel
    - _socket.send
    - user_sslopt.get
    - websocket._http._start_proxied_socket
    - python_socks.sync.Proxy.create
    - context.load_default_certs
    - context.load_verify_locations
    - auth_str.encode
    - <builtin>.str
    - urllib.parse.urlparse
    - domain.lstrip
    - value.strip
    - <builtin>.int
    - socket.getaddrinfo
    - key.lower
    - os.path.isfile
    - _logger.debug
    - context.load_cert_chain
    - domain.startswith
    - v.split
    - sslopt.get
    - <builtin>.any
    - websocket._http._get_addrinfo_list
    - websocket._url._is_subnet_address
    - base64.encodebytes
    - socket.socket
    - context.wrap_socket
    linkageType: pythonLinkage
    raised:
    - WebSocketException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - hostname
    - port
    - is_secure
    - proxy
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 172
    functionName: websocket._http._get_addrinfo_list
    functionSourceFile: websocket._http
    functionUses: 1
    functionsReached:
    - os.environ.get
    - websocket._url._is_address_in_network
    - <builtin>.isinstance
    - hostname.endswith
    - ipaddress.ip_network
    - websocket._url._is_no_proxy_host
    - websocket._url._is_ip_address
    - env_key.upper
    - websocket._url.get_proxy_info
    - urllib.parse.unquote
    - ipaddress.ip_address
    - ip_net.subnet_of
    - urllib.parse.urlparse
    - domain.lstrip
    - socket.getaddrinfo
    - domain.startswith
    - v.split
    - <builtin>.any
    - websocket._url._is_subnet_address
    linkageType: pythonLinkage
    raised:
    - WebSocketAddressException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - addrinfo_list
    - sockopt
    - timeout
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 209
    functionName: websocket._http._open_socket
    functionSourceFile: websocket._http
    functionUses: 1
    functionsReached:
    - sock.settimeout
    - sock.close
    - <builtin>.str
    - sock.connect
    - sock.setsockopt
    - socket.socket
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.close
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f939b77b880>
    - <ast.Constant object at 0x7f939b77bc10>
    - <ast.Constant object at 0x7f939b77b1f0>
    - <ast.Constant object at 0x7f939b77b9d0>
    - <ast.Constant object at 0x7f939b77b5b0>
    argNames:
    - hostname
    - is_secure
    - proxy_host
    - proxy_port
    - proxy_auth
    - no_proxy
    - proxy_type
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 146
    functionName: websocket._url.get_proxy_info
    functionSourceFile: websocket._url
    functionUses: 2
    functionsReached:
    - os.environ.get
    - websocket._url._is_address_in_network
    - urllib.parse.unquote
    - domain.startswith
    - urllib.parse.urlparse
    - domain.lstrip
    - hostname.endswith
    - ipaddress.ip_network
    - ipaddress.ip_address
    - websocket._url._is_no_proxy_host
    - <builtin>.any
    - <builtin>.isinstance
    - websocket._url._is_subnet_address
    - v.split
    - websocket._url._is_ip_address
    - env_key.upper
    - ip_net.subnet_of
    linkageType: pythonLinkage
    raised:
    - WebSocketProxyException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: socket.getaddrinfo
    functionSourceFile: socket
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: socket.socket
    functionSourceFile: socket
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.settimeout
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.setsockopt
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.connect
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.str
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.getattr
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 6
    IfCount: 11
    argCount: 4
    argDefaultValues: []
    argNames:
    - sock
    - sslopt
    - hostname
    - check_hostname
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 249
    functionName: websocket._http._wrap_sni_socket
    functionSourceFile: websocket._http
    functionUses: 3
    functionsReached:
    - os.environ.get
    - <builtin>.hasattr
    - <builtin>.len
    - context.set_ecdh_curve
    - context.load_cert_chain
    - <builtin>.isinstance
    - context.load_default_certs
    - context.load_verify_locations
    - sslopt.get
    - context.set_ciphers
    - ssl.SSLContext
    - context.wrap_socket
    linkageType: pythonLinkage
    raised:
    - WebSocketException
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sslopt.get
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ssl.SSLContext
    functionSourceFile: ssl
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.environ.get
    functionSourceFile: os
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: context.load_verify_locations
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.hasattr
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: context.load_default_certs
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: context.load_cert_chain
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: context.set_ciphers
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: context.set_ecdh_curve
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: context.wrap_socket
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sslopt.update
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.isfile
    functionSourceFile: os
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: user_sslopt.get
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.isdir
    functionSourceFile: os
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 99
    functionName: websocket._logging.debug
    functionSourceFile: websocket._logging
    functionUses: 20
    functionsReached:
    - _logger.debug
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: auth_str.encode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base64.encodebytes
    functionSourceFile: base64
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base64.encodebytes.strip
    functionSourceFile: base64
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - title
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 84
    functionName: websocket._logging.dump
    functionSourceFile: websocket._logging
    functionUses: 17
    functionsReached:
    - _logger.debug
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _socket.send
    functionSourceFile: _socket
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 3
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - sock
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 391
    functionName: websocket._http.read_headers
    functionSourceFile: websocket._http
    functionUses: 18
    functionsReached:
    - _socket.recv_line.split
    - key.lower
    - websocket._logging.trace
    - _logger.debug
    - <builtin>.len
    - _socket.recv_line
    - _socket.recv_line.decode
    - headers.get
    - value.strip
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - WebSocketException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 107
    functionName: websocket._logging.trace
    functionSourceFile: websocket._logging
    functionUses: 48
    functionsReached:
    - _logger.debug
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _socket.recv_line
    functionSourceFile: _socket
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _socket.recv_line.decode
    functionSourceFile: _socket
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _socket.recv_line.split
    functionSourceFile: _socket
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key.lower
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: headers.get
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.strip
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._ssl_compat
    functionSourceFile: websocket._ssl_compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._url
    functionSourceFile: websocket._url
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: url.split
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlparse
    functionSourceFile: urllib
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - addr
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 75
    functionName: websocket._url._is_ip_address
    functionSourceFile: websocket._url
    functionUses: 4
    functionsReached:
    - ipaddress.ip_address
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ipaddress.ip_address
    functionSourceFile: ipaddress
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - hostname
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 86
    functionName: websocket._url._is_subnet_address
    functionSourceFile: websocket._url
    functionUses: 4
    functionsReached:
    - ipaddress.ip_network
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ipaddress.ip_network
    functionSourceFile: ipaddress
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - ip
    - net
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 95
    functionName: websocket._url._is_address_in_network
    functionSourceFile: websocket._url
    functionUses: 4
    functionsReached:
    - ip_net.subnet_of
    - ipaddress.ip_network
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ip_net.subnet_of
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 0
    IfCount: 9
    argCount: 2
    argDefaultValues: []
    argNames:
    - hostname
    - no_proxy
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 108
    functionName: websocket._url._is_no_proxy_host
    functionSourceFile: websocket._url
    functionUses: 3
    functionsReached:
    - os.environ.get
    - websocket._url._is_address_in_network
    - domain.startswith
    - domain.lstrip
    - <builtin>.isinstance
    - hostname.endswith
    - v.split
    - ipaddress.ip_network
    - ipaddress.ip_address
    - <builtin>.any
    - websocket._url._is_subnet_address
    - websocket._url._is_ip_address
    - ip_net.subnet_of
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: v.split
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.any
    functionSourceFile: <builtin>
    functionUses: 46
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: domain.startswith
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: domain.lstrip
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hostname.endswith
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: env_key.upper
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.unquote
    functionSourceFile: urllib
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket
    functionSourceFile: websocket
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._app
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - reconnectInterval
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 43
    functionName: websocket._app.set_reconnect
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 17
    argDefaultValues:
    - <ast.Constant object at 0x7f939b37bc70>
    - <ast.Constant object at 0x7f939b37b700>
    - <ast.Constant object at 0x7f939b37b9a0>
    - <ast.Constant object at 0x7f939b37b730>
    - <ast.Constant object at 0x7f939b37b820>
    - <ast.Constant object at 0x7f939b37b400>
    - <ast.Constant object at 0x7f939b37b340>
    - <ast.Constant object at 0x7f939b37b970>
    - <ast.Constant object at 0x7f939b37bbe0>
    - <ast.Constant object at 0x7f939b37b7c0>
    - <ast.Constant object at 0x7f939b37b940>
    - <ast.Constant object at 0x7f939b37b280>
    - <ast.Constant object at 0x7f939b37b9d0>
    - <ast.Constant object at 0x7f939b37b910>
    - <ast.Constant object at 0x7f939b37b7f0>
    argNames:
    - self
    - url
    - header
    - on_open
    - on_reconnect
    - on_message
    - on_error
    - on_close
    - on_ping
    - on_pong
    - on_cont_message
    - keep_running
    - get_mask_key
    - cookie
    - subprotocols
    - on_data
    - socket
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 53
    functionName: websocket._app.WebSocketApp.__init__
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - threading.Lock
    - <builtin>.float
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.float
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: threading.Lock
    functionSourceFile: threading
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Attribute object at 0x7f939b9fcaf0>
    argNames:
    - self
    - data
    - opcode
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 173
    functionName: websocket._app.WebSocketApp.send
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - <builtin>.repr
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - <builtin>.chr
    - websocket._dispatcher.DispatcherBase.send
    - wsaccel.xormask.XorMaskerSimple
    - int.from_bytes
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.format
    - _logger.debug
    - data.encode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.ABNF.__str__
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised:
    - WebSocketConnectionClosedException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Attribute object at 0x7f939b162b50>
    argNames:
    - self
    - payload
    - opcode
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 298
    functionName: websocket._core.WebSocket.send
    functionSourceFile: websocket._core
    functionUses: 40
    functionsReached:
    - <builtin>.repr
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - <builtin>.chr
    - websocket._dispatcher.DispatcherBase.send
    - wsaccel.xormask.XorMaskerSimple
    - int.from_bytes
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.format
    - _logger.debug
    - data.encode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.ABNF.__str__
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 189
    functionName: websocket._app.WebSocketApp.send_text
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - <builtin>.repr
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - <builtin>.chr
    - websocket._dispatcher.DispatcherBase.send
    - wsaccel.xormask.XorMaskerSimple
    - int.from_bytes
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.format
    - _logger.debug
    - data.encode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.ABNF.__str__
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised:
    - WebSocketConnectionClosedException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 196
    functionName: websocket._app.WebSocketApp.send_bytes
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - <builtin>.repr
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - <builtin>.chr
    - websocket._dispatcher.DispatcherBase.send
    - wsaccel.xormask.XorMaskerSimple
    - int.from_bytes
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.format
    - _logger.debug
    - data.encode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.ABNF.__str__
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised:
    - WebSocketConnectionClosedException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 203
    functionName: websocket._app.WebSocketApp.close
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - websocket._core.WebSocket.shutdown
    - <builtin>.repr
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._logging.isEnabledForError
    - <builtin>.min
    - websocket._abnf.frame_buffer.needs_length
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.close
    - wsaccel.utf8validator.Utf8Validator.validate
    - <builtin>.bytes
    - payload.encode
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.send_frame
    - websocket._logging.debug
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - websocket._dispatcher.DispatcherBase.send
    - <builtin>.chr
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._utils._validate_utf8
    - wsaccel.xormask.XorMaskerSimple
    - _logger.error
    - websocket._core.WebSocket.recv_frame
    - websocket._logging.error
    - struct.unpack
    - int.from_bytes
    - websocket._abnf.frame_buffer.clear
    - _logger.isEnabledFor
    - <builtin>.sum
    - websocket._core.WebSocket.recv
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.pong
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - time.time
    - array.array
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.send_close
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.int
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    - _logger.debug
    - data.encode
    - websocket._abnf.frame_buffer.recv_length
    - reason.encode
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - data_received.decode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.ABNF.validate
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 8
    IfCount: 8
    argCount: 4
    argDefaultValues:
    - <ast.Name object at 0x7f939b12ffd0>
    - <ast.Constant object at 0x7f939b12f880>
    - <ast.Constant object at 0x7f939b12f6d0>
    argNames:
    - self
    - status
    - reason
    - timeout
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 524
    functionName: websocket._core.WebSocket.close
    functionSourceFile: websocket._core
    functionUses: 14
    functionsReached:
    - <builtin>.repr
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._logging.isEnabledForError
    - <builtin>.min
    - websocket._abnf.frame_buffer.needs_length
    - websocket._abnf.frame_buffer.has_mask
    - wsaccel.utf8validator.Utf8Validator.validate
    - <builtin>.bytes
    - payload.encode
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.send_frame
    - websocket._logging.debug
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - websocket._dispatcher.DispatcherBase.send
    - <builtin>.chr
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._utils._validate_utf8
    - wsaccel.xormask.XorMaskerSimple
    - _logger.error
    - websocket._core.WebSocket.recv_frame
    - websocket._logging.error
    - struct.unpack
    - int.from_bytes
    - websocket._abnf.frame_buffer.clear
    - _logger.isEnabledFor
    - <builtin>.sum
    - websocket._core.WebSocket.recv
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.pong
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - time.time
    - array.array
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.send_close
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.int
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    - _logger.debug
    - data.encode
    - websocket._abnf.frame_buffer.recv_length
    - reason.encode
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - data_received.decode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.ABNF.validate
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 215
    functionName: websocket._app.WebSocketApp._start_ping_thread
    functionSourceFile: websocket._app
    functionUses: 12
    functionsReached:
    - threading.Thread
    - threading.Event
    - <builtin>.float
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: threading.Event
    functionSourceFile: threading
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: threading.Thread
    functionSourceFile: threading
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 222
    functionName: websocket._app.WebSocketApp._stop_ping_thread
    functionSourceFile: websocket._app
    functionUses: 13
    functionsReached:
    - _logger.warning
    - websocket._logging.warning
    - <builtin>.float
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 95
    functionName: websocket._logging.warning
    functionSourceFile: websocket._logging
    functionUses: 14
    functionsReached:
    - _logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 243
    functionName: websocket._app.WebSocketApp._send_ping
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - <builtin>.repr
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - payload.encode
    - websocket._core.WebSocket.send_frame
    - websocket._logging.debug
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - websocket._dispatcher.DispatcherBase.send
    - <builtin>.chr
    - wsaccel.xormask.XorMaskerSimple
    - int.from_bytes
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - time.time
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.format
    - _logger.debug
    - data.encode
    - websocket._core.WebSocket.ping
    - <builtin>.any
    - os.urandom
    - websocket._abnf.ABNF.__str__
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: time.time
    functionSourceFile: time
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f939b76fb50>
    argNames:
    - self
    - payload
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 369
    functionName: websocket._core.WebSocket.ping
    functionSourceFile: websocket._core
    functionUses: 1
    functionsReached:
    - <builtin>.repr
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - payload.encode
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - <builtin>.chr
    - websocket._dispatcher.DispatcherBase.send
    - wsaccel.xormask.XorMaskerSimple
    - int.from_bytes
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.format
    - _logger.debug
    - data.encode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.ABNF.__str__
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 257
    functionName: websocket._app.WebSocketApp.ready
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 7
    IfCount: 9
    argCount: 19
    argDefaultValues:
    - <ast.Constant object at 0x7f939b75bfa0>
    - <ast.Constant object at 0x7f939b28d1f0>
    - <ast.Constant object at 0x7f939b28d220>
    - <ast.Constant object at 0x7f939b28dcd0>
    - <ast.Constant object at 0x7f939b28de20>
    - <ast.Constant object at 0x7f939b28d910>
    - <ast.Constant object at 0x7f939b28dac0>
    - <ast.Constant object at 0x7f939b28da60>
    - <ast.Constant object at 0x7f939b28d3d0>
    - <ast.Constant object at 0x7f939b28d9a0>
    - <ast.Constant object at 0x7f939b28d070>
    - <ast.Constant object at 0x7f939b28df40>
    - <ast.Constant object at 0x7f939b28d310>
    - <ast.Constant object at 0x7f939b28d5e0>
    - <ast.Constant object at 0x7f939b28d100>
    - <ast.Constant object at 0x7f939b28dbb0>
    - <ast.Constant object at 0x7f939b28d850>
    - <ast.Constant object at 0x7f939b28dfa0>
    argNames:
    - self
    - sockopt
    - sslopt
    - ping_interval
    - ping_timeout
    - ping_payload
    - http_proxy_host
    - http_proxy_port
    - http_no_proxy
    - http_proxy_auth
    - http_proxy_timeout
    - skip_utf8_validation
    - host
    - origin
    - dispatcher
    - suppress_origin
    - suppress_host
    - proxy_type
    - reconnect
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 17
    functionLinenumber: 260
    functionName: websocket._app.WebSocketApp.run_forever
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - cookie.update
    - websocket._abnf.frame_buffer.needs_mask
    - base64.encodebytes.strip
    - websocket._logging.isEnabledForError
    - domain.lower
    - cookies.append
    - websocket._dispatcher.WrappedDispatcher.__init__
    - websocket._core.WebSocket._recv
    - s.lower
    - websocket._handshake._create_sec_websocket_key
    - header.items
    - sel.register
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    - websocket._dispatcher.DispatcherBase.send
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket.connect
    - websocket._handshake._validate
    - int.from_bytes
    - <builtin>.sum
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._core.WebSocket.pong
    - <builtin>.sorted
    - websocket._logging.isEnabledForTrace
    - time.time
    - data.decode
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._app.WebSocketApp._parse_close_frame
    - <builtin>.int
    - _logger.debug
    - websocket._dispatcher.DispatcherBase.reconnect
    - <builtin>.setattr
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - <builtin>.filter
    - websocket._abnf.frame_buffer.__init__
    - websocket._abnf.ABNF.validate
    - base64.encodebytes
    - websocket._handshake.handshake
    - websocket._dispatcher.Dispatcher.read
    - sel.select
    - websocket._core.WebSocket.shutdown
    - <builtin>.repr
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - _socket.recv_line
    - threading.Event
    - websocket._core.WebSocket.close
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._app.WebSocketApp.create_dispatcher
    - websocket._logging.dump
    - websocket._logging.trace
    - websocket._http.read_headers
    - <builtin>.float
    - <builtin>.len
    - websocket._abnf.frame_buffer.needs_header
    - _socket.recv_line.decode
    - websocket._handshake._pack_hostname
    - wsaccel.xormask.XorMaskerSimple
    - headers.get
    - cookie.items
    - _socket.getdefaulttimeout
    - subproto.lower
    - url.split
    - <builtin>.bool
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - urllib.parse.urlparse
    - dispatcher.signal
    - _socket.send
    - result.encode
    - websocket._abnf.continuous_frame.validate
    - websocket._core.WebSocket.__init__
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._core.WebSocket.settimeout
    - wsaccel.utf8validator.Utf8Validator
    - reason.encode
    - data_received.decode
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - _socket.recv
    - headers.extend
    - x.strip
    - sel.close
    - websocket._dispatcher.DispatcherBase.__init__
    - _socket.sock_opt
    - <builtin>.min
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.bytes
    - payload.encode
    - hashlib.sha1
    - struct.pack
    - mask_key.encode
    - websocket._handshake.handshake_response.__init__
    - websocket._url.parse_url
    - websocket._abnf.frame_buffer.recv_strict
    - resp_headers.get
    - options.pop
    - struct.unpack
    - _logger.isEnabledFor
    - <builtin>.getattr
    - headers.append
    - threading.Thread
    - websocket._app.WebSocketApp._callback
    - <builtin>.range
    - websocket._abnf.continuous_frame.extract
    - result.lower
    - websocket._abnf.ABNF.mask
    - websocket._app.WebSocketApp.run_forever.teardown
    - array.array
    - websocket._handshake._get_handshake_headers
    - websocket._abnf.ABNF.format
    - selectors.DefaultSelector
    - inspect.stack
    - websocket._abnf.frame_buffer.recv_header
    - host.endswith
    - websocket._utils._decode
    - key.lower
    - _HEADERS_TO_CHECK.items
    - data.encode
    - sock.pending
    - simple_cookie.values
    - reason_bytes.decode
    - websocket._abnf.ABNF.__str__
    - <builtin>.callable
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - time.sleep
    - threading.Lock
    - r.split
    - <builtin>.isinstance
    - reason_parts.append
    - websocket._logging.info
    - websocket._abnf.frame_buffer.needs_length
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._handshake._get_resp_headers
    - v.get
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.send_frame
    - options.get
    - websocket._logging.debug
    - websocket._abnf.continuous_frame.__init__
    - <builtin>.chr
    - http.cookies.SimpleCookie
    - _logger.error
    - websocket._core.WebSocket.recv_frame
    - websocket._logging.error
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.clear
    - websocket._core.WebSocket.recv
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._logging.warning
    - host.lower
    - _logger.info
    - _socket.recv_line.split
    - wsaccel.xormask.XorMaskerSimple.process
    - hmac.compare_digest
    - websocket._core.WebSocket.send_close
    - <builtin>.type
    - value.strip
    - websocket._dispatcher.WrappedDispatcher.timeout
    - domain.startswith
    - websocket._core.WebSocket.recv_data_frame
    - _logger.warning
    - websocket._app.WebSocketApp.run_forever.closed
    - websocket._http.proxy_info.__init__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.DispatcherBase.timeout
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised:
    - WebSocketException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f939b777b20>
    argNames:
    - close_frame
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 358
    functionName: websocket._app.WebSocketApp.run_forever.teardown
    functionSourceFile: websocket._app
    functionUses: 12
    functionsReached:
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._logging.isEnabledForError
    - websocket._core.WebSocket._recv
    - websocket._dispatcher.DispatcherBase.send
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._utils._validate_utf8
    - int.from_bytes
    - <builtin>.sum
    - websocket._core.WebSocket.pong
    - websocket._logging.isEnabledForTrace
    - time.time
    - websocket._app.WebSocketApp._parse_close_frame
    - <builtin>.int
    - _logger.debug
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - websocket._abnf.ABNF.validate
    - websocket._core.WebSocket.shutdown
    - <builtin>.repr
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - websocket._core.WebSocket.close
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.trace
    - <builtin>.float
    - <builtin>.len
    - websocket._abnf.frame_buffer.needs_header
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.continuous_frame.validate
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - wsaccel.utf8validator.Utf8Validator
    - reason.encode
    - data_received.decode
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - <builtin>.min
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.bytes
    - payload.encode
    - struct.pack
    - mask_key.encode
    - websocket._abnf.frame_buffer.recv_strict
    - struct.unpack
    - _logger.isEnabledFor
    - <builtin>.getattr
    - websocket._app.WebSocketApp._callback
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - array.array
    - websocket._abnf.ABNF.format
    - websocket._abnf.frame_buffer.recv_header
    - websocket._utils._decode
    - data.encode
    - reason_bytes.decode
    - websocket._abnf.ABNF.__str__
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.needs_length
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.send_frame
    - websocket._logging.debug
    - <builtin>.chr
    - _logger.error
    - websocket._core.WebSocket.recv_frame
    - websocket._logging.error
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.clear
    - websocket._core.WebSocket.recv
    - websocket._logging.warning
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.send_close
    - websocket._core.WebSocket.recv_data_frame
    - _logger.warning
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - close_frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 626
    functionName: websocket._app.WebSocketApp._get_close_args
    functionSourceFile: websocket._app
    functionUses: 13
    functionsReached:
    - <builtin>.len
    - data.encode
    - <builtin>.isinstance
    - reason_bytes.decode
    - <builtin>.bytes
    - websocket._app.WebSocketApp._parse_close_frame
    - <builtin>.getattr
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - callback
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 676
    functionName: websocket._app.WebSocketApp._callback
    functionSourceFile: websocket._app
    functionUses: 13
    functionsReached:
    - _logger.error
    - websocket._logging.error
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 9
    IfCount: 3
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f939b9a9820>
    argNames:
    - reconnecting
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 16
    functionLinenumber: 398
    functionName: websocket._app.WebSocketApp.run_forever.initialize_socket
    functionSourceFile: websocket._app
    functionUses: 11
    functionsReached:
    - cookie.update
    - websocket._abnf.frame_buffer.needs_mask
    - base64.encodebytes.strip
    - websocket._logging.isEnabledForError
    - domain.lower
    - cookies.append
    - websocket._core.WebSocket._recv
    - s.lower
    - websocket._handshake._create_sec_websocket_key
    - header.items
    - sel.register
    - websocket._dispatcher.DispatcherBase.send
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket.connect
    - websocket._handshake._validate
    - int.from_bytes
    - <builtin>.sum
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._core.WebSocket.pong
    - <builtin>.sorted
    - websocket._logging.isEnabledForTrace
    - time.time
    - data.decode
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._app.WebSocketApp._parse_close_frame
    - <builtin>.int
    - _logger.debug
    - websocket._dispatcher.DispatcherBase.reconnect
    - <builtin>.setattr
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._dispatcher.WrappedDispatcher.send
    - <builtin>.filter
    - <builtin>.any
    - websocket._abnf.frame_buffer.__init__
    - websocket._abnf.ABNF.validate
    - base64.encodebytes
    - websocket._handshake.handshake
    - websocket._dispatcher.Dispatcher.read
    - sel.select
    - websocket._core.WebSocket.shutdown
    - <builtin>.repr
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - _socket.recv_line
    - threading.Event
    - websocket._core.WebSocket.close
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.dump
    - websocket._logging.trace
    - websocket._http.read_headers
    - <builtin>.float
    - <builtin>.len
    - websocket._abnf.frame_buffer.needs_header
    - _socket.recv_line.decode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._handshake._pack_hostname
    - headers.get
    - cookie.items
    - _socket.getdefaulttimeout
    - subproto.lower
    - url.split
    - <builtin>.bool
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - _socket.send
    - result.encode
    - websocket._abnf.continuous_frame.validate
    - websocket._core.WebSocket.__init__
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._core.WebSocket.settimeout
    - wsaccel.utf8validator.Utf8Validator
    - reason.encode
    - data_received.decode
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - _socket.recv
    - headers.extend
    - x.strip
    - sel.close
    - _socket.sock_opt
    - <builtin>.min
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.bytes
    - payload.encode
    - hashlib.sha1
    - struct.pack
    - mask_key.encode
    - websocket._handshake.handshake_response.__init__
    - websocket._abnf.frame_buffer.recv_strict
    - resp_headers.get
    - options.pop
    - struct.unpack
    - _logger.isEnabledFor
    - <builtin>.getattr
    - headers.append
    - threading.Thread
    - websocket._app.WebSocketApp._callback
    - <builtin>.range
    - websocket._abnf.continuous_frame.extract
    - result.lower
    - websocket._abnf.ABNF.mask
    - websocket._app.WebSocketApp.run_forever.teardown
    - array.array
    - websocket._handshake._get_handshake_headers
    - websocket._abnf.ABNF.format
    - selectors.DefaultSelector
    - inspect.stack
    - websocket._abnf.frame_buffer.recv_header
    - host.endswith
    - websocket._utils._decode
    - key.lower
    - _HEADERS_TO_CHECK.items
    - data.encode
    - sock.pending
    - simple_cookie.values
    - reason_bytes.decode
    - websocket._abnf.ABNF.__str__
    - <builtin>.callable
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - time.sleep
    - threading.Lock
    - r.split
    - <builtin>.isinstance
    - reason_parts.append
    - websocket._logging.info
    - websocket._abnf.frame_buffer.needs_length
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._handshake._get_resp_headers
    - v.get
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.send_frame
    - options.get
    - websocket._logging.debug
    - websocket._abnf.continuous_frame.__init__
    - <builtin>.chr
    - http.cookies.SimpleCookie
    - _logger.error
    - websocket._core.WebSocket.recv_frame
    - websocket._logging.error
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.clear
    - websocket._core.WebSocket.recv
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._logging.warning
    - host.lower
    - _logger.info
    - _socket.recv_line.split
    - wsaccel.xormask.XorMaskerSimple.process
    - hmac.compare_digest
    - websocket._core.WebSocket.send_close
    - <builtin>.type
    - value.strip
    - websocket._dispatcher.WrappedDispatcher.timeout
    - domain.startswith
    - websocket._core.WebSocket.recv_data_frame
    - _logger.warning
    - websocket._app.WebSocketApp.run_forever.closed
    - websocket._http.proxy_info.__init__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.DispatcherBase.timeout
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 594
    functionName: websocket._core.WebSocket.shutdown
    functionSourceFile: websocket._core
    functionUses: 15
    functionsReached:
    - websocket._logging.debug
    - _logger.debug
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7f939b13b700>
    - <ast.Constant object at 0x7f939b13b7f0>
    - <ast.Constant object at 0x7f939b13b2b0>
    - <ast.Constant object at 0x7f939b199a60>
    - <ast.Constant object at 0x7f939b199eb0>
    - <ast.Constant object at 0x7f939b199a90>
    - <ast.Constant object at 0x7f939b199bb0>
    argNames:
    - self
    - get_mask_key
    - sockopt
    - sslopt
    - fire_cont_frame
    - enable_multithread
    - skip_utf8_validation
    - dispatcher
    - _
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 83
    functionName: websocket._core.WebSocket.__init__
    functionSourceFile: websocket._core
    functionUses: 13
    functionsReached:
    - threading.Lock
    - websocket._abnf.continuous_frame.__init__
    - _socket.sock_opt
    - websocket._abnf.frame_buffer.__init__
    - websocket._abnf.frame_buffer.clear
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _socket.getdefaulttimeout
    functionSourceFile: _socket
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - timeout
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 165
    functionName: websocket._core.WebSocket.settimeout
    functionSourceFile: ''
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.callable
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - url
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 219
    functionName: websocket._core.WebSocket.connect
    functionSourceFile: websocket._core
    functionUses: 12
    functionsReached:
    - cookie.update
    - headers.extend
    - x.strip
    - r.split
    - <builtin>.isinstance
    - <builtin>.min
    - _socket.recv_line
    - base64.encodebytes.strip
    - domain.lower
    - v.get
    - websocket._cookiejar.SimpleCookieJar.add
    - cookies.append
    - websocket._handshake._get_resp_headers
    - s.lower
    - websocket._handshake._create_sec_websocket_key
    - options.get
    - header.items
    - hashlib.sha1
    - websocket._logging.dump
    - websocket._http.read_headers
    - websocket._logging.trace
    - websocket._handshake.handshake_response.__init__
    - http.cookies.SimpleCookie
    - <builtin>.len
    - resp_headers.get
    - _socket.recv_line.decode
    - websocket._core.WebSocket.connect
    - websocket._handshake._pack_hostname
    - headers.get
    - cookie.items
    - websocket._logging.error
    - websocket._handshake._validate
    - options.pop
    - _logger.error
    - subproto.lower
    - url.split
    - headers.append
    - host.lower
    - _socket.recv_line.split
    - <builtin>.range
    - <builtin>.sorted
    - _socket.send
    - result.lower
    - result.encode
    - hmac.compare_digest
    - websocket._handshake._get_handshake_headers
    - value.strip
    - websocket._cookiejar.SimpleCookieJar.get
    - host.endswith
    - <builtin>.int
    - key.lower
    - _HEADERS_TO_CHECK.items
    - _logger.debug
    - domain.startswith
    - <builtin>.filter
    - websocket._http.proxy_info.__init__
    - os.urandom
    - simple_cookie.values
    - base64.encodebytes.decode
    - base64.encodebytes
    - _socket.recv
    - websocket._handshake.handshake
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 103
    functionName: websocket._logging.info
    functionSourceFile: websocket._logging
    functionUses: 12
    functionsReached:
    - _logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - sock
    - read_callback
    - check_callback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 15
    functionLinenumber: 93
    functionName: websocket._dispatcher.SSLDispatcher.read
    functionSourceFile: websocket._dispatcher
    functionUses: 11
    functionsReached:
    - cookie.update
    - websocket._abnf.frame_buffer.needs_mask
    - base64.encodebytes.strip
    - websocket._logging.isEnabledForError
    - domain.lower
    - cookies.append
    - websocket._core.WebSocket._recv
    - s.lower
    - websocket._handshake._create_sec_websocket_key
    - header.items
    - sel.register
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    - websocket._dispatcher.DispatcherBase.send
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket.connect
    - websocket._handshake._validate
    - int.from_bytes
    - <builtin>.sum
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._core.WebSocket.pong
    - <builtin>.sorted
    - websocket._logging.isEnabledForTrace
    - time.time
    - data.decode
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._app.WebSocketApp._parse_close_frame
    - <builtin>.int
    - _logger.debug
    - <builtin>.setattr
    - websocket._dispatcher.DispatcherBase.reconnect
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - <builtin>.filter
    - websocket._abnf.frame_buffer.__init__
    - websocket._abnf.ABNF.validate
    - base64.encodebytes
    - websocket._handshake.handshake
    - websocket._dispatcher.Dispatcher.read
    - sel.select
    - <builtin>.repr
    - websocket._core.WebSocket.shutdown
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - _socket.recv_line
    - threading.Event
    - websocket._core.WebSocket.close
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.dump
    - websocket._logging.trace
    - websocket._http.read_headers
    - <builtin>.float
    - <builtin>.len
    - websocket._abnf.frame_buffer.needs_header
    - _socket.recv_line.decode
    - wsaccel.xormask.XorMaskerSimple
    - headers.get
    - websocket._handshake._pack_hostname
    - cookie.items
    - _socket.getdefaulttimeout
    - subproto.lower
    - url.split
    - <builtin>.bool
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - _socket.send
    - result.encode
    - websocket._abnf.continuous_frame.validate
    - websocket._core.WebSocket.__init__
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._core.WebSocket.settimeout
    - wsaccel.utf8validator.Utf8Validator
    - reason.encode
    - data_received.decode
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - _socket.recv
    - headers.extend
    - x.strip
    - sel.close
    - _socket.sock_opt
    - <builtin>.min
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.bytes
    - payload.encode
    - hashlib.sha1
    - struct.pack
    - mask_key.encode
    - websocket._handshake.handshake_response.__init__
    - websocket._abnf.frame_buffer.recv_strict
    - resp_headers.get
    - options.pop
    - struct.unpack
    - _logger.isEnabledFor
    - <builtin>.getattr
    - headers.append
    - threading.Thread
    - websocket._app.WebSocketApp._callback
    - <builtin>.range
    - websocket._abnf.continuous_frame.extract
    - result.lower
    - websocket._abnf.ABNF.mask
    - websocket._app.WebSocketApp.run_forever.teardown
    - array.array
    - websocket._handshake._get_handshake_headers
    - websocket._abnf.ABNF.format
    - selectors.DefaultSelector
    - inspect.stack
    - websocket._abnf.frame_buffer.recv_header
    - host.endswith
    - websocket._utils._decode
    - key.lower
    - _HEADERS_TO_CHECK.items
    - data.encode
    - sock.pending
    - simple_cookie.values
    - reason_bytes.decode
    - websocket._abnf.ABNF.__str__
    - <builtin>.callable
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - time.sleep
    - threading.Lock
    - r.split
    - reason_parts.append
    - <builtin>.isinstance
    - websocket._logging.info
    - websocket._abnf.frame_buffer.needs_length
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._app.WebSocketApp._start_ping_thread
    - v.get
    - websocket._handshake._get_resp_headers
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.send_frame
    - options.get
    - websocket._logging.debug
    - <builtin>.chr
    - websocket._abnf.continuous_frame.__init__
    - http.cookies.SimpleCookie
    - _logger.error
    - websocket._core.WebSocket.recv_frame
    - websocket._logging.error
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.clear
    - websocket._core.WebSocket.recv
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._logging.warning
    - host.lower
    - _logger.info
    - _socket.recv_line.split
    - wsaccel.xormask.XorMaskerSimple.process
    - hmac.compare_digest
    - <builtin>.type
    - websocket._core.WebSocket.send_close
    - value.strip
    - websocket._dispatcher.WrappedDispatcher.timeout
    - domain.startswith
    - websocket._core.WebSocket.recv_data_frame
    - websocket._app.WebSocketApp.run_forever.closed
    - websocket._http.proxy_info.__init__
    - _logger.warning
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.DispatcherBase.timeout
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - sock
    - read_callback
    - check_callback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 16
    functionLinenumber: 147
    functionName: websocket._dispatcher.WrappedDispatcher.read
    functionSourceFile: websocket._dispatcher
    functionUses: 11
    functionsReached:
    - cookie.update
    - websocket._abnf.frame_buffer.needs_mask
    - base64.encodebytes.strip
    - websocket._logging.isEnabledForError
    - domain.lower
    - cookies.append
    - websocket._core.WebSocket._recv
    - s.lower
    - websocket._handshake._create_sec_websocket_key
    - header.items
    - sel.register
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    - websocket._dispatcher.DispatcherBase.send
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket.connect
    - websocket._handshake._validate
    - int.from_bytes
    - <builtin>.sum
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._core.WebSocket.pong
    - <builtin>.sorted
    - websocket._logging.isEnabledForTrace
    - time.time
    - data.decode
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._app.WebSocketApp._parse_close_frame
    - <builtin>.int
    - _logger.debug
    - <builtin>.setattr
    - websocket._abnf.frame_buffer.recv_length
    - websocket._dispatcher.DispatcherBase.reconnect
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - <builtin>.filter
    - websocket._abnf.frame_buffer.__init__
    - websocket._abnf.ABNF.validate
    - base64.encodebytes
    - websocket._handshake.handshake
    - websocket._dispatcher.Dispatcher.read
    - sel.select
    - <builtin>.repr
    - websocket._core.WebSocket.shutdown
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - _socket.recv_line
    - threading.Event
    - websocket._core.WebSocket.close
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.dump
    - websocket._logging.trace
    - websocket._http.read_headers
    - <builtin>.float
    - <builtin>.len
    - websocket._abnf.frame_buffer.needs_header
    - _socket.recv_line.decode
    - wsaccel.xormask.XorMaskerSimple
    - headers.get
    - websocket._handshake._pack_hostname
    - cookie.items
    - _socket.getdefaulttimeout
    - subproto.lower
    - url.split
    - <builtin>.bool
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - _socket.send
    - result.encode
    - websocket._abnf.continuous_frame.validate
    - websocket._core.WebSocket.__init__
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._core.WebSocket.settimeout
    - wsaccel.utf8validator.Utf8Validator
    - reason.encode
    - data_received.decode
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - _socket.recv
    - headers.extend
    - x.strip
    - sel.close
    - _socket.sock_opt
    - <builtin>.min
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.bytes
    - payload.encode
    - hashlib.sha1
    - struct.pack
    - mask_key.encode
    - websocket._handshake.handshake_response.__init__
    - websocket._abnf.frame_buffer.recv_strict
    - resp_headers.get
    - options.pop
    - struct.unpack
    - _logger.isEnabledFor
    - <builtin>.getattr
    - headers.append
    - threading.Thread
    - websocket._app.WebSocketApp._callback
    - <builtin>.range
    - websocket._abnf.continuous_frame.extract
    - result.lower
    - websocket._abnf.ABNF.mask
    - websocket._app.WebSocketApp.run_forever.teardown
    - array.array
    - websocket._handshake._get_handshake_headers
    - websocket._abnf.ABNF.format
    - selectors.DefaultSelector
    - inspect.stack
    - websocket._abnf.frame_buffer.recv_header
    - host.endswith
    - websocket._utils._decode
    - key.lower
    - _HEADERS_TO_CHECK.items
    - data.encode
    - sock.pending
    - simple_cookie.values
    - reason_bytes.decode
    - websocket._abnf.ABNF.__str__
    - <builtin>.callable
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - time.sleep
    - threading.Lock
    - r.split
    - <builtin>.isinstance
    - reason_parts.append
    - websocket._logging.info
    - websocket._abnf.frame_buffer.needs_length
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._app.WebSocketApp._start_ping_thread
    - v.get
    - websocket._handshake._get_resp_headers
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.send_frame
    - options.get
    - websocket._logging.debug
    - <builtin>.chr
    - websocket._abnf.continuous_frame.__init__
    - http.cookies.SimpleCookie
    - _logger.error
    - websocket._core.WebSocket.recv_frame
    - websocket._logging.error
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.clear
    - websocket._core.WebSocket.recv
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._logging.warning
    - host.lower
    - _logger.info
    - _socket.recv_line.split
    - wsaccel.xormask.XorMaskerSimple.process
    - hmac.compare_digest
    - websocket._core.WebSocket.send_close
    - <builtin>.type
    - value.strip
    - websocket._dispatcher.WrappedDispatcher.timeout
    - domain.startswith
    - websocket._core.WebSocket.recv_data_frame
    - _logger.warning
    - websocket._app.WebSocketApp.run_forever.closed
    - websocket._http.proxy_info.__init__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.DispatcherBase.timeout
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - sock
    - read_callback
    - check_callback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 15
    functionLinenumber: 68
    functionName: websocket._dispatcher.Dispatcher.read
    functionSourceFile: websocket._dispatcher
    functionUses: 11
    functionsReached:
    - cookie.update
    - websocket._abnf.frame_buffer.needs_mask
    - base64.encodebytes.strip
    - websocket._logging.isEnabledForError
    - domain.lower
    - cookies.append
    - websocket._core.WebSocket._recv
    - s.lower
    - websocket._handshake._create_sec_websocket_key
    - header.items
    - sel.register
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    - websocket._dispatcher.DispatcherBase.send
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket.connect
    - websocket._handshake._validate
    - int.from_bytes
    - <builtin>.sum
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._core.WebSocket.pong
    - <builtin>.sorted
    - websocket._logging.isEnabledForTrace
    - time.time
    - data.decode
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._app.WebSocketApp._parse_close_frame
    - <builtin>.int
    - _logger.debug
    - <builtin>.setattr
    - websocket._dispatcher.DispatcherBase.reconnect
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - <builtin>.filter
    - websocket._abnf.frame_buffer.__init__
    - websocket._abnf.ABNF.validate
    - base64.encodebytes
    - websocket._handshake.handshake
    - websocket._dispatcher.Dispatcher.read
    - sel.select
    - <builtin>.repr
    - websocket._core.WebSocket.shutdown
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - _socket.recv_line
    - threading.Event
    - websocket._core.WebSocket.close
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.dump
    - websocket._logging.trace
    - websocket._http.read_headers
    - <builtin>.float
    - <builtin>.len
    - websocket._abnf.frame_buffer.needs_header
    - _socket.recv_line.decode
    - wsaccel.xormask.XorMaskerSimple
    - headers.get
    - websocket._handshake._pack_hostname
    - cookie.items
    - _socket.getdefaulttimeout
    - subproto.lower
    - url.split
    - <builtin>.bool
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - _socket.send
    - result.encode
    - websocket._abnf.continuous_frame.validate
    - websocket._core.WebSocket.__init__
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._core.WebSocket.settimeout
    - wsaccel.utf8validator.Utf8Validator
    - reason.encode
    - data_received.decode
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - _socket.recv
    - headers.extend
    - x.strip
    - sel.close
    - _socket.sock_opt
    - <builtin>.min
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.bytes
    - payload.encode
    - hashlib.sha1
    - struct.pack
    - mask_key.encode
    - websocket._handshake.handshake_response.__init__
    - websocket._abnf.frame_buffer.recv_strict
    - resp_headers.get
    - options.pop
    - struct.unpack
    - _logger.isEnabledFor
    - <builtin>.getattr
    - headers.append
    - threading.Thread
    - websocket._app.WebSocketApp._callback
    - <builtin>.range
    - websocket._abnf.continuous_frame.extract
    - result.lower
    - websocket._abnf.ABNF.mask
    - websocket._app.WebSocketApp.run_forever.teardown
    - array.array
    - websocket._handshake._get_handshake_headers
    - websocket._abnf.ABNF.format
    - selectors.DefaultSelector
    - inspect.stack
    - websocket._abnf.frame_buffer.recv_header
    - host.endswith
    - websocket._utils._decode
    - key.lower
    - _HEADERS_TO_CHECK.items
    - data.encode
    - sock.pending
    - simple_cookie.values
    - reason_bytes.decode
    - websocket._abnf.ABNF.__str__
    - <builtin>.callable
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - time.sleep
    - threading.Lock
    - r.split
    - reason_parts.append
    - <builtin>.isinstance
    - websocket._logging.info
    - websocket._abnf.frame_buffer.needs_length
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._app.WebSocketApp._start_ping_thread
    - v.get
    - websocket._handshake._get_resp_headers
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.send_frame
    - options.get
    - websocket._logging.debug
    - <builtin>.chr
    - websocket._abnf.continuous_frame.__init__
    - http.cookies.SimpleCookie
    - _logger.error
    - websocket._core.WebSocket.recv_frame
    - websocket._logging.error
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.clear
    - websocket._core.WebSocket.recv
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._logging.warning
    - host.lower
    - _logger.info
    - _socket.recv_line.split
    - wsaccel.xormask.XorMaskerSimple.process
    - hmac.compare_digest
    - <builtin>.type
    - websocket._core.WebSocket.send_close
    - value.strip
    - websocket._dispatcher.WrappedDispatcher.timeout
    - domain.startswith
    - websocket._core.WebSocket.recv_data_frame
    - websocket._app.WebSocketApp.run_forever.closed
    - websocket._http.proxy_info.__init__
    - _logger.warning
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.DispatcherBase.timeout
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 8
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f939bc1bdc0>
    - <ast.Constant object at 0x7f939bc1b910>
    argNames:
    - e
    - reconnecting
    - close_frame
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 555
    functionName: websocket._app.WebSocketApp.run_forever.handleDisconnect
    functionSourceFile: websocket._app
    functionUses: 11
    functionsReached:
    - cookie.update
    - websocket._abnf.frame_buffer.needs_mask
    - base64.encodebytes.strip
    - websocket._logging.isEnabledForError
    - domain.lower
    - cookies.append
    - websocket._core.WebSocket._recv
    - s.lower
    - websocket._handshake._create_sec_websocket_key
    - header.items
    - sel.register
    - websocket._dispatcher.DispatcherBase.send
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._utils._validate_utf8
    - websocket._core.WebSocket.connect
    - websocket._handshake._validate
    - int.from_bytes
    - <builtin>.sum
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._app.WebSocketApp.run_forever.check
    - <builtin>.sorted
    - websocket._core.WebSocket.pong
    - websocket._logging.isEnabledForTrace
    - time.time
    - data.decode
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._app.WebSocketApp._parse_close_frame
    - <builtin>.int
    - _logger.debug
    - websocket._dispatcher.DispatcherBase.reconnect
    - <builtin>.setattr
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._dispatcher.WrappedDispatcher.send
    - <builtin>.any
    - <builtin>.filter
    - websocket._abnf.frame_buffer.__init__
    - websocket._abnf.ABNF.validate
    - base64.encodebytes
    - websocket._handshake.handshake
    - websocket._dispatcher.Dispatcher.read
    - sel.select
    - <builtin>.repr
    - websocket._core.WebSocket.shutdown
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - _socket.recv_line
    - threading.Event
    - websocket._core.WebSocket.close
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.dump
    - websocket._logging.trace
    - websocket._http.read_headers
    - <builtin>.float
    - <builtin>.len
    - websocket._abnf.frame_buffer.needs_header
    - _socket.recv_line.decode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._handshake._pack_hostname
    - headers.get
    - cookie.items
    - _socket.getdefaulttimeout
    - subproto.lower
    - url.split
    - <builtin>.bool
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - _socket.send
    - result.encode
    - websocket._abnf.continuous_frame.validate
    - websocket._core.WebSocket.__init__
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._core.WebSocket.settimeout
    - wsaccel.utf8validator.Utf8Validator
    - reason.encode
    - data_received.decode
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - _socket.recv
    - headers.extend
    - x.strip
    - sel.close
    - _socket.sock_opt
    - <builtin>.min
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.bytes
    - payload.encode
    - hashlib.sha1
    - struct.pack
    - mask_key.encode
    - websocket._handshake.handshake_response.__init__
    - websocket._abnf.frame_buffer.recv_strict
    - resp_headers.get
    - options.pop
    - struct.unpack
    - _logger.isEnabledFor
    - <builtin>.getattr
    - headers.append
    - threading.Thread
    - websocket._app.WebSocketApp._callback
    - <builtin>.range
    - result.lower
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - websocket._app.WebSocketApp.run_forever.teardown
    - array.array
    - websocket._handshake._get_handshake_headers
    - websocket._abnf.ABNF.format
    - selectors.DefaultSelector
    - inspect.stack
    - websocket._abnf.frame_buffer.recv_header
    - host.endswith
    - websocket._utils._decode
    - key.lower
    - _HEADERS_TO_CHECK.items
    - data.encode
    - sock.pending
    - simple_cookie.values
    - reason_bytes.decode
    - websocket._abnf.ABNF.__str__
    - <builtin>.callable
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - time.sleep
    - threading.Lock
    - r.split
    - <builtin>.isinstance
    - reason_parts.append
    - websocket._logging.info
    - websocket._abnf.frame_buffer.needs_length
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._handshake._get_resp_headers
    - v.get
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.send_frame
    - options.get
    - websocket._logging.debug
    - <builtin>.chr
    - websocket._abnf.continuous_frame.__init__
    - http.cookies.SimpleCookie
    - _logger.error
    - websocket._core.WebSocket.recv_frame
    - websocket._logging.error
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.clear
    - websocket._core.WebSocket.recv
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._logging.warning
    - host.lower
    - _logger.info
    - _socket.recv_line.split
    - wsaccel.xormask.XorMaskerSimple.process
    - hmac.compare_digest
    - <builtin>.type
    - value.strip
    - websocket._core.WebSocket.send_close
    - domain.startswith
    - websocket._dispatcher.WrappedDispatcher.timeout
    - websocket._core.WebSocket.recv_data_frame
    - websocket._app.WebSocketApp.run_forever.closed
    - _logger.warning
    - websocket._http.proxy_info.__init__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.DispatcherBase.timeout
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 7
    IfCount: 8
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 458
    functionName: websocket._app.WebSocketApp.run_forever.read
    functionSourceFile: websocket._app
    functionUses: 11
    functionsReached:
    - cookie.update
    - websocket._abnf.frame_buffer.needs_mask
    - base64.encodebytes.strip
    - websocket._logging.isEnabledForError
    - domain.lower
    - cookies.append
    - websocket._core.WebSocket._recv
    - s.lower
    - websocket._handshake._create_sec_websocket_key
    - header.items
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    - sel.register
    - websocket._dispatcher.DispatcherBase.send
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket.connect
    - websocket._handshake._validate
    - int.from_bytes
    - <builtin>.sum
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._core.WebSocket.pong
    - <builtin>.sorted
    - websocket._logging.isEnabledForTrace
    - time.time
    - data.decode
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._app.WebSocketApp._parse_close_frame
    - <builtin>.int
    - _logger.debug
    - <builtin>.setattr
    - websocket._dispatcher.DispatcherBase.reconnect
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.any
    - <builtin>.filter
    - websocket._abnf.frame_buffer.__init__
    - websocket._abnf.ABNF.validate
    - base64.encodebytes
    - websocket._handshake.handshake
    - websocket._dispatcher.Dispatcher.read
    - sel.select
    - <builtin>.repr
    - websocket._core.WebSocket.shutdown
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - _socket.recv_line
    - threading.Event
    - websocket._core.WebSocket.close
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.dump
    - websocket._logging.trace
    - websocket._http.read_headers
    - <builtin>.float
    - <builtin>.len
    - websocket._abnf.frame_buffer.needs_header
    - _socket.recv_line.decode
    - wsaccel.xormask.XorMaskerSimple
    - headers.get
    - websocket._handshake._pack_hostname
    - cookie.items
    - _socket.getdefaulttimeout
    - subproto.lower
    - url.split
    - <builtin>.bool
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - _socket.send
    - result.encode
    - websocket._abnf.continuous_frame.validate
    - websocket._core.WebSocket.__init__
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._core.WebSocket.settimeout
    - wsaccel.utf8validator.Utf8Validator
    - reason.encode
    - data_received.decode
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - _socket.recv
    - headers.extend
    - x.strip
    - sel.close
    - _socket.sock_opt
    - <builtin>.min
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.bytes
    - payload.encode
    - hashlib.sha1
    - struct.pack
    - mask_key.encode
    - websocket._handshake.handshake_response.__init__
    - websocket._abnf.frame_buffer.recv_strict
    - resp_headers.get
    - options.pop
    - struct.unpack
    - _logger.isEnabledFor
    - <builtin>.getattr
    - headers.append
    - threading.Thread
    - websocket._app.WebSocketApp._callback
    - <builtin>.range
    - websocket._abnf.continuous_frame.extract
    - result.lower
    - websocket._abnf.ABNF.mask
    - websocket._app.WebSocketApp.run_forever.teardown
    - array.array
    - websocket._handshake._get_handshake_headers
    - websocket._abnf.ABNF.format
    - selectors.DefaultSelector
    - inspect.stack
    - websocket._abnf.frame_buffer.recv_header
    - host.endswith
    - websocket._utils._decode
    - key.lower
    - _HEADERS_TO_CHECK.items
    - data.encode
    - sock.pending
    - simple_cookie.values
    - reason_bytes.decode
    - websocket._abnf.ABNF.__str__
    - <builtin>.callable
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - time.sleep
    - threading.Lock
    - r.split
    - reason_parts.append
    - <builtin>.isinstance
    - websocket._logging.info
    - websocket._abnf.frame_buffer.needs_length
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._app.WebSocketApp._start_ping_thread
    - v.get
    - websocket._handshake._get_resp_headers
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.send_frame
    - options.get
    - websocket._logging.debug
    - <builtin>.chr
    - websocket._abnf.continuous_frame.__init__
    - http.cookies.SimpleCookie
    - _logger.error
    - websocket._core.WebSocket.recv_frame
    - websocket._logging.error
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.clear
    - websocket._core.WebSocket.recv
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._logging.warning
    - host.lower
    - _logger.info
    - _socket.recv_line.split
    - wsaccel.xormask.XorMaskerSimple.process
    - hmac.compare_digest
    - <builtin>.type
    - websocket._core.WebSocket.send_close
    - value.strip
    - websocket._dispatcher.WrappedDispatcher.timeout
    - domain.startswith
    - websocket._core.WebSocket.recv_data_frame
    - websocket._app.WebSocketApp.run_forever.closed
    - websocket._http.proxy_info.__init__
    - _logger.warning
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.DispatcherBase.timeout
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 7
    IfCount: 10
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f939b08aeb0>
    argNames:
    - self
    - control_frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 435
    functionName: websocket._core.WebSocket.recv_data_frame
    functionSourceFile: websocket._core
    functionUses: 27
    functionsReached:
    - <builtin>.repr
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - <builtin>.min
    - websocket._abnf.frame_buffer.needs_length
    - websocket._abnf.frame_buffer.has_mask
    - wsaccel.utf8validator.Utf8Validator.validate
    - <builtin>.bytes
    - payload.encode
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - websocket._dispatcher.DispatcherBase.send
    - <builtin>.chr
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._utils._validate_utf8
    - wsaccel.xormask.XorMaskerSimple
    - websocket._core.WebSocket.recv_frame
    - struct.unpack
    - int.from_bytes
    - websocket._abnf.frame_buffer.clear
    - <builtin>.sum
    - websocket._core.WebSocket.recv
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.pong
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - websocket._abnf.continuous_frame.validate
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.send_close
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.int
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    - _logger.debug
    - data.encode
    - websocket._abnf.frame_buffer.recv_length
    - reason.encode
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - data_received.decode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.ABNF.validate
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised:
    - WebSocketProtocolException
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 3
    IfCount: 6
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f939b2e65e0>
    argNames:
    - e
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 15
    functionLinenumber: 520
    functionName: websocket._app.WebSocketApp.run_forever.closed
    functionSourceFile: websocket._app
    functionUses: 11
    functionsReached:
    - cookie.update
    - websocket._abnf.frame_buffer.needs_mask
    - base64.encodebytes.strip
    - websocket._logging.isEnabledForError
    - domain.lower
    - cookies.append
    - websocket._core.WebSocket._recv
    - s.lower
    - websocket._handshake._create_sec_websocket_key
    - header.items
    - sel.register
    - websocket._dispatcher.DispatcherBase.send
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._utils._validate_utf8
    - websocket._core.WebSocket.connect
    - websocket._handshake._validate
    - int.from_bytes
    - <builtin>.sum
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._app.WebSocketApp.run_forever.check
    - <builtin>.sorted
    - websocket._core.WebSocket.pong
    - websocket._logging.isEnabledForTrace
    - time.time
    - data.decode
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._app.WebSocketApp._parse_close_frame
    - <builtin>.int
    - _logger.debug
    - <builtin>.setattr
    - websocket._dispatcher.DispatcherBase.reconnect
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._dispatcher.WrappedDispatcher.send
    - <builtin>.any
    - <builtin>.filter
    - websocket._abnf.frame_buffer.__init__
    - websocket._abnf.ABNF.validate
    - base64.encodebytes
    - websocket._handshake.handshake
    - websocket._dispatcher.Dispatcher.read
    - sel.select
    - <builtin>.repr
    - websocket._core.WebSocket.shutdown
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - _socket.recv_line
    - threading.Event
    - websocket._core.WebSocket.close
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.dump
    - websocket._logging.trace
    - websocket._http.read_headers
    - <builtin>.float
    - <builtin>.len
    - websocket._abnf.frame_buffer.needs_header
    - _socket.recv_line.decode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._handshake._pack_hostname
    - headers.get
    - cookie.items
    - _socket.getdefaulttimeout
    - subproto.lower
    - url.split
    - <builtin>.bool
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - _socket.send
    - result.encode
    - websocket._abnf.continuous_frame.validate
    - websocket._core.WebSocket.__init__
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._core.WebSocket.settimeout
    - wsaccel.utf8validator.Utf8Validator
    - reason.encode
    - data_received.decode
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - _socket.recv
    - headers.extend
    - x.strip
    - sel.close
    - _socket.sock_opt
    - <builtin>.min
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.bytes
    - payload.encode
    - hashlib.sha1
    - struct.pack
    - mask_key.encode
    - websocket._handshake.handshake_response.__init__
    - websocket._abnf.frame_buffer.recv_strict
    - resp_headers.get
    - options.pop
    - struct.unpack
    - _logger.isEnabledFor
    - <builtin>.getattr
    - headers.append
    - threading.Thread
    - websocket._app.WebSocketApp._callback
    - <builtin>.range
    - result.lower
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - websocket._app.WebSocketApp.run_forever.teardown
    - array.array
    - websocket._handshake._get_handshake_headers
    - websocket._abnf.ABNF.format
    - selectors.DefaultSelector
    - inspect.stack
    - websocket._abnf.frame_buffer.recv_header
    - host.endswith
    - websocket._utils._decode
    - key.lower
    - _HEADERS_TO_CHECK.items
    - data.encode
    - sock.pending
    - simple_cookie.values
    - reason_bytes.decode
    - websocket._abnf.ABNF.__str__
    - <builtin>.callable
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - time.sleep
    - threading.Lock
    - r.split
    - reason_parts.append
    - <builtin>.isinstance
    - websocket._logging.info
    - websocket._abnf.frame_buffer.needs_length
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._handshake._get_resp_headers
    - v.get
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.send_frame
    - options.get
    - websocket._logging.debug
    - <builtin>.chr
    - websocket._abnf.continuous_frame.__init__
    - http.cookies.SimpleCookie
    - _logger.error
    - websocket._core.WebSocket.recv_frame
    - websocket._logging.error
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.clear
    - websocket._core.WebSocket.recv
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._logging.warning
    - host.lower
    - _logger.info
    - _socket.recv_line.split
    - wsaccel.xormask.XorMaskerSimple.process
    - hmac.compare_digest
    - <builtin>.type
    - value.strip
    - websocket._core.WebSocket.send_close
    - domain.startswith
    - websocket._dispatcher.WrappedDispatcher.timeout
    - websocket._core.WebSocket.recv_data_frame
    - websocket._app.WebSocketApp.run_forever.closed
    - _logger.warning
    - websocket._http.proxy_info.__init__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.DispatcherBase.timeout
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data.decode
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 497
    functionName: websocket._app.WebSocketApp.run_forever.check
    functionSourceFile: websocket._app
    functionUses: 12
    functionsReached:
    - time.time
    linkageType: pythonLinkage
    raised:
    - WebSocketTimeoutException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.type
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - close_frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 642
    functionName: websocket._app.WebSocketApp._parse_close_frame
    functionSourceFile: websocket._app
    functionUses: 14
    functionsReached:
    - <builtin>.len
    - data.encode
    - <builtin>.isinstance
    - <builtin>.bytes
    - reason_bytes.decode
    - <builtin>.getattr
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: reason_parts.append
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.setattr
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.bool
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inspect.stack
    functionSourceFile: inspect
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - seconds
    - reconnector
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 17
    functionLinenumber: 48
    functionName: websocket._dispatcher.DispatcherBase.reconnect
    functionSourceFile: websocket._dispatcher
    functionUses: 11
    functionsReached:
    - cookie.update
    - websocket._abnf.frame_buffer.needs_mask
    - base64.encodebytes.strip
    - websocket._logging.isEnabledForError
    - domain.lower
    - cookies.append
    - websocket._core.WebSocket._recv
    - s.lower
    - websocket._handshake._create_sec_websocket_key
    - header.items
    - sel.register
    - websocket._dispatcher.DispatcherBase.send
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket.connect
    - websocket._handshake._validate
    - int.from_bytes
    - <builtin>.sum
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._core.WebSocket.pong
    - <builtin>.sorted
    - websocket._logging.isEnabledForTrace
    - time.time
    - data.decode
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._app.WebSocketApp._parse_close_frame
    - <builtin>.int
    - _logger.debug
    - websocket._dispatcher.DispatcherBase.reconnect
    - <builtin>.setattr
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._dispatcher.WrappedDispatcher.send
    - <builtin>.filter
    - <builtin>.any
    - websocket._abnf.frame_buffer.__init__
    - websocket._abnf.ABNF.validate
    - base64.encodebytes
    - websocket._handshake.handshake
    - websocket._dispatcher.Dispatcher.read
    - sel.select
    - websocket._core.WebSocket.shutdown
    - <builtin>.repr
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - _socket.recv_line
    - threading.Event
    - websocket._core.WebSocket.close
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.dump
    - websocket._logging.trace
    - websocket._http.read_headers
    - <builtin>.float
    - <builtin>.len
    - websocket._abnf.frame_buffer.needs_header
    - _socket.recv_line.decode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._handshake._pack_hostname
    - headers.get
    - cookie.items
    - _socket.getdefaulttimeout
    - subproto.lower
    - url.split
    - <builtin>.bool
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - _socket.send
    - result.encode
    - websocket._abnf.continuous_frame.validate
    - websocket._core.WebSocket.__init__
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._core.WebSocket.settimeout
    - wsaccel.utf8validator.Utf8Validator
    - reason.encode
    - data_received.decode
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - _socket.recv
    - headers.extend
    - x.strip
    - sel.close
    - _socket.sock_opt
    - <builtin>.min
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.bytes
    - payload.encode
    - hashlib.sha1
    - struct.pack
    - mask_key.encode
    - websocket._handshake.handshake_response.__init__
    - websocket._abnf.frame_buffer.recv_strict
    - resp_headers.get
    - options.pop
    - struct.unpack
    - _logger.isEnabledFor
    - <builtin>.getattr
    - headers.append
    - threading.Thread
    - websocket._app.WebSocketApp._callback
    - <builtin>.range
    - websocket._abnf.continuous_frame.extract
    - result.lower
    - websocket._abnf.ABNF.mask
    - websocket._app.WebSocketApp.run_forever.teardown
    - array.array
    - websocket._handshake._get_handshake_headers
    - websocket._abnf.ABNF.format
    - selectors.DefaultSelector
    - inspect.stack
    - websocket._abnf.frame_buffer.recv_header
    - host.endswith
    - websocket._utils._decode
    - key.lower
    - _HEADERS_TO_CHECK.items
    - data.encode
    - sock.pending
    - simple_cookie.values
    - reason_bytes.decode
    - websocket._abnf.ABNF.__str__
    - <builtin>.callable
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - time.sleep
    - threading.Lock
    - r.split
    - <builtin>.isinstance
    - reason_parts.append
    - websocket._logging.info
    - websocket._abnf.frame_buffer.needs_length
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._handshake._get_resp_headers
    - v.get
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.send_frame
    - options.get
    - websocket._logging.debug
    - websocket._abnf.continuous_frame.__init__
    - <builtin>.chr
    - http.cookies.SimpleCookie
    - _logger.error
    - websocket._core.WebSocket.recv_frame
    - websocket._logging.error
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.clear
    - websocket._core.WebSocket.recv
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._logging.warning
    - host.lower
    - _logger.info
    - _socket.recv_line.split
    - wsaccel.xormask.XorMaskerSimple.process
    - hmac.compare_digest
    - websocket._core.WebSocket.send_close
    - <builtin>.type
    - value.strip
    - websocket._dispatcher.WrappedDispatcher.timeout
    - domain.startswith
    - websocket._core.WebSocket.recv_data_frame
    - _logger.warning
    - websocket._app.WebSocketApp.run_forever.closed
    - websocket._http.proxy_info.__init__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.DispatcherBase.timeout
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - seconds
    - reconnector
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 19
    functionLinenumber: 164
    functionName: websocket._dispatcher.WrappedDispatcher.reconnect
    functionSourceFile: websocket._dispatcher
    functionUses: 11
    functionsReached:
    - cookie.update
    - websocket._abnf.frame_buffer.needs_mask
    - base64.encodebytes.strip
    - websocket._logging.isEnabledForError
    - domain.lower
    - cookies.append
    - websocket._core.WebSocket._recv
    - s.lower
    - websocket._handshake._create_sec_websocket_key
    - header.items
    - sel.register
    - websocket._dispatcher.DispatcherBase.send
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket.connect
    - websocket._handshake._validate
    - int.from_bytes
    - <builtin>.sum
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._core.WebSocket.pong
    - <builtin>.sorted
    - websocket._logging.isEnabledForTrace
    - time.time
    - data.decode
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._app.WebSocketApp._parse_close_frame
    - <builtin>.int
    - _logger.debug
    - websocket._dispatcher.DispatcherBase.reconnect
    - <builtin>.setattr
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._dispatcher.WrappedDispatcher.send
    - <builtin>.filter
    - <builtin>.any
    - websocket._abnf.frame_buffer.__init__
    - websocket._abnf.ABNF.validate
    - base64.encodebytes
    - websocket._handshake.handshake
    - websocket._dispatcher.Dispatcher.read
    - sel.select
    - websocket._core.WebSocket.shutdown
    - <builtin>.repr
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - _socket.recv_line
    - threading.Event
    - websocket._core.WebSocket.close
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.dump
    - websocket._logging.trace
    - websocket._http.read_headers
    - <builtin>.float
    - <builtin>.len
    - websocket._abnf.frame_buffer.needs_header
    - _socket.recv_line.decode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._handshake._pack_hostname
    - headers.get
    - cookie.items
    - _socket.getdefaulttimeout
    - subproto.lower
    - url.split
    - <builtin>.bool
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - _socket.send
    - result.encode
    - websocket._abnf.continuous_frame.validate
    - websocket._core.WebSocket.__init__
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._core.WebSocket.settimeout
    - wsaccel.utf8validator.Utf8Validator
    - reason.encode
    - data_received.decode
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - _socket.recv
    - headers.extend
    - x.strip
    - sel.close
    - _socket.sock_opt
    - <builtin>.min
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.bytes
    - payload.encode
    - hashlib.sha1
    - struct.pack
    - mask_key.encode
    - websocket._handshake.handshake_response.__init__
    - websocket._abnf.frame_buffer.recv_strict
    - resp_headers.get
    - options.pop
    - struct.unpack
    - _logger.isEnabledFor
    - <builtin>.getattr
    - headers.append
    - threading.Thread
    - websocket._app.WebSocketApp._callback
    - <builtin>.range
    - websocket._abnf.continuous_frame.extract
    - result.lower
    - websocket._abnf.ABNF.mask
    - websocket._app.WebSocketApp.run_forever.teardown
    - array.array
    - websocket._handshake._get_handshake_headers
    - websocket._abnf.ABNF.format
    - selectors.DefaultSelector
    - inspect.stack
    - websocket._abnf.frame_buffer.recv_header
    - host.endswith
    - websocket._utils._decode
    - key.lower
    - _HEADERS_TO_CHECK.items
    - data.encode
    - sock.pending
    - simple_cookie.values
    - reason_bytes.decode
    - websocket._abnf.ABNF.__str__
    - <builtin>.callable
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - time.sleep
    - threading.Lock
    - r.split
    - <builtin>.isinstance
    - reason_parts.append
    - websocket._logging.info
    - websocket._abnf.frame_buffer.needs_length
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._handshake._get_resp_headers
    - v.get
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.send_frame
    - options.get
    - websocket._logging.debug
    - websocket._abnf.continuous_frame.__init__
    - <builtin>.chr
    - http.cookies.SimpleCookie
    - _logger.error
    - websocket._core.WebSocket.recv_frame
    - websocket._logging.error
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.clear
    - websocket._core.WebSocket.recv
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._logging.warning
    - host.lower
    - _logger.info
    - _socket.recv_line.split
    - wsaccel.xormask.XorMaskerSimple.process
    - hmac.compare_digest
    - websocket._core.WebSocket.send_close
    - <builtin>.type
    - value.strip
    - websocket._dispatcher.WrappedDispatcher.timeout
    - domain.startswith
    - websocket._core.WebSocket.recv_data_frame
    - _logger.warning
    - websocket._app.WebSocketApp.run_forever.closed
    - websocket._http.proxy_info.__init__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.DispatcherBase.timeout
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 91
    functionName: websocket._logging.error
    functionSourceFile: websocket._logging
    functionUses: 19
    functionsReached:
    - _logger.error
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f939b1da730>
    - <ast.Constant object at 0x7f939b1da310>
    - <ast.Constant object at 0x7f939b1da9a0>
    argNames:
    - self
    - ping_timeout
    - dispatcher
    - is_ssl
    - handleDisconnect
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 612
    functionName: websocket._app.WebSocketApp.create_dispatcher
    functionSourceFile: websocket._app
    functionUses: 1
    functionsReached:
    - websocket._dispatcher.WrappedDispatcher.__init__
    - websocket._dispatcher.DispatcherBase.__init__
    - dispatcher.signal
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - app
    - ping_timeout
    - dispatcher
    - handleDisconnect
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 134
    functionName: websocket._dispatcher.WrappedDispatcher.__init__
    functionSourceFile: websocket._dispatcher
    functionUses: 2
    functionsReached:
    - dispatcher.signal
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - app
    - ping_timeout
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 37
    functionName: websocket._dispatcher.DispatcherBase.__init__
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data.encode
    functionSourceFile: <builtin>
    functionUses: 48
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.bytes
    functionSourceFile: <builtin>
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: reason_bytes.decode
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._core
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _socket.sock_opt
    functionSourceFile: _socket
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - recv_fn
    - skip_utf8_validation
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 309
    functionName: websocket._abnf.frame_buffer.__init__
    functionSourceFile: websocket._abnf
    functionUses: 14
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - threading.Lock
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - fire_cont_frame
    - skip_utf8_validation
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 437
    functionName: websocket._abnf.continuous_frame.__init__
    functionSourceFile: ''
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 121
    functionName: websocket._core.WebSocket.__iter__
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - <builtin>.repr
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - <builtin>.min
    - websocket._abnf.frame_buffer.needs_length
    - websocket._abnf.frame_buffer.has_mask
    - wsaccel.utf8validator.Utf8Validator.validate
    - <builtin>.bytes
    - payload.encode
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - websocket._dispatcher.DispatcherBase.send
    - <builtin>.chr
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._utils._validate_utf8
    - wsaccel.xormask.XorMaskerSimple
    - websocket._core.WebSocket.recv_frame
    - struct.unpack
    - int.from_bytes
    - websocket._abnf.frame_buffer.clear
    - websocket._core.WebSocket.recv
    - <builtin>.sum
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.pong
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - websocket._abnf.continuous_frame.validate
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.send_close
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.int
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    - _logger.debug
    - data.encode
    - websocket._abnf.frame_buffer.recv_length
    - reason.encode
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - data_received.decode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.ABNF.validate
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 395
    functionName: websocket._core.WebSocket.recv
    functionSourceFile: websocket._core
    functionUses: 27
    functionsReached:
    - <builtin>.repr
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - <builtin>.min
    - websocket._abnf.frame_buffer.needs_length
    - websocket._abnf.frame_buffer.has_mask
    - wsaccel.utf8validator.Utf8Validator.validate
    - <builtin>.bytes
    - payload.encode
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - websocket._dispatcher.DispatcherBase.send
    - <builtin>.chr
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._utils._validate_utf8
    - wsaccel.xormask.XorMaskerSimple
    - websocket._core.WebSocket.recv_frame
    - struct.unpack
    - int.from_bytes
    - websocket._abnf.frame_buffer.clear
    - <builtin>.sum
    - websocket._core.WebSocket.recv
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.pong
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - websocket._abnf.continuous_frame.validate
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.send_close
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.int
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    - _logger.debug
    - data.encode
    - websocket._abnf.frame_buffer.recv_length
    - reason.encode
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - data_received.decode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.ABNF.validate
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 128
    functionName: websocket._core.WebSocket.__next__
    functionSourceFile: websocket._core
    functionUses: 1
    functionsReached:
    - <builtin>.repr
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - <builtin>.min
    - websocket._abnf.frame_buffer.needs_length
    - websocket._abnf.frame_buffer.has_mask
    - wsaccel.utf8validator.Utf8Validator.validate
    - <builtin>.bytes
    - payload.encode
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - websocket._dispatcher.DispatcherBase.send
    - <builtin>.chr
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._utils._validate_utf8
    - wsaccel.xormask.XorMaskerSimple
    - websocket._core.WebSocket.recv_frame
    - struct.unpack
    - int.from_bytes
    - websocket._abnf.frame_buffer.clear
    - websocket._core.WebSocket.recv
    - <builtin>.sum
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.pong
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - websocket._abnf.continuous_frame.validate
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.send_close
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.int
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    - _logger.debug
    - data.encode
    - websocket._abnf.frame_buffer.recv_length
    - reason.encode
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - data_received.decode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.ABNF.validate
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 131
    functionName: websocket._core.WebSocket.next
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - <builtin>.repr
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - <builtin>.min
    - websocket._abnf.frame_buffer.needs_length
    - websocket._abnf.frame_buffer.has_mask
    - wsaccel.utf8validator.Utf8Validator.validate
    - <builtin>.bytes
    - payload.encode
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - websocket._dispatcher.DispatcherBase.send
    - <builtin>.chr
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._utils._validate_utf8
    - wsaccel.xormask.XorMaskerSimple
    - websocket._core.WebSocket.recv_frame
    - struct.unpack
    - int.from_bytes
    - websocket._abnf.frame_buffer.clear
    - websocket._core.WebSocket.recv
    - <builtin>.sum
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.pong
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - websocket._abnf.continuous_frame.validate
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.send_close
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.int
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    - _logger.debug
    - data.encode
    - websocket._abnf.frame_buffer.recv_length
    - reason.encode
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - data_received.decode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.ABNF.validate
    - websocket._core.WebSocket.__next__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 134
    functionName: websocket._core.WebSocket.fileno
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - WebSocketException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - func
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 139
    functionName: websocket._core.WebSocket.set_mask_key
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 154
    functionName: websocket._core.WebSocket.gettimeout
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.property
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: websocket._core.WebSocket
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - <builtin>.property
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 180
    functionName: websocket._core.WebSocket.getsubprotocol
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 191
    functionName: websocket._core.WebSocket.getstatus
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 202
    functionName: websocket._core.WebSocket.getheaders
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 211
    functionName: websocket._core.WebSocket.is_ssl
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: options.pop
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 6
    argDefaultValues: []
    argNames:
    - sock
    - url
    - hostname
    - port
    - resource
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 59
    functionName: websocket._handshake.handshake
    functionSourceFile: websocket._handshake
    functionUses: 13
    functionsReached:
    - cookie.update
    - headers.extend
    - x.strip
    - r.split
    - <builtin>.isinstance
    - <builtin>.min
    - _socket.recv_line
    - base64.encodebytes.strip
    - domain.lower
    - v.get
    - websocket._cookiejar.SimpleCookieJar.add
    - cookies.append
    - websocket._handshake._get_resp_headers
    - s.lower
    - websocket._handshake._create_sec_websocket_key
    - options.get
    - header.items
    - hashlib.sha1
    - websocket._logging.dump
    - websocket._http.read_headers
    - websocket._logging.trace
    - websocket._handshake.handshake_response.__init__
    - http.cookies.SimpleCookie
    - <builtin>.len
    - resp_headers.get
    - _socket.recv_line.decode
    - websocket._handshake._pack_hostname
    - headers.get
    - _logger.error
    - cookie.items
    - websocket._logging.error
    - websocket._handshake._validate
    - subproto.lower
    - url.split
    - headers.append
    - host.lower
    - _socket.recv_line.split
    - <builtin>.sorted
    - _socket.send
    - result.lower
    - result.encode
    - hmac.compare_digest
    - websocket._handshake._get_handshake_headers
    - value.strip
    - websocket._cookiejar.SimpleCookieJar.get
    - host.endswith
    - <builtin>.int
    - key.lower
    - _HEADERS_TO_CHECK.items
    - _logger.debug
    - domain.startswith
    - <builtin>.filter
    - simple_cookie.values
    - os.urandom
    - base64.encodebytes.decode
    - base64.encodebytes
    - _socket.recv
    linkageType: pythonLinkage
    raised:
    - WebSocketException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.range
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f939b08a430>
    argNames:
    - data
    - opcode
    - fin
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 218
    functionName: websocket._abnf.ABNF.create_frame
    functionSourceFile: websocket._abnf
    functionUses: 41
    functionsReached:
    - data.encode
    - <builtin>.isinstance
    - websocket._abnf.ABNF.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 327
    functionName: websocket._core.WebSocket.send_frame
    functionSourceFile: websocket._core
    functionUses: 40
    functionsReached:
    - <builtin>.repr
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - websocket._dispatcher.DispatcherBase.send
    - <builtin>.chr
    - wsaccel.xormask.XorMaskerSimple
    - int.from_bytes
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.format
    - _logger.debug
    - data.encode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.ABNF.__str__
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 315
    functionName: websocket._core.WebSocket.send_text
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - <builtin>.repr
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - <builtin>.chr
    - websocket._dispatcher.DispatcherBase.send
    - wsaccel.xormask.XorMaskerSimple
    - int.from_bytes
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.format
    - _logger.debug
    - data.encode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.ABNF.__str__
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 321
    functionName: websocket._core.WebSocket.send_bytes
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - <builtin>.repr
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - <builtin>.chr
    - websocket._dispatcher.DispatcherBase.send
    - wsaccel.xormask.XorMaskerSimple
    - int.from_bytes
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.format
    - _logger.debug
    - data.encode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.ABNF.__str__
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 238
    functionName: websocket._abnf.ABNF.format
    functionSourceFile: websocket._abnf
    functionUses: 41
    functionsReached:
    - websocket._abnf._mask
    - struct.pack
    - mask_key.encode
    - <builtin>.chr
    - <builtin>.len
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.mask
    - data.encode
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.any
    - os.urandom
    - array.array
    - int.from_bytes
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 120
    functionName: websocket._logging.isEnabledForTrace
    functionSourceFile: ''
    functionUses: 41
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.repr
    functionSourceFile: <builtin>
    functionUses: 43
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 213
    functionName: websocket._abnf.ABNF.__str__
    functionSourceFile: websocket._abnf
    functionUses: 41
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 612
    functionName: websocket._core.WebSocket._send
    functionSourceFile: websocket._core
    functionUses: 40
    functionsReached:
    - <builtin>.repr
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - websocket._dispatcher.DispatcherBase.send
    - <builtin>.len
    - <builtin>.chr
    - wsaccel.xormask.XorMaskerSimple
    - int.from_bytes
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.format
    - _logger.debug
    - data.encode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.ABNF.__str__
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised:
    - WebSocketConnectionClosedException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - payload
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 358
    functionName: websocket._core.WebSocket.send_binary
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - <builtin>.repr
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - <builtin>.chr
    - websocket._dispatcher.DispatcherBase.send
    - wsaccel.xormask.XorMaskerSimple
    - int.from_bytes
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.format
    - _logger.debug
    - data.encode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.ABNF.__str__
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: payload.encode
    functionSourceFile: <builtin>
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f939b126fd0>
    argNames:
    - self
    - payload
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 382
    functionName: websocket._core.WebSocket.pong
    functionSourceFile: websocket._core
    functionUses: 28
    functionsReached:
    - <builtin>.repr
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - payload.encode
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - <builtin>.chr
    - websocket._dispatcher.DispatcherBase.send
    - wsaccel.xormask.XorMaskerSimple
    - int.from_bytes
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.format
    - _logger.debug
    - data.encode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.ABNF.__str__
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f939b7f3ac0>
    argNames:
    - self
    - control_frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 417
    functionName: websocket._core.WebSocket.recv_data
    functionSourceFile: websocket._core
    functionUses: 27
    functionsReached:
    - <builtin>.repr
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - <builtin>.min
    - websocket._abnf.frame_buffer.needs_length
    - websocket._abnf.frame_buffer.has_mask
    - wsaccel.utf8validator.Utf8Validator.validate
    - <builtin>.bytes
    - payload.encode
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - websocket._dispatcher.DispatcherBase.send
    - <builtin>.chr
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._utils._validate_utf8
    - wsaccel.xormask.XorMaskerSimple
    - websocket._core.WebSocket.recv_frame
    - struct.unpack
    - int.from_bytes
    - websocket._abnf.frame_buffer.clear
    - <builtin>.sum
    - websocket._core.WebSocket.recv
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.pong
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - websocket._abnf.continuous_frame.validate
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.send_close
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.int
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    - _logger.debug
    - data.encode
    - websocket._abnf.frame_buffer.recv_length
    - reason.encode
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - data_received.decode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.ABNF.validate
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data_received.decode
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 486
    functionName: websocket._core.WebSocket.recv_frame
    functionSourceFile: websocket._core
    functionUses: 27
    functionsReached:
    - <builtin>.repr
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - <builtin>.min
    - websocket._abnf.frame_buffer.needs_length
    - websocket._abnf.frame_buffer.has_mask
    - wsaccel.utf8validator.Utf8Validator.validate
    - <builtin>.bytes
    - payload.encode
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - mask_key.encode
    - struct.pack
    - <builtin>.len
    - websocket._dispatcher.DispatcherBase.send
    - <builtin>.chr
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._utils._validate_utf8
    - wsaccel.xormask.XorMaskerSimple
    - websocket._core.WebSocket.recv_frame
    - struct.unpack
    - int.from_bytes
    - websocket._abnf.frame_buffer.clear
    - websocket._core.WebSocket.recv
    - <builtin>.sum
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.pong
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - websocket._abnf.continuous_frame.validate
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.send_close
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.int
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    - _logger.debug
    - data.encode
    - websocket._abnf.frame_buffer.recv_length
    - reason.encode
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - data_received.decode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.ABNF.validate
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 443
    functionName: websocket._abnf.continuous_frame.validate
    functionSourceFile: ''
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - WebSocketProtocolException
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 452
    functionName: websocket._abnf.continuous_frame.add
    functionSourceFile: ''
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 463
    functionName: websocket._abnf.continuous_frame.is_fire
    functionSourceFile: ''
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 466
    functionName: websocket._abnf.continuous_frame.extract
    functionSourceFile: websocket._abnf
    functionUses: 28
    functionsReached:
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    - websocket._utils._validate_utf8
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._utils.validate_utf8
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - WebSocketProtocolException
    - WebSocketPayloadException
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f939b122f40>
    - <ast.Constant object at 0x7f939b122b20>
    argNames:
    - self
    - status
    - reason
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 496
    functionName: websocket._core.WebSocket.send_close
    functionSourceFile: websocket._core
    functionUses: 28
    functionsReached:
    - <builtin>.repr
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - <builtin>.bytes
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - <builtin>.chr
    - websocket._dispatcher.DispatcherBase.send
    - wsaccel.xormask.XorMaskerSimple
    - int.from_bytes
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.ABNF.format
    - _logger.debug
    - data.encode
    - reason.encode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.ABNF.__str__
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 5
    IfCount: 7
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 371
    functionName: websocket._abnf.frame_buffer.recv_frame
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached:
    - <builtin>.repr
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - <builtin>.min
    - websocket._abnf.frame_buffer.needs_length
    - websocket._abnf.frame_buffer.has_mask
    - wsaccel.utf8validator.Utf8Validator.validate
    - <builtin>.bytes
    - payload.encode
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - mask_key.encode
    - struct.pack
    - <builtin>.len
    - websocket._dispatcher.DispatcherBase.send
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._utils._validate_utf8
    - wsaccel.xormask.XorMaskerSimple
    - websocket._core.WebSocket.recv_frame
    - struct.unpack
    - int.from_bytes
    - websocket._abnf.frame_buffer.clear
    - websocket._core.WebSocket.recv
    - <builtin>.sum
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.pong
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - websocket._abnf.continuous_frame.validate
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.send_close
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.int
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    - _logger.debug
    - data.encode
    - websocket._abnf.frame_buffer.recv_length
    - reason.encode
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - data_received.decode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.ABNF.validate
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised:
    - WebSocketProtocolException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: reason.encode
    functionSourceFile: <builtin>
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: struct.pack
    functionSourceFile: struct
    functionUses: 42
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 112
    functionName: websocket._logging.isEnabledForError
    functionSourceFile: websocket._logging
    functionUses: 15
    functionsReached:
    - _logger.isEnabledFor
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: struct.unpack
    functionSourceFile: struct
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 587
    functionName: websocket._core.WebSocket.abort
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sock
    - data
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 59
    functionName: websocket._dispatcher.DispatcherBase.send
    functionSourceFile: websocket._dispatcher
    functionUses: 41
    functionsReached:
    - websocket._dispatcher.DispatcherBase.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sock
    - data
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 157
    functionName: websocket._dispatcher.WrappedDispatcher.send
    functionSourceFile: websocket._dispatcher
    functionUses: 41
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - bufsize
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 619
    functionName: websocket._core.WebSocket._recv
    functionSourceFile: websocket._core
    functionUses: 27
    functionsReached:
    - <builtin>.repr
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - <builtin>.min
    - websocket._abnf.frame_buffer.needs_length
    - websocket._abnf.frame_buffer.has_mask
    - wsaccel.utf8validator.Utf8Validator.validate
    - <builtin>.bytes
    - payload.encode
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - websocket._dispatcher.DispatcherBase.send
    - <builtin>.chr
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._utils._validate_utf8
    - wsaccel.xormask.XorMaskerSimple
    - websocket._core.WebSocket.recv_frame
    - struct.unpack
    - int.from_bytes
    - websocket._abnf.frame_buffer.clear
    - websocket._core.WebSocket.recv
    - <builtin>.sum
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.pong
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - websocket._abnf.continuous_frame.validate
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.send_close
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.int
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    - _logger.debug
    - data.encode
    - websocket._abnf.frame_buffer.recv_length
    - reason.encode
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - data_received.decode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.ABNF.validate
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised:
    - WebSocketConnectionClosedException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f939ba048e0>
    - <ast.Name object at 0x7f939ba04b20>
    argNames:
    - url
    - timeout
    - class_
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 632
    functionName: websocket._core.create_connection
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - websock.connect
    - threading.Lock
    - websocket._abnf.continuous_frame.__init__
    - _socket.sock_opt
    - websock.settimeout
    - websocket._abnf.frame_buffer.__init__
    - websocket._core.WebSocket.__init__
    - options.pop
    - _socket.getdefaulttimeout
    - websocket._abnf.frame_buffer.clear
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websock.settimeout
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websock.connect
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._dispatcher
    functionSourceFile: websocket._dispatcher
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - seconds
    - callback
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 17
    functionLinenumber: 43
    functionName: websocket._dispatcher.DispatcherBase.timeout
    functionSourceFile: websocket._dispatcher
    functionUses: 11
    functionsReached:
    - cookie.update
    - websocket._abnf.frame_buffer.needs_mask
    - base64.encodebytes.strip
    - websocket._logging.isEnabledForError
    - domain.lower
    - cookies.append
    - websocket._core.WebSocket._recv
    - s.lower
    - websocket._handshake._create_sec_websocket_key
    - header.items
    - sel.register
    - websocket._dispatcher.DispatcherBase.send
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket.connect
    - websocket._handshake._validate
    - int.from_bytes
    - <builtin>.sum
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._core.WebSocket.pong
    - <builtin>.sorted
    - websocket._logging.isEnabledForTrace
    - time.time
    - data.decode
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._app.WebSocketApp._parse_close_frame
    - <builtin>.int
    - _logger.debug
    - websocket._dispatcher.DispatcherBase.reconnect
    - <builtin>.setattr
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._dispatcher.WrappedDispatcher.send
    - <builtin>.filter
    - <builtin>.any
    - websocket._abnf.frame_buffer.__init__
    - websocket._abnf.ABNF.validate
    - base64.encodebytes
    - websocket._handshake.handshake
    - websocket._dispatcher.Dispatcher.read
    - sel.select
    - websocket._core.WebSocket.shutdown
    - <builtin>.repr
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - _socket.recv_line
    - threading.Event
    - websocket._core.WebSocket.close
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.dump
    - websocket._logging.trace
    - websocket._http.read_headers
    - <builtin>.float
    - <builtin>.len
    - websocket._abnf.frame_buffer.needs_header
    - _socket.recv_line.decode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._handshake._pack_hostname
    - headers.get
    - cookie.items
    - _socket.getdefaulttimeout
    - subproto.lower
    - url.split
    - <builtin>.bool
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - _socket.send
    - result.encode
    - websocket._abnf.continuous_frame.validate
    - websocket._core.WebSocket.__init__
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._core.WebSocket.settimeout
    - wsaccel.utf8validator.Utf8Validator
    - reason.encode
    - data_received.decode
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - _socket.recv
    - headers.extend
    - x.strip
    - sel.close
    - _socket.sock_opt
    - <builtin>.min
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.bytes
    - payload.encode
    - hashlib.sha1
    - struct.pack
    - mask_key.encode
    - websocket._handshake.handshake_response.__init__
    - websocket._abnf.frame_buffer.recv_strict
    - resp_headers.get
    - options.pop
    - struct.unpack
    - _logger.isEnabledFor
    - <builtin>.getattr
    - headers.append
    - threading.Thread
    - websocket._app.WebSocketApp._callback
    - <builtin>.range
    - websocket._abnf.continuous_frame.extract
    - result.lower
    - websocket._abnf.ABNF.mask
    - websocket._app.WebSocketApp.run_forever.teardown
    - array.array
    - websocket._handshake._get_handshake_headers
    - websocket._abnf.ABNF.format
    - selectors.DefaultSelector
    - inspect.stack
    - websocket._abnf.frame_buffer.recv_header
    - host.endswith
    - websocket._utils._decode
    - key.lower
    - _HEADERS_TO_CHECK.items
    - data.encode
    - sock.pending
    - simple_cookie.values
    - reason_bytes.decode
    - websocket._abnf.ABNF.__str__
    - <builtin>.callable
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - time.sleep
    - threading.Lock
    - r.split
    - <builtin>.isinstance
    - reason_parts.append
    - websocket._logging.info
    - websocket._abnf.frame_buffer.needs_length
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._handshake._get_resp_headers
    - v.get
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.send_frame
    - options.get
    - websocket._logging.debug
    - websocket._abnf.continuous_frame.__init__
    - <builtin>.chr
    - http.cookies.SimpleCookie
    - _logger.error
    - websocket._core.WebSocket.recv_frame
    - websocket._logging.error
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.clear
    - websocket._core.WebSocket.recv
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._logging.warning
    - host.lower
    - _logger.info
    - _socket.recv_line.split
    - wsaccel.xormask.XorMaskerSimple.process
    - hmac.compare_digest
    - websocket._core.WebSocket.send_close
    - <builtin>.type
    - value.strip
    - websocket._dispatcher.WrappedDispatcher.timeout
    - domain.startswith
    - websocket._core.WebSocket.recv_data_frame
    - _logger.warning
    - websocket._app.WebSocketApp.run_forever.closed
    - websocket._http.proxy_info.__init__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.DispatcherBase.timeout
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: time.sleep
    functionSourceFile: time
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: selectors.DefaultSelector
    functionSourceFile: selectors
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sel.register
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sel.select
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sel.close
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sock
    - sel
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 113
    functionName: websocket._dispatcher.SSLDispatcher.select
    functionSourceFile: websocket._dispatcher
    functionUses: 12
    functionsReached:
    - sel.select
    - sock.pending
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.pending
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dispatcher.signal
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - seconds
    - callback
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 18
    functionLinenumber: 161
    functionName: websocket._dispatcher.WrappedDispatcher.timeout
    functionSourceFile: websocket._dispatcher
    functionUses: 11
    functionsReached:
    - cookie.update
    - websocket._abnf.frame_buffer.needs_mask
    - base64.encodebytes.strip
    - websocket._logging.isEnabledForError
    - domain.lower
    - cookies.append
    - websocket._core.WebSocket._recv
    - s.lower
    - websocket._handshake._create_sec_websocket_key
    - header.items
    - sel.register
    - websocket._dispatcher.DispatcherBase.send
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket.connect
    - websocket._handshake._validate
    - int.from_bytes
    - <builtin>.sum
    - websocket._dispatcher.SSLDispatcher.select
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._core.WebSocket.pong
    - <builtin>.sorted
    - websocket._logging.isEnabledForTrace
    - time.time
    - data.decode
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._app.WebSocketApp._parse_close_frame
    - <builtin>.int
    - _logger.debug
    - websocket._dispatcher.DispatcherBase.reconnect
    - <builtin>.setattr
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._dispatcher.WrappedDispatcher.send
    - <builtin>.filter
    - <builtin>.any
    - websocket._abnf.frame_buffer.__init__
    - websocket._abnf.ABNF.validate
    - base64.encodebytes
    - websocket._handshake.handshake
    - websocket._dispatcher.Dispatcher.read
    - sel.select
    - websocket._core.WebSocket.shutdown
    - <builtin>.repr
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - _socket.recv_line
    - threading.Event
    - websocket._core.WebSocket.close
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._logging.dump
    - websocket._logging.trace
    - websocket._http.read_headers
    - <builtin>.float
    - <builtin>.len
    - websocket._abnf.frame_buffer.needs_header
    - _socket.recv_line.decode
    - wsaccel.xormask.XorMaskerSimple
    - websocket._handshake._pack_hostname
    - headers.get
    - cookie.items
    - _socket.getdefaulttimeout
    - subproto.lower
    - url.split
    - <builtin>.bool
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - _socket.send
    - result.encode
    - websocket._abnf.continuous_frame.validate
    - websocket._core.WebSocket.__init__
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._core.WebSocket.settimeout
    - wsaccel.utf8validator.Utf8Validator
    - reason.encode
    - data_received.decode
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - base64.encodebytes.decode
    - websocket._dispatcher.WrappedDispatcher.reconnect
    - _socket.recv
    - headers.extend
    - x.strip
    - sel.close
    - _socket.sock_opt
    - <builtin>.min
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.bytes
    - payload.encode
    - hashlib.sha1
    - struct.pack
    - mask_key.encode
    - websocket._handshake.handshake_response.__init__
    - websocket._abnf.frame_buffer.recv_strict
    - resp_headers.get
    - options.pop
    - struct.unpack
    - _logger.isEnabledFor
    - <builtin>.getattr
    - headers.append
    - threading.Thread
    - websocket._app.WebSocketApp._callback
    - <builtin>.range
    - websocket._abnf.continuous_frame.extract
    - result.lower
    - websocket._abnf.ABNF.mask
    - websocket._app.WebSocketApp.run_forever.teardown
    - array.array
    - websocket._handshake._get_handshake_headers
    - websocket._abnf.ABNF.format
    - selectors.DefaultSelector
    - inspect.stack
    - websocket._abnf.frame_buffer.recv_header
    - host.endswith
    - websocket._utils._decode
    - key.lower
    - _HEADERS_TO_CHECK.items
    - data.encode
    - sock.pending
    - simple_cookie.values
    - reason_bytes.decode
    - websocket._abnf.ABNF.__str__
    - <builtin>.callable
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - time.sleep
    - threading.Lock
    - r.split
    - <builtin>.isinstance
    - reason_parts.append
    - websocket._logging.info
    - websocket._abnf.frame_buffer.needs_length
    - websocket._dispatcher.SSLDispatcher.read
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._handshake._get_resp_headers
    - v.get
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.send_frame
    - options.get
    - websocket._logging.debug
    - websocket._abnf.continuous_frame.__init__
    - <builtin>.chr
    - http.cookies.SimpleCookie
    - _logger.error
    - websocket._core.WebSocket.recv_frame
    - websocket._logging.error
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.frame_buffer.clear
    - websocket._core.WebSocket.recv
    - websocket._dispatcher.WrappedDispatcher.read
    - websocket._logging.warning
    - host.lower
    - _logger.info
    - _socket.recv_line.split
    - wsaccel.xormask.XorMaskerSimple.process
    - hmac.compare_digest
    - websocket._core.WebSocket.send_close
    - <builtin>.type
    - value.strip
    - websocket._dispatcher.WrappedDispatcher.timeout
    - domain.startswith
    - websocket._core.WebSocket.recv_data_frame
    - _logger.warning
    - websocket._app.WebSocketApp.run_forever.closed
    - websocket._http.proxy_info.__init__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.DispatcherBase.timeout
    - websocket._app.WebSocketApp.run_forever.initialize_socket
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: websocket._handshake
    functionSourceFile: websocket._handshake
    functionUses: 0
    functionsReached:
    - websocket._cookiejar.SimpleCookieJar.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 25
    functionName: websocket._cookiejar.SimpleCookieJar.__init__
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - status
    - headers
    - subprotocol
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 52
    functionName: websocket._handshake.handshake_response.__init__
    functionSourceFile: websocket._handshake
    functionUses: 14
    functionsReached:
    - cookie.update
    - http.cookies.SimpleCookie
    - domain.startswith
    - domain.lower
    - headers.get
    - websocket._cookiejar.SimpleCookieJar.add
    - v.get
    - simple_cookie.values
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - set_cookie
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 28
    functionName: websocket._cookiejar.SimpleCookieJar.add
    functionSourceFile: websocket._cookiejar
    functionUses: 15
    functionsReached:
    - cookie.update
    - http.cookies.SimpleCookie
    - domain.startswith
    - domain.lower
    - v.get
    - simple_cookie.values
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 13
    IfCount: 13
    argCount: 5
    argDefaultValues: []
    argNames:
    - resource
    - url
    - host
    - port
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 90
    functionName: websocket._handshake._get_handshake_headers
    functionSourceFile: websocket._handshake
    functionUses: 14
    functionsReached:
    - headers.extend
    - headers.append
    - host.lower
    - <builtin>.isinstance
    - <builtin>.sorted
    - websocket._handshake._pack_hostname
    - cookies.append
    - <builtin>.filter
    - cookie.items
    - os.urandom
    - base64.encodebytes.decode
    - url.split
    - base64.encodebytes
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._handshake._create_sec_websocket_key
    - options.get
    - host.endswith
    - header.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7f939b77b220>
    argNames:
    - sock
    - success_statuses
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 149
    functionName: websocket._handshake._get_resp_headers
    functionSourceFile: websocket._handshake
    functionUses: 14
    functionsReached:
    - _socket.recv_line.split
    - key.lower
    - websocket._http.read_headers
    - websocket._logging.trace
    - _logger.debug
    - <builtin>.len
    - <builtin>.min
    - _socket.recv_line
    - _socket.recv_line.decode
    - resp_headers.get
    - headers.get
    - value.strip
    - _socket.recv
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - WebSocketBadStatusException
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 3
    argDefaultValues: []
    argNames:
    - headers
    - key
    - subprotocols
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 184
    functionName: websocket._handshake._validate
    functionSourceFile: websocket._handshake
    functionUses: 14
    functionsReached:
    - _HEADERS_TO_CHECK.items
    - x.strip
    - base64.encodebytes.strip
    - r.split
    - <builtin>.isinstance
    - result.lower
    - headers.get
    - result.encode
    - hmac.compare_digest
    - websocket._logging.error
    - _logger.error
    - base64.encodebytes
    - s.lower
    - subproto.lower
    - hashlib.sha1
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - hostname
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 83
    functionName: websocket._handshake._pack_hostname
    functionSourceFile: websocket._handshake
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: headers.append
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 218
    functionName: websocket._handshake._create_sec_websocket_key
    functionSourceFile: websocket._handshake
    functionUses: 15
    functionsReached:
    - base64.encodebytes
    - os.urandom
    - base64.encodebytes.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: header.items
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: headers.extend
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - host
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 52
    functionName: websocket._cookiejar.SimpleCookieJar.get
    functionSourceFile: websocket._cookiejar
    functionUses: 15
    functionsReached:
    - <builtin>.sorted
    - cookies.append
    - <builtin>.filter
    - cookie.items
    - host.endswith
    - host.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.filter
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: resp_headers.get
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.min
    functionSourceFile: <builtin>
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _socket.recv
    functionSourceFile: _socket
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _HEADERS_TO_CHECK.items
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: x.strip
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.split
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: subproto.lower
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.lower
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.lower
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.encode
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hashlib.sha1
    functionSourceFile: hashlib
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hmac.compare_digest
    functionSourceFile: hmac
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.urandom
    functionSourceFile: os
    functionUses: 46
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base64.encodebytes.decode
    functionSourceFile: base64
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._cookiejar
    functionSourceFile: websocket._cookiejar
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: http.cookies.SimpleCookie
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: simple_cookie.values
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: v.get
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cookie.update
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: domain.lower
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - set_cookie
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 42
    functionName: websocket._cookiejar.SimpleCookieJar.set
    functionSourceFile: websocket._cookiejar
    functionUses: 0
    functionsReached:
    - http.cookies.SimpleCookie
    - domain.startswith
    - domain.lower
    - v.get
    - simple_cookie.values
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: host.lower
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: host.endswith
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cookies.append
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cookie.items
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.sorted
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: websocket._logging
    functionSourceFile: websocket._logging
    functionUses: 0
    functionsReached:
    - _logger.getEffectiveLevel
    - logging.getLogger
    - _logger.addHandler
    - logging.NullHandler
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.getLogger
    functionSourceFile: logging
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - record
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 29
    functionName: websocket._logging.NullHandler.emit
    functionSourceFile: websocket._logging
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.NullHandler
    functionSourceFile: logging
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.addHandler
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.getEffectiveLevel
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 6
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f939b9a9be0>
    - <ast.Constant object at 0x7f939b9a9040>
    argNames:
    - traceable
    - handler
    - level
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 52
    functionName: websocket._logging.enableTrace
    functionSourceFile: websocket._logging
    functionUses: 0
    functionsReached:
    - logging.StreamHandler
    - _logger.setLevel
    - _logger.removeHandler
    - _logger.addHandler
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.StreamHandler
    functionSourceFile: logging
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.removeHandler
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.setLevel
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.debug
    functionSourceFile: <builtin>
    functionUses: 52
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.error
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.warning
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.info
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.isEnabledFor
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 116
    functionName: websocket._logging.isEnabledForDebug
    functionSourceFile: websocket._logging
    functionUses: 0
    functionsReached:
    - _logger.isEnabledFor
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._abnf
    functionSourceFile: websocket._abnf
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - mask_value
    - data_value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 45
    functionName: websocket._abnf._mask
    functionSourceFile: websocket._abnf
    functionUses: 44
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple.process
    - int.from_bytes
    - <builtin>.len
    - wsaccel.xormask.XorMaskerSimple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wsaccel.xormask.XorMaskerSimple
    functionSourceFile: wsaccel
    functionUses: 45
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wsaccel.xormask.XorMaskerSimple.process
    functionSourceFile: wsaccel
    functionUses: 45
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: int.from_bytes
    functionSourceFile: <builtin>
    functionUses: 45
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f939b37b970>
    - <ast.Constant object at 0x7f939b12fe50>
    - <ast.Constant object at 0x7f939b12fa90>
    - <ast.Constant object at 0x7f939b12f910>
    - <ast.Name object at 0x7f939b12f130>
    - <ast.Constant object at 0x7f939b12fa60>
    - <ast.Constant object at 0x7f939b12fc10>
    argNames:
    - self
    - fin
    - rsv1
    - rsv2
    - rsv3
    - opcode
    - mask_value
    - data
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 146
    functionName: websocket._abnf.ABNF.__init__
    functionSourceFile: websocket._abnf
    functionUses: 42
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 1
    IfCount: 8
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f939b20b790>
    argNames:
    - self
    - skip_utf8_validation
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 170
    functionName: websocket._abnf.ABNF.validate
    functionSourceFile: websocket._abnf
    functionUses: 28
    functionsReached:
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    - <builtin>.len
    - <builtin>.isinstance
    - websocket._utils._validate_utf8
    - websocket._abnf.ABNF._is_valid_close_status
    - wsaccel.utf8validator.Utf8Validator.validate
    - struct.unpack
    - websocket._utils.validate_utf8
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - WebSocketProtocolException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - utfbytes
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 440
    functionName: websocket._utils.validate_utf8
    functionSourceFile: websocket._utils
    functionUses: 30
    functionsReached:
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    - websocket._utils._validate_utf8
    - wsaccel.utf8validator.Utf8Validator.validate
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - code
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 210
    functionName: websocket._abnf.ABNF._is_valid_close_status
    functionSourceFile: ''
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.chr
    functionSourceFile: <builtin>
    functionUses: 42
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - mask_key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 273
    functionName: websocket._abnf.ABNF._get_masked
    functionSourceFile: websocket._abnf
    functionUses: 42
    functionsReached:
    - websocket._abnf._mask
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    - <builtin>.isinstance
    - data.encode
    - websocket._abnf.ABNF.mask
    - wsaccel.xormask.XorMaskerSimple
    - array.array
    - int.from_bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - mask_key
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 282
    functionName: websocket._abnf.ABNF.mask
    functionSourceFile: websocket._abnf
    functionUses: 43
    functionsReached:
    - websocket._abnf._mask
    - mask_key.encode
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    - data.encode
    - <builtin>.isinstance
    - wsaccel.xormask.XorMaskerSimple
    - array.array
    - int.from_bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: mask_key.encode
    functionSourceFile: <builtin>
    functionUses: 44
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: array.array
    functionSourceFile: array
    functionUses: 44
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 320
    functionName: websocket._abnf.frame_buffer.clear
    functionSourceFile: ''
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 325
    functionName: websocket._abnf.frame_buffer.needs_header
    functionSourceFile: websocket._abnf
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 328
    functionName: websocket._abnf.frame_buffer.recv_header
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached:
    - <builtin>.repr
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - <builtin>.min
    - websocket._abnf.frame_buffer.needs_length
    - websocket._abnf.frame_buffer.has_mask
    - wsaccel.utf8validator.Utf8Validator.validate
    - <builtin>.bytes
    - payload.encode
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - websocket._dispatcher.DispatcherBase.send
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._utils._validate_utf8
    - wsaccel.xormask.XorMaskerSimple
    - websocket._core.WebSocket.recv_frame
    - struct.unpack
    - int.from_bytes
    - <builtin>.sum
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.pong
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - websocket._abnf.continuous_frame.validate
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.send_close
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.int
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    - _logger.debug
    - data.encode
    - websocket._abnf.frame_buffer.recv_length
    - reason.encode
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - data_received.decode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.ABNF.validate
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - bufsize
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 407
    functionName: websocket._abnf.frame_buffer.recv_strict
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached:
    - <builtin>.repr
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - <builtin>.min
    - websocket._abnf.frame_buffer.needs_length
    - websocket._abnf.frame_buffer.has_mask
    - wsaccel.utf8validator.Utf8Validator.validate
    - <builtin>.bytes
    - payload.encode
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - websocket._dispatcher.DispatcherBase.send
    - <builtin>.chr
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._utils._validate_utf8
    - wsaccel.xormask.XorMaskerSimple
    - websocket._core.WebSocket.recv_frame
    - struct.unpack
    - int.from_bytes
    - <builtin>.sum
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.pong
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - websocket._abnf.continuous_frame.validate
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.send_close
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.int
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    - _logger.debug
    - data.encode
    - websocket._abnf.frame_buffer.recv_length
    - reason.encode
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - data_received.decode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.ABNF.validate
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 342
    functionName: websocket._abnf.frame_buffer.has_mask
    functionSourceFile: websocket._abnf
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 348
    functionName: websocket._abnf.frame_buffer.needs_length
    functionSourceFile: websocket._abnf
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 351
    functionName: websocket._abnf.frame_buffer.recv_length
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached:
    - <builtin>.repr
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - <builtin>.min
    - websocket._abnf.frame_buffer.needs_length
    - websocket._abnf.frame_buffer.has_mask
    - wsaccel.utf8validator.Utf8Validator.validate
    - <builtin>.bytes
    - payload.encode
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - websocket._dispatcher.DispatcherBase.send
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._utils._validate_utf8
    - wsaccel.xormask.XorMaskerSimple
    - websocket._core.WebSocket.recv_frame
    - struct.unpack
    - int.from_bytes
    - <builtin>.sum
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.pong
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - websocket._abnf.continuous_frame.validate
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.send_close
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.int
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    - _logger.debug
    - data.encode
    - websocket._abnf.frame_buffer.recv_length
    - reason.encode
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - data_received.decode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.ABNF.validate
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised:
    - WebSocketProtocolException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 365
    functionName: websocket._abnf.frame_buffer.needs_mask
    functionSourceFile: websocket._abnf
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 368
    functionName: websocket._abnf.frame_buffer.recv_mask
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached:
    - <builtin>.repr
    - websocket._abnf.frame_buffer.needs_mask
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - <builtin>.min
    - websocket._abnf.frame_buffer.needs_length
    - websocket._abnf.frame_buffer.has_mask
    - wsaccel.utf8validator.Utf8Validator.validate
    - <builtin>.bytes
    - payload.encode
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket._recv
    - websocket._core.WebSocket.send_frame
    - websocket._logging.trace
    - struct.pack
    - mask_key.encode
    - <builtin>.len
    - websocket._dispatcher.DispatcherBase.send
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.needs_header
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._utils._validate_utf8
    - wsaccel.xormask.XorMaskerSimple
    - websocket._core.WebSocket.recv_frame
    - struct.unpack
    - int.from_bytes
    - <builtin>.sum
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf._mask
    - websocket._abnf.ABNF.__init__
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.pong
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - websocket._logging.isEnabledForTrace
    - websocket._abnf.continuous_frame.validate
    - array.array
    - websocket._abnf.ABNF.create_frame
    - websocket._core.WebSocket.send_close
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.recv_data
    - websocket._utils.validate_utf8
    - websocket._abnf.frame_buffer.recv_header
    - <builtin>.int
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    - _logger.debug
    - data.encode
    - websocket._abnf.frame_buffer.recv_length
    - reason.encode
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - data_received.decode
    - <builtin>.any
    - os.urandom
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.ABNF.validate
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._send
    - websocket._dispatcher.WrappedDispatcher.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.sum
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._utils
    functionSourceFile: websocket._utils
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 25
    functionName: websocket._utils.NoLock.__enter__
    functionSourceFile: websocket._utils
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_value
    - traceback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 28
    functionName: websocket._utils.NoLock.__exit__
    functionSourceFile: websocket._utils
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - utfbytes
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 429
    functionName: websocket._utils._validate_utf8
    functionSourceFile: websocket._utils
    functionUses: 31
    functionsReached:
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    - wsaccel.utf8validator.Utf8Validator.validate
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wsaccel.utf8validator.Utf8Validator
    functionSourceFile: wsaccel
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wsaccel.utf8validator.Utf8Validator.validate
    functionSourceFile: wsaccel
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - state
    - codep
    - ch
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 419
    functionName: websocket._utils._decode
    functionSourceFile: websocket._utils
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - exception
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 449
    functionName: websocket._utils.extract_err_message
    functionSourceFile: websocket._utils
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - exception
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 457
    functionName: websocket._utils.extract_error_code
    functionSourceFile: websocket._utils
    functionUses: 5
    functionsReached:
    - <builtin>.len
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: -1
    functionName: websocket._wsdump
    functionSourceFile: websocket._wsdump
    functionUses: 0
    functionsReached:
    - time.sleep
    - <builtin>.input
    - line.encode
    - <builtin>.isinstance
    - websocket.enableTrace
    - websocket.create_connection
    - websocket._wsdump.NonInteractive.read
    - parser.parse_args
    - <builtin>.print
    - args.headers.split
    - parser.add_argument
    - websocket._wsdump.RawInput.raw_input
    - <builtin>.getattr
    - code.InteractiveConsole.__init__
    - websocket._wsdump.main
    - threading.Thread
    - urllib.parse.urlparse
    - time.time
    - websocket._wsdump.parse_args
    - <builtin>.list
    - thread.start
    - <builtin>.map
    - websocket._wsdump.get_encoding
    - argparse.ArgumentParser
    - websocket._wsdump.InteractiveConsole.read
    - line.decode
    - encoding.lower
    - ws.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 40
    functionName: websocket._wsdump.get_encoding
    functionSourceFile: websocket._wsdump
    functionUses: 1
    functionsReached:
    - encoding.lower
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: encoding.lower
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f939b9b36d0>
    argNames:
    - self
    - parser
    - args
    - values
    - option_string
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 53
    functionName: websocket._wsdump.VAction.__call__
    functionSourceFile: websocket._wsdump
    functionUses: 0
    functionsReached:
    - <builtin>.setattr
    - values.count
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: values.count
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 11
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 69
    functionName: websocket._wsdump.parse_args
    functionSourceFile: websocket._wsdump
    functionUses: 2
    functionsReached:
    - argparse.ArgumentParser
    - parser.parse_args
    - parser.add_argument
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: argparse.ArgumentParser
    functionSourceFile: argparse
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parser.add_argument
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parser.parse_args
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f939b9bf1f0>
    argNames:
    - self
    - prompt
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 107
    functionName: websocket._wsdump.RawInput.raw_input
    functionSourceFile: websocket._wsdump
    functionUses: 4
    functionsReached:
    - line.encode
    - <builtin>.isinstance
    - line.decode
    - <builtin>.input
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.input
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.decode
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.encode
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 119
    functionName: websocket._wsdump.InteractiveConsole.write
    functionSourceFile: websocket._wsdump
    functionUses: 1
    functionsReached:
    - sys.stdout.flush
    - sys.stdout.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stdout.write
    functionSourceFile: sys
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stdout.flush
    functionSourceFile: sys
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 126
    functionName: websocket._wsdump.InteractiveConsole.read
    functionSourceFile: websocket._wsdump
    functionUses: 2
    functionsReached:
    - <builtin>.input
    - line.encode
    - <builtin>.isinstance
    - line.decode
    - websocket._wsdump.RawInput.raw_input
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 131
    functionName: websocket._wsdump.NonInteractive.write
    functionSourceFile: websocket._wsdump
    functionUses: 1
    functionsReached:
    - sys.stdout.flush
    - sys.stdout.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 136
    functionName: websocket._wsdump.NonInteractive.read
    functionSourceFile: websocket._wsdump
    functionUses: 2
    functionsReached:
    - <builtin>.input
    - line.encode
    - <builtin>.isinstance
    - line.decode
    - websocket._wsdump.RawInput.raw_input
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 6
    IfCount: 8
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 140
    functionName: websocket._wsdump.main
    functionSourceFile: websocket._wsdump
    functionUses: 1
    functionsReached:
    - time.sleep
    - <builtin>.input
    - line.encode
    - <builtin>.isinstance
    - websocket.enableTrace
    - websocket.create_connection
    - websocket._wsdump.NonInteractive.read
    - parser.parse_args
    - <builtin>.print
    - args.headers.split
    - parser.add_argument
    - websocket._wsdump.RawInput.raw_input
    - code.InteractiveConsole.__init__
    - threading.Thread
    - urllib.parse.urlparse
    - time.time
    - websocket._wsdump.parse_args
    - <builtin>.list
    - thread.start
    - <builtin>.map
    - argparse.ArgumentParser
    - websocket._wsdump.InteractiveConsole.read
    - line.decode
    - ws.send
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket.enableTrace
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: args.headers.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.map
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.list
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket.create_connection
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: code.InteractiveConsole.__init__
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.print
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 166
    functionName: websocket._wsdump.main.recv
    functionSourceFile: websocket._wsdump
    functionUses: 1
    functionsReached:
    - ws.pong
    - ws.recv_frame
    - ws.send_close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ws.recv_frame
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ws.send_close
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ws.pong
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 2
    IfCount: 8
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 184
    functionName: websocket._wsdump.main.recv_ws
    functionSourceFile: websocket._wsdump
    functionUses: 0
    functionsReached:
    - <builtin>.repr
    - <builtin>.len
    - <builtin>.isinstance
    - websocket.ABNF.OPCODE_MAP.get
    - websocket._wsdump.InteractiveConsole.write
    - gzip.decompress
    - sys.stdout.write
    - ws.pong
    - <builtin>.str
    - time.time
    - websocket._wsdump.NonInteractive.write
    - sys.stdout.flush
    - ws.recv_frame
    - websocket._wsdump.main.recv
    - ws.send_close
    - zlib.decompress
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gzip.decompress
    functionSourceFile: gzip
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: zlib.decompress
    functionSourceFile: zlib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket.ABNF.OPCODE_MAP.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: thread.start
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ws.send
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: websocket._socket
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached:
    - <builtin>.hasattr
    - DEFAULT_SOCKET_OPTION.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: DEFAULT_SOCKET_OPTION.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sockopt
    - sslopt
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 56
    functionName: websocket._socket.sock_opt.__init__
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - timeout
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 68
    functionName: websocket._socket.setdefaulttimeout
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 81
    functionName: websocket._socket.getdefaulttimeout
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - sock
    - bufsize
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 93
    functionName: websocket._socket.recv
    functionSourceFile: websocket._socket
    functionUses: 1
    functionsReached:
    - sel.select
    - sel.register
    - websocket._utils.extract_err_message
    - sel.close
    - <builtin>.len
    - <builtin>.isinstance
    - websocket._socket.recv._recv
    - sock.recv
    - selectors.DefaultSelector
    - websocket._utils.extract_error_code
    - sock.gettimeout
    linkageType: pythonLinkage
    raised:
    - WebSocketTimeoutException
    - WebSocketConnectionClosedException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 97
    functionName: websocket._socket.recv._recv
    functionSourceFile: websocket._socket
    functionUses: 2
    functionsReached:
    - sel.select
    - sel.register
    - sel.close
    - <builtin>.len
    - <builtin>.isinstance
    - sock.recv
    - selectors.DefaultSelector
    - websocket._utils.extract_error_code
    - sock.gettimeout
    linkageType: pythonLinkage
    raised:
    - WebSocketTimeoutException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.recv
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.gettimeout
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - sock
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 148
    functionName: websocket._socket.recv_line
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached:
    - sel.select
    - line.append
    - sel.register
    - websocket._utils.extract_error_code
    - websocket._utils.extract_err_message
    - sel.close
    - <builtin>.len
    - <builtin>.isinstance
    - websocket._socket.recv._recv
    - sock.recv
    - selectors.DefaultSelector
    - websocket._socket.recv
    - sock.gettimeout
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - sock
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 158
    functionName: websocket._socket.send
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached:
    - sel.select
    - sel.register
    - websocket._utils.extract_err_message
    - sock.send
    - sel.close
    - <builtin>.len
    - data.encode
    - <builtin>.isinstance
    - websocket._socket.send._send
    - selectors.DefaultSelector
    - websocket._utils.extract_error_code
    - sock.gettimeout
    linkageType: pythonLinkage
    raised:
    - WebSocketTimeoutException
    - WebSocketConnectionClosedException
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 165
    functionName: websocket._socket.send._send
    functionSourceFile: websocket._socket
    functionUses: 1
    functionsReached:
    - sel.select
    - sel.register
    - sel.close
    - <builtin>.len
    - <builtin>.isinstance
    - sock.gettimeout
    - selectors.DefaultSelector
    - websocket._utils.extract_error_code
    - sock.send
    linkageType: pythonLinkage
    raised:
    - WebSocketConnectionClosedException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.send
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  Function list name: All functions
Function coverage:
  '...fuzz_http':
  - 73
  - 74
  '...fuzz_http.FuzzMock':
  - 25
  '...fuzz_http.FuzzMock.recv':
  - 34
  - 35
  - 36
  - 38
  - 39
  '...fuzz_http.FuzzMock.send':
  - 43
  - 44
  '...fuzz_http.TestOneInput':
  - 49
  - 51
  - 52
  - 54
  - 55
  - 57
  - 58
  '...fuzz_http.main':
  - 68
  - 69
  - 70
  websocket:
  - 1
  websocket._abnf:
  - 11
  websocket._abnf.ABNF:
  - 107
  websocket._abnf.ABNF.__init__:
  - 156
  - 165
  websocket._abnf.ABNF.__str__:
  - 214
  websocket._abnf.ABNF._get_masked:
  - 274
  - 276
  - 277
  websocket._abnf.ABNF.create_frame:
  - 233
  - 234
  - 219
  - 236
  websocket._abnf.ABNF.format:
  - 257
  - 258
  - 259
  - 260
  - 261
  - 263
  - 264
  - 266
  - 267
  - 268
  - 270
  - 239
  - 271
  - 242
  - 244
  - 246
  - 247
  - 250
  websocket._abnf.ABNF.mask:
  - 293
  - 296
  - 297
  - 299
  - 300
  - 302
  - 283
  websocket._abnf.ABNF.validate:
  - 193
  - 196
  - 202
  - 171
  - 203
  - 205
  - 206
  - 178
  - 181
  - 184
  - 187
  - 188
  - 189
  - 191
  websocket._abnf._mask:
  - 38
  - 46
  - 47
  - 48
  - 51
  websocket._abnf.continuous_frame.add:
  - 456
  - 460
  - 453
  websocket._abnf.continuous_frame.extract:
  - 472
  - 480
  - 468
  - 477
  websocket._abnf.continuous_frame.validate:
  - 444
  - 446
  websocket._abnf.frame_buffer.__init__:
  - 317
  - 318
  websocket._abnf.frame_buffer.has_mask:
  - 343
  websocket._abnf.frame_buffer.recv_frame:
  - 386
  - 387
  - 391
  - 393
  - 394
  - 395
  - 397
  - 400
  - 402
  - 403
  - 374
  - 375
  - 376
  - 381
  - 382
  websocket._abnf.frame_buffer.recv_header:
  - 329
  websocket._abnf.frame_buffer.recv_length:
  - 352
  - 356
  - 357
  - 358
  - 359
  - 360
  - 361
  websocket._abnf.frame_buffer.recv_mask:
  - 369
  websocket._abnf.frame_buffer.recv_strict:
  - 418
  - 419
  - 420
  - 421
  - 426
  - 428
  - 408
  - 410
  websocket._app:
  - 19
  websocket._app.WebSocketApp:
  - 49
  websocket._app.WebSocketApp.__init__:
  - 160
  - 163
  - 170
  - 78
  - 159
  websocket._app.WebSocketApp._callback:
  - 677
  - 679
  - 682
  - 685
  - 686
  websocket._app.WebSocketApp._get_close_args:
  - 637
  - 635
  - 629
  - 638
  websocket._app.WebSocketApp._parse_close_frame:
  - 672
  - 645
  - 648
  - 652
  - 654
  - 655
  - 657
  - 659
  - 662
  - 666
  - 670
  websocket._app.WebSocketApp._send_ping:
  - 244
  - 246
  - 248
  - 249
  - 250
  - 252
  - 253
  - 255
  websocket._app.WebSocketApp._start_ping_thread:
  - 216
  - 217
  - 218
  - 220
  websocket._app.WebSocketApp._stop_ping_thread:
  - 224
  - 225
  - 226
  - 229
  - 230
  - 241
  - 223
  websocket._app.WebSocketApp.close:
  - 208
  - 209
  - 211
  - 204
  websocket._app.WebSocketApp.create_dispatcher:
  - 619
  - 620
  - 622
  - 623
  - 624
  websocket._app.WebSocketApp.run_forever:
  - 281
  - 589
  - 590
  - 591
  - 336
  - 339
  - 595
  - 341
  - 596
  - 599
  - 343
  - 345
  - 601
  - 598
  - 603
  - 347
  - 604
  - 349
  - 606
  - 608
  websocket._app.WebSocketApp.run_forever.check:
  - 498
  - 500
  - 509
  websocket._app.WebSocketApp.run_forever.closed:
  - 545
  - 546
  - 547
  - 548
  - 549
  - 550
  - 551
  - 553
  - 532
  - 533
  - 534
  - 537
  - 539
  - 541
  websocket._app.WebSocketApp.run_forever.handleDisconnect:
  - 576
  - 577
  - 578
  - 579
  - 580
  - 583
  - 585
  - 586
  - 567
  - 568
  - 569
  - 571
  - 572
  websocket._app.WebSocketApp.run_forever.initialize_socket:
  - 448
  - 417
  - 419
  - 456
  - 399
  - 400
  - 405
  - 437
  - 439
  - 440
  - 442
  - 443
  - 445
  - 415
  websocket._app.WebSocketApp.run_forever.read:
  - 459
  - 460
  - 463
  - 467
  - 473
  - 474
  - 478
  - 479
  - 480
  - 481
  - 482
  - 483
  - 484
  - 485
  - 486
  - 487
  - 490
  - 491
  - 492
  - 493
  websocket._app.WebSocketApp.run_forever.teardown:
  - 386
  - 359
  - 392
  - 396
  - 372
  - 376
  - 379
  websocket._app.WebSocketApp.send:
  - 186
  - 174
  websocket._app.WebSocketApp.send_bytes:
  - 200
  - 197
  websocket._app.WebSocketApp.send_text:
  - 193
  - 190
  websocket._cookiejar:
  - 4
  websocket._cookiejar.SimpleCookieJar.add:
  - 32
  - 33
  - 34
  - 36
  - 37
  - 38
  - 39
  - 40
  - 29
  - 30
  websocket._cookiejar.SimpleCookieJar.get:
  - 65
  - 68
  - 69
  - 53
  - 57
  - 58
  - 59
  - 60
  - 62
  - 63
  websocket._cookiejar.SimpleCookieJar.set:
  - 43
  - 44
  - 46
  - 47
  - 48
  - 50
  websocket._core:
  - 23
  websocket._core.WebSocket:
  - 200
  - 46
  - 178
  - 217
  - 189
  websocket._core.WebSocket.__init__:
  - 102
  - 110
  - 111
  - 114
  - 115
  - 116
  - 118
  - 119
  - 94
  websocket._core.WebSocket.__iter__:
  - 122
  - 126
  websocket._core.WebSocket.__next__:
  - 129
  websocket._core.WebSocket._recv:
  - 625
  - 626
  - 620
  - 623
  websocket._core.WebSocket._send:
  - 616
  - 617
  - 613
  - 615
  websocket._core.WebSocket.abort:
  - 592
  - 588
  - 591
  websocket._core.WebSocket.close:
  - 530
  - 543
  - 545
  - 553
  - 554
  - 556
  - 557
  - 558
  - 559
  - 561
  - 562
  - 566
  - 567
  - 568
  - 569
  - 570
  - 571
  - 579
  - 580
  - 581
  - 585
  websocket._core.WebSocket.connect:
  - 288
  - 293
  - 294
  - 268
  - 269
  - 270
  - 274
  - 275
  - 276
  - 281
  - 282
  - 220
  - 285
  - 286
  websocket._core.WebSocket.fileno:
  - 137
  - 135
  websocket._core.WebSocket.getheaders:
  - 203
  - 206
  websocket._core.WebSocket.getstatus:
  - 192
  - 195
  websocket._core.WebSocket.getsubprotocol:
  - 184
  - 181
  websocket._core.WebSocket.gettimeout:
  - 155
  websocket._core.WebSocket.is_ssl:
  - 213
  websocket._core.WebSocket.next:
  - 132
  websocket._core.WebSocket.ping:
  - 370
  - 379
  - 380
  - 378
  websocket._core.WebSocket.pong:
  - 391
  - 393
  - 392
  - 383
  websocket._core.WebSocket.recv:
  - 396
  - 404
  - 405
  - 407
  - 408
  - 409
  - 411
  websocket._core.WebSocket.recv_data:
  - 432
  - 418
  websocket._core.WebSocket.recv_data_frame:
  - 436
  - 453
  - 454
  - 455
  - 456
  - 457
  - 461
  - 466
  - 467
  - 469
  - 470
  - 472
  - 473
  - 475
  - 476
  - 477
  - 480
  - 482
  - 483
  websocket._core.WebSocket.recv_frame:
  - 494
  - 487
  websocket._core.WebSocket.send:
  - 312
  - 313
  - 299
  websocket._core.WebSocket.send_binary:
  - 367
  - 359
  websocket._core.WebSocket.send_bytes:
  - 322
  - 325
  websocket._core.WebSocket.send_close:
  - 512
  - 514
  - 515
  - 516
  - 519
  - 522
  - 499
  - 509
  websocket._core.WebSocket.send_frame:
  - 353
  - 328
  - 344
  - 346
  - 347
  - 348
  - 349
  - 350
  websocket._core.WebSocket.send_text:
  - 316
  - 319
  websocket._core.WebSocket.set_mask_key:
  - 140
  websocket._core.WebSocket.settimeout:
  - 176
  - 166
  - 175
  websocket._core.WebSocket.shutdown:
  - 595
  - 598
  - 601
  - 602
  - 606
  websocket._core.create_connection:
  - 710
  - 711
  - 702
  - 697
  - 698
  - 699
  - 700
  - 701
  - 638
  websocket._dispatcher:
  - 12
  - 7
  websocket._dispatcher.Dispatcher:
  - 64
  websocket._dispatcher.Dispatcher.read:
  - 74
  - 76
  - 77
  - 80
  - 81
  - 83
  - 85
  websocket._dispatcher.DispatcherBase:
  - 33
  websocket._dispatcher.DispatcherBase.reconnect:
  - 50
  - 51
  - 53
  - 54
  - 56
  websocket._dispatcher.DispatcherBase.send:
  - 60
  websocket._dispatcher.DispatcherBase.timeout:
  - 44
  - 45
  - 46
  websocket._dispatcher.SSLDispatcher:
  - 89
  websocket._dispatcher.SSLDispatcher.read:
  - 99
  - 102
  - 103
  - 106
  - 107
  - 109
  - 111
  websocket._dispatcher.SSLDispatcher.select:
  - 114
  - 124
  - 117
  - 122
  websocket._dispatcher.WrappedDispatcher:
  - 130
  websocket._dispatcher.WrappedDispatcher.__init__:
  - 145
  websocket._dispatcher.WrappedDispatcher.read:
  - 153
  - 154
  - 155
  websocket._dispatcher.WrappedDispatcher.reconnect:
  - 165
  websocket._dispatcher.WrappedDispatcher.send:
  - 158
  - 159
  websocket._dispatcher.WrappedDispatcher.timeout:
  - 162
  websocket._exceptions:
  - 1
  websocket._exceptions.WebSocketAddressException:
  - 92
  websocket._exceptions.WebSocketBadStatusException:
  - 73
  websocket._exceptions.WebSocketBadStatusException.__init__:
  - 85
  websocket._exceptions.WebSocketConnectionClosedException:
  - 48
  websocket._exceptions.WebSocketException:
  - 24
  websocket._exceptions.WebSocketPayloadException:
  - 40
  websocket._exceptions.WebSocketProtocolException:
  - 32
  websocket._exceptions.WebSocketProxyException:
  - 65
  websocket._exceptions.WebSocketTimeoutException:
  - 57
  websocket._handshake:
  - 48
  - 1
  websocket._handshake._create_sec_websocket_key:
  - 219
  - 220
  websocket._handshake._get_handshake_headers:
  - 129
  - 131
  - 132
  - 134
  - 135
  - 136
  - 137
  - 139
  - 140
  - 142
  - 143
  - 145
  - 94
  - 95
  - 97
  - 98
  - 99
  - 100
  - 102
  - 106
  - 107
  - 108
  - 109
  - 110
  - 111
  - 113
  - 115
  - 118
  - 119
  - 123
  - 124
  - 126
  - 127
  websocket._handshake._get_resp_headers:
  - 160
  - 162
  - 163
  - 165
  - 152
  - 153
  - 154
  - 155
  websocket._handshake._pack_hostname:
  - 85
  websocket._handshake._validate:
  - 194
  - 195
  - 196
  - 197
  - 199
  - 201
  - 202
  - 204
  - 206
  - 207
  - 209
  - 210
  - 212
  - 186
  - 187
  - 188
  - 190
  - 191
  websocket._handshake.handshake:
  - 67
  - 69
  - 70
  - 71
  - 73
  - 74
  - 75
  - 76
  - 77
  - 80
  websocket._handshake.handshake_response.__init__:
  - 56
  websocket._http:
  - 1
  websocket._http._get_addrinfo_list:
  - 176
  - 201
  - 190
  - 191
  websocket._http._open_socket:
  - 224
  - 226
  - 227
  - 230
  - 233
  - 211
  - 213
  - 214
  - 215
  - 216
  - 217
  - 218
  websocket._http._ssl_socket:
  - 354
  - 357
  - 358
  - 338
  - 340
  - 341
  - 343
  - 344
  - 347
  - 349
  - 350
  websocket._http._start_proxied_socket:
  - 96
  - 98
  - 102
  - 105
  - 109
  - 113
  - 116
  - 122
  - 91
  - 124
  - 125
  - 126
  websocket._http._tunnel:
  - 385
  - 364
  - 369
  - 371
  - 373
  - 376
  - 378
  - 381
  websocket._http._wrap_sni_socket:
  - 259
  - 260
  - 263
  - 264
  - 265
  - 266
  - 268
  - 271
  - 273
  - 278
  - 280
  - 282
  - 283
  - 293
  - 299
  - 300
  - 302
  - 304
  - 307
  - 310
  - 315
  - 322
  - 324
  - 328
  - 330
  - 331
  - 252
  - 253
  - 254
  websocket._http.connect:
  - 160
  - 161
  - 167
  - 168
  - 139
  - 140
  - 142
  - 144
  - 147
  - 150
  - 155
  - 156
  - 157
  - 159
  websocket._http.proxy_info.__init__:
  - 64
  - 65
  - 66
  - 67
  - 68
  - 70
  - 71
  - 63
  websocket._http.read_headers:
  - 416
  - 418
  - 420
  - 422
  - 395
  - 398
  - 399
  - 400
  - 402
  - 403
  - 404
  - 405
  - 406
  - 409
  - 410
  - 413
  - 414
  - 415
  websocket._logging:
  - 33
  - 4
  - 37
  - 23
  websocket._logging.debug:
  - 100
  websocket._logging.dump:
  - 88
  - 85
  - 86
  - 87
  websocket._logging.enableTrace:
  - 66
  - 67
  - 68
  - 69
  - 70
  - 72
  - 73
  - 74
  - 78
  - 79
  - 81
  - 57
  websocket._logging.error:
  - 92
  websocket._logging.info:
  - 104
  websocket._logging.isEnabledForDebug:
  - 117
  websocket._logging.isEnabledForError:
  - 113
  websocket._logging.trace:
  - 108
  - 109
  websocket._logging.warning:
  - 96
  websocket._socket:
  - 33
  - 34
  - 35
  - 36
  - 37
  - 38
  - 39
  - 40
  - 13
  websocket._socket.getdefaulttimeout:
  - 82
  websocket._socket.recv:
  - 131
  - 134
  - 135
  - 140
  - 142
  - 124
  - 125
  - 94
  - 127
  websocket._socket.recv._recv:
  - 99
  - 104
  - 105
  - 110
  - 111
  - 113
  - 114
  - 116
  - 117
  websocket._socket.recv_line:
  - 152
  - 153
  - 155
  - 151
  websocket._socket.send:
  - 160
  - 159
  - 162
  - 193
  - 195
  - 198
  - 199
  - 190
  - 191
  websocket._socket.send._send:
  - 167
  - 173
  - 174
  - 176
  - 179
  - 180
  - 182
  - 183
  - 185
  - 186
  websocket._socket.setdefaulttimeout:
  - 69
  websocket._socket.sock_opt.__init__:
  - 59
  - 61
  websocket._ssl_compat:
  - 1
  - 22
  websocket._url:
  - 7
  websocket._url._is_address_in_network:
  - 98
  - 101
  - 103
  websocket._url._is_ip_address:
  - 76
  - 79
  websocket._url._is_no_proxy_host:
  - 132
  - 133
  - 135
  - 136
  - 109
  - 110
  - 141
  - 113
  - 115
  - 118
  - 120
  - 122
  - 123
  - 125
  - 127
  websocket._url._is_subnet_address:
  - 88
  websocket._url.get_proxy_info:
  - 192
  - 195
  - 196
  - 198
  - 181
  - 184
  - 185
  - 155
  websocket._url.parse_url:
  - 64
  - 69
  - 39
  - 42
  - 44
  - 45
  - 50
  - 54
  - 55
  - 57
  - 59
  - 30
  websocket._utils:
  - 3
  websocket._utils._validate_utf8:
  - 432
  - 433
  - 434
  - 38
  websocket._utils.extract_err_message:
  - 450
  websocket._utils.extract_error_code:
  - 458
  - 459
  websocket._utils.validate_utf8:
  - 441
  - 446
  websocket._wsdump:
  - 3
  - 240
  - 49
  - 242
  - 244
  websocket._wsdump.InteractiveConsole.read:
  - 127
  websocket._wsdump.InteractiveConsole.write:
  - 120
  - 122
  - 123
  - 124
  websocket._wsdump.NonInteractive.read:
  - 137
  websocket._wsdump.NonInteractive.write:
  - 132
  - 133
  - 134
  websocket._wsdump.RawInput.raw_input:
  - 108
  - 110
  - 111
  - 112
  - 113
  websocket._wsdump.VAction.__call__:
  - 65
  - 66
  - 60
  - 63
  websocket._wsdump.get_encoding:
  - 41
  - 42
  - 45
  websocket._wsdump.main:
  - 141
  - 142
  - 143
  - 144
  - 146
  - 147
  - 150
  - 152
  - 155
  - 157
  - 158
  - 159
  - 160
  - 161
  - 163
  - 164
  - 222
  - 224
  - 226
  - 227
  - 231
  - 232
  - 236
  websocket._wsdump.main.recv:
  - 168
  - 171
  - 173
  - 175
  - 176
  - 178
  - 179
  websocket._wsdump.main.recv_ws:
  - 194
  - 197
  - 199
  - 200
  - 205
  - 206
  - 208
  - 209
  - 213
  - 214
  - 215
  - 217
  - 186
  - 219
  - 188
  - 189
  - 190
  - 191
  websocket._wsdump.parse_args:
  - 97
  - 98
  - 101
  - 70
  - 71
  - 103
  - 74
  - 75
  - 85
  - 88
  - 89
  - 90
  - 91
Fuzzer filename: /src/fuzz_http.py
Inheritance:
  '...fuzz_http.FuzzMock': []
  websocket._abnf.ABNF: []
  websocket._abnf.continuous_frame: []
  websocket._abnf.frame_buffer: []
  websocket._app.WebSocketApp: []
  websocket._cookiejar.SimpleCookieJar: []
  websocket._core.WebSocket: []
  websocket._dispatcher.Dispatcher:
  - DispatcherBase
  websocket._dispatcher.DispatcherBase: []
  websocket._dispatcher.SSLDispatcher:
  - DispatcherBase
  websocket._dispatcher.WrappedDispatcher: []
  websocket._exceptions.WebSocketAddressException:
  - WebSocketException
  websocket._exceptions.WebSocketBadStatusException:
  - WebSocketException
  websocket._exceptions.WebSocketConnectionClosedException:
  - WebSocketException
  websocket._exceptions.WebSocketException:
  - Exception
  websocket._exceptions.WebSocketPayloadException:
  - WebSocketException
  websocket._exceptions.WebSocketProtocolException:
  - WebSocketException
  websocket._exceptions.WebSocketProxyException:
  - WebSocketException
  websocket._exceptions.WebSocketTimeoutException:
  - WebSocketException
  websocket._handshake.handshake_response: []
  websocket._http.ProxyConnectionError:
  - Exception
  websocket._http.ProxyError:
  - Exception
  websocket._http.ProxyTimeoutError:
  - Exception
  websocket._http.ProxyType: []
  websocket._http.proxy_info: []
  websocket._logging.NullHandler: []
  websocket._socket.sock_opt: []
  websocket._ssl_compat.SSLEOFError:
  - Exception
  websocket._ssl_compat.SSLError:
  - Exception
  websocket._ssl_compat.SSLWantReadError:
  - Exception
  websocket._ssl_compat.SSLWantWriteError:
  - Exception
  websocket._utils.NoLock: []
  websocket._wsdump.InteractiveConsole:
  - RawInput
  websocket._wsdump.NonInteractive:
  - RawInput
  websocket._wsdump.RawInput: []
  websocket._wsdump.VAction: []
ep:
  func_name: TestOneInput
  module: '...fuzz_http'
