anchor.diff:  
   buildPythonPackage rec {
     pname = "soco";
  -  version = "0.20";
  +  version = "0.21.2";
  +  disabled = isPy27;
   
     # N.B. We fetch from GitHub because the PyPI tarball doesn't contain the
     # required files to run the tests.
  
positive.code:     owner = "SoCo";
      repo = "SoCo";
      rev = "v${version}";
      sha256 = "0p87aw7wxgdjz0m0nqqcfvbn24hlbq1hh1zxdq2c0k2jcbmaj8zc";
    };
  
    # N.B. These exist because:
    # 1. Upstream's pinning isn't well maintained, leaving dependency versions no
  
negative.code:   # 2. There is no benefit for us to be running linting and coverage tests.
    postPatch = ''
      sed -i "/black/d" ./requirements-dev.txt
      sed -i "/coveralls/d" ./requirements-dev.txt
      sed -i "/flake8/d" ./requirements-dev.txt
      sed -i "/pylint/d" ./requirements-dev.txt
      sed -i "/pytest-cov/d" ./requirements-dev.txt
    '';
  
    propagatedBuildInputs = [
      ifaddr
      requests
      toml
      xmltodict
    ];
  
    checkInputs = [
      pytestCheckHook
      graphviz
      mock
      requests-mock
      sphinx
      sphinx_rtd_theme
    ];
  
    passthru.updateScript = nix-update-script {
      attrPath = "python3Packages.${pname}";
    };
  
    meta = with lib; {
      homepage = "http://python-soco.com/";
  