anchor.diff:      aiofiles
       websockets
       multidict
  +    requests-async
       uvloop
       ujson
     ];
  
positive.code: , pytest-sanic
  , pytest-sugar
  , pytest-benchmark
  }:
  
  buildPythonPackage rec {
    pname = "sanic";
    version = "19.3.1";
  
    src = fetchPypi {
      inherit pname version;
      sha256 = "ce434eb154872ca64493a6c3a288f11fd10bca0de7be7bf9f1d0d063185e51ec";
    };
  
    propagatedBuildInputs = [
  
negative.code:     pytest-sanic
      pytest-sugar
      pytest-benchmark
      uvicorn
    ];
  
    # Sanic says it needs websockets 7.x, but the changelog for 8.x is actually
    # nearly compatible with sanic's use. So relax this constraint, with a small
    # required code change.
    postConfigure = ''
      substituteInPlace setup.py --replace \
        "websockets>=7.0,<8.0"             \
        "websockets>=7.0,<9.0"
      substituteInPlace sanic/websocket.py --replace    \
             "self.websocket.subprotocol = subprotocol" \
             "self.websocket.subprotocol = subprotocol
              self.websocket.is_client = False"
    '';
  
    # 10/500 tests ignored due to missing directory and
  