anchor.diff:  , rope
   , setuptools
   , setuptools-scm
  -, stdenv
   , ujson
  +, websockets
   , whatthepatch
   , yapf
  -, withAutopep8 ? true
  -, withFlake8 ? true
  -, withMccabe ? true
  -, withPycodestyle ? true
  -, withPydocstyle ? true
  -, withPyflakes ? true
  -, withPylint ? true
  -, withRope ? true
  -, withYapf ? true
   }:
   
   buildPythonPackage rec {
  
positive.code:     numpy
      pandas
      pytestCheckHook
    ]
    # pyqt5 is broken on aarch64-darwin
    ++ lib.optionals (!stdenv.isDarwin || !stdenv.isAarch64) [ pyqt5 ];
  
    disabledTests = [
      "test_numpy_completions" # https://github.com/python-lsp/python-lsp-server/issues/243
    ] ++ lib.optional (!withPycodestyle) "test_workspace_loads_pycodestyle_config"
    # pyqt5 is broken on aarch64-darwin
    ++ lib.optional (stdenv.isDarwin && stdenv.isAarch64) "test_pyqt_completion";
  
    disabledTestPaths = lib.optional (!withAutopep8) "test/plugins/test_autopep8_format.py"
      ++ lib.optional (!withRope) "test/plugins/test_completion.py"
      ++ lib.optional (!withFlake8) "test/plugins/test_flake8_lint.py"
      ++ lib.optional (!withMccabe) "test/plugins/test_mccabe_lint.py"
      ++ lib.optional (!withPycodestyle) "test/plugins/test_pycodestyle_lint.py"
      ++ lib.optional (!withPydocstyle) "test/plugins/test_pydocstyle_lint.py"
      ++ lib.optional (!withPyflakes) "test/plugins/test_pyflakes_lint.py"
      ++ lib.optional (!withPylint) "test/plugins/test_pylint_lint.py"
      ++ lib.optional (!withRope) "test/plugins/test_rope_rename.py"
      ++ lib.optional (!withYapf) "test/plugins/test_yapf_format.py";
  
    preCheck = ''
      export HOME=$(mktemp -d);
  
negative.code: { lib
  , stdenv
  , autopep8
  , buildPythonPackage
  , fetchFromGitHub
  