diff --git a/pkgs/development/python-modules/kaggle/default.nix b/pkgs/development/python-modules/kaggle/default.nix new file mode 100644 index 000000000000..cccd553a31f3 --- /dev/null +++ b/pkgs/development/python-modules/kaggle/default.nix @@ -0,0 +1,53 @@ +{ buildPythonPackage +, certifi +, fetchPypi +, lib +, python-dateutil +, python-slugify +, six +, requests +, tqdm +, urllib3 +}: + +buildPythonPackage rec { + pname = "kaggle"; + version = "1.5.6"; + + src = fetchPypi { + inherit pname version; + sha256 = "0f5qrkgklcpgbwncrif7aw4f86dychqplh7k3f4rljwnr9yhjb1w"; + }; + + # The version bounds in the setup.py file are unnecessarily restrictive. + patchPhase = '' + substituteInPlace setup.py \ + --replace 'urllib3 >= 1.21.1, < 1.25' 'urllib3' + ''; + + propagatedBuildInputs = [ + certifi + python-dateutil + python-slugify + requests + six + tqdm + urllib3 + ]; + + # Tests try to access the network. + checkPhase = '' + export HOME="$TMP" + mkdir -p "$HOME/.kaggle/" + echo '{"username":"foobar","key":"00000000000000000000000000000000"}' > "$HOME/.kaggle/kaggle.json" + $out/bin/kaggle --help > /dev/null + ''; + pythonImportsCheck = [ "kaggle" ]; + + meta = with lib; { + description = "Official API for https://www.kaggle.com, accessible using a command line tool implemented in Python 3"; + homepage = "https://github.com/Kaggle/kaggle-api"; + license = licenses.asl20; + maintainers = with maintainers; [ cdepillabout ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4f25dc421135..0bc1d802fb1a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2048,6 +2048,8 @@ in ir-standard-fonts = callPackage ../data/fonts/ir-standard-fonts { }; + kaggle = with python3Packages; toPythonApplication kaggle; + lynis = callPackage ../tools/security/lynis { }; mapproxy = callPackage ../applications/misc/mapproxy { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 498425ee0f51..69284f90582b 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4340,6 +4340,8 @@ in { jupyterhub-ldapauthenticator = callPackage ../development/python-modules/jupyterhub-ldapauthenticator { }; + kaggle = callPackage ../development/python-modules/kaggle { }; + keyring = if isPy3k then callPackage ../development/python-modules/keyring { } else