anchor.diff:            ];
       };
   
  -    Radicale = python37.pkgs.buildPythonPackage rec {
  -      name = "Radicale-2.1.11";
  -      src = pkgs.fetchurl {
  -        url = "https://files.pythonhosted.org/packages/be/50/b5094950d53f11e56eb17932469e0e313275da0c5e633590c939863f3c37/Radicale-2.1.11.tar.gz";
  +    radicale = python37.pkgs.buildPythonPackage rec {
  +      pname = "Radicale";
  +      version = "2.1.11";
  +      src = pythonPackages.fetchPypi {
  +        inherit pname version;
           sha256 = "02273fcc6ae10e0f74aa12652e24d0001eec8dbf467d54ddb4dfcc2af7d7a5db";
         };
         doCheck = false;
  +      checkInputs = [
  +        python37Packages.pytestrunner
  +        python37Packages.pytest-isort
  +        python37Packages.pytest-flake8
  +        python37Packages.pytestcov
  +      ];
         propagatedBuildInputs = [ python37Packages.dateutil python37Packages.vobject ];
         meta = with pkgs.stdenv.lib; {
           homepage = "http://www.radicale.org/";
  
positive.code:         description = "URL manipulation made simple.";
        };
      };
      etesync = python37.pkgs.buildPythonPackage rec {
          pname = "etesync";
          version = "0.8.1";
  
negative.code:           inherit pname version;
            sha256 = "007zsdn0zv0f80wpyf8fzl446wmv7jr8a0pdp4wj1y61b14f4q0p";
          };
          checkInputs = [ python37Packages.pytest ];
          meta = with pkgs.stdenv.lib; {
            homepage = "https://github.com/etesync/pyetesync";
            license = licenses.lgpl3;
  