anchor.diff:  { lib
   , buildPythonPackage
  +, pythonOlder
   , fetchPypi
   , fetchzip
   , alembic
  -, ipython
  +, async_generator
  +, certipy
  +, dateutil
  +, entrypoints
   , jinja2
  -, python-oauth2
  +, jupyter-telemetry
  +, oauthlib
  +, pamela
   , prometheus_client
  -, async_generator
  -, pamela
  +, requests
   , sqlalchemy
   , tornado
   , traitlets
  -, requests
  -, notebook
  -, pythonOlder
   , nodePackages
  -, oauthlib
  -, certipy
  -, jupyter-telemetry
   }:
   
   let
     # js/css assets that setup.py tries to fetch via `npm install` when building
  -  # from source.
  +  # from source. https://github.com/jupyterhub/jupyterhub/blob/master/package.json
     bootstrap =
       fetchzip {
  -      url = "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz";
  -      sha256 = "0r7s54bbf68ri1na9bbabyf12mcpb6zk5ja2q6z82aw1fa4xi3yd";
  +      url = "https://registry.npmjs.org/bootstrap/-/bootstrap-3.4.1.tgz";
  +      sha256 = "1ywmxqdccg0mgx0xknrn1hlrfnhcwphc12y9l91zizx26fqfmzgc";
       };
     font-awesome =
       fetchzip {
  
positive.code:     };
    jquery =
      fetchzip {
        url = "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz";
        sha256 = "1j6y18miwzafdj8kfpwbmbn9qvgnbnpc7l4arqrhqj33m04xrlgi";
      };
    moment =
      fetchzip {
        url = "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz";
        sha256 = "12gb3p0rz5wyjwykv9g0pix7dd352lx1z7rzdjsf2brhwc4ffyip";
      };
    requirejs =
      fetchzip {
        url = "https://registry.npmjs.org/requirejs/-/requirejs-2.3.4.tgz";
        sha256 = "0q6mkj0iv341kks06dya6lfs2kdw0n6vc7n4a7aa3ia530fk9vja";
      };
  
  in
  
  buildPythonPackage rec {
    pname = "jupyterhub";
    version = "1.1.0";
    disabled = pythonOlder "3.5";
  
    src = fetchPypi {
      inherit pname version;
      sha256 = "1mqknz0rxqzx4nc57vscvfh2d4znzlzpy83ancqxdaq3b8i70al5";
    };
  
    # Most of this only applies when building from source (e.g. js/css assets are
  
negative.code:   '';
  
    propagatedBuildInputs = [
      # https://github.com/jupyterhub/jupyterhub/blob/master/requirements.txt
      alembic
      async_generator
      certipy
      dateutil
      entrypoints
      jinja2
      jupyter-telemetry
      oauthlib
      pamela
      prometheus_client
      requests
      sqlalchemy
      tornado
      traitlets
    ];
  
    # Disable tests because they take an excessive amount of time to complete.
  