diff --git a/pkgs/development/python-modules/pydruid/default.nix b/pkgs/development/python-modules/pydruid/default.nix new file mode 100644 index 000000000000..9ede441bd817 --- /dev/null +++ b/pkgs/development/python-modules/pydruid/default.nix @@ -0,0 +1,68 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pythonOlder + # required dependencies +, requests +, setuptools + # optional dependencies +, pandas +, tornado +, sqlalchemy + # test dependencies +, pycurl +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "pydruid"; + version = "0.6.5"; + format = "setuptools"; + + disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + repo = pname; + owner = "druid-io"; + rev = "refs/tags/${version}"; + hash = "sha256-9+xomjSwWDVHkret/mqAZKWOPFRMvVB3CWtFPzrT81k="; + }; + + # patch out the CLI because it doesn't work with newer versions of pygments + postPatch = '' + substituteInPlace setup.py --replace '"console_scripts": ["pydruid = pydruid.console:main"],' "" + ''; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + requests + ]; + + nativeCheckInputs = [ + pytestCheckHook + pycurl + ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies); + + pythonImportsCheck = [ + "pydruid" + ]; + + passthru = { + optional-dependencies = { + pandas = [ pandas ]; + async = [ tornado ]; + sqlalchemy = [ sqlalchemy ]; + # druid has a `cli` extra, but it doesn't work with nixpkgs pygments + }; + }; + + meta = with lib; { + description = "Simple API to create, execute, and analyze Druid queries"; + homepage = "https://github.com/druid-io/pydruid"; + license = licenses.asl20; + maintainers = with maintainers; [ cpcloud ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 68a4babe1b96..548d2698591d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -8200,6 +8200,8 @@ self: super: with self; { pydroid-ipcam = callPackage ../development/python-modules/pydroid-ipcam { }; + pydruid = callPackage ../development/python-modules/pydruid { }; + pydsdl = callPackage ../development/python-modules/pydsdl { }; pydub = callPackage ../development/python-modules/pydub { };