anchor.diff:      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>=6.0,<7.0" "websockets"
  +    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
  
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:     aiofiles
      websockets
      multidict
      requests-async
      uvloop
      ujson
    ];
  