anchor.diff:      makeWrapperArgs+=("''${qtWrapperArgs[@]}")
     '';
   
  -  meta = {
  -    description = "Tool and python library to interact with Android Files";
  +  meta = with lib; {
  +    description = "Tool and Python library to interact with Android Files";
       homepage = "https://github.com/androguard/androguard";
  -    license = lib.licenses.asl20;
  -    maintainers = [ lib.maintainers.pmiddend ];
  +    license = licenses.asl20;
  +    maintainers = with maintainers; [ pmiddend ];
     };
   }
  
positive.code: , codecov
  , coverage
  , qt5
  # This is usually used as a library, and it'd be a shame to force the gui
  # libraries to the closure if gui is not desired.
  , withGui ? false
  # Tests take a very long time, and currently fail, but next release' tests
  # shouldn't fail
  
negative.code: }:
  
  buildPythonPackage rec {
    pname = "androguard";
    version = "3.4.0a1";
  
    src = fetchFromGitHub {
      repo = pname;
      owner = pname;
      rev = "v${version}";
      sha256 = "1aparxiq11y0hbvkayp92w684nyxyyx7mi0n1x6x51g5z6c58vmy";
    };
  
    propagatedBuildInputs = [
      asn1crypto
      click
      colorama
      future
      ipython
      lxml
      matplotlib
      networkx
      pydot
      pygments
    ] ++ lib.optionals withGui [
      pyqt5
      pyperclip
    ];
  
    checkInputs = [
      codecov
      coverage
      mock
      nose
      nose-timer
      pyperclip
      pyqt5
      python_magic
    ];
    inherit doCheck;
  
    nativeBuildInputs = lib.optionals withGui [
      qt5.wrapQtAppsHook
    ];
  
    # If it won't be verbose, you'll see nothing going on for a long time.
    checkPhase = ''
      runHook preCheck
      nosetests --verbosity=3
      runHook postCheck
    '';
  
  