Otherwise references to the Python interpreter inside the set are wrong, as demonstrated by:
``` nix
with import <nixpkgs> { };
let
python' = python3.override {
packageOverrides = final: prev: { requests = prev.requests.overridePythonAttrs(old: { version = "1337"; }); };
};
in python'.pkgs.python.pkgs.requests
```
which returns the _non_ overriden requests.
And the same with `self`:
```
with import <nixpkgs> { };
let
python' = python3.override {
self = python';
packageOverrides = final: prev: { requests = prev.requests.overridePythonAttrs(old: { version = "1337"; }); };
};
in python'.pkgs.python.pkgs.requests
```
which returns the overriden requests.
This can manifest itself as file collisions when constructing environments or as subtly incorrect dependency graphs.
tvnamer has a direct dependency on old version of requests-cache 0.5.2.
Unfortunately, it was failing to build as it was missing setuptools.
This change adds this dependency. Along with the fixes to tvdb_api, now
tvnamer correctly builds.
tvnamer is an application and should as such never have existed under
python3Packages so move it out where it belongs.
At the same time override tvdb_api to use an older requests-cache as it
has a hard requirement on requests-cache < 0.6.