diff --git a/pkgs/by-name/fi/fio-plot/package.nix b/pkgs/by-name/fi/fio-plot/package.nix new file mode 100644 index 0000000000000..ef558e4879ecd --- /dev/null +++ b/pkgs/by-name/fi/fio-plot/package.nix @@ -0,0 +1,8 @@ +{ + python3Packages, +}: +(python3Packages.toPythonApplication python3Packages.fio_plot).overrideAttrs (old: { + meta = old.meta // { + mainProgram = "fio-plot"; + }; +}) diff --git a/pkgs/development/python-modules/fio_plot/default.nix b/pkgs/development/python-modules/fio_plot/default.nix new file mode 100644 index 0000000000000..15b80efad3687 --- /dev/null +++ b/pkgs/development/python-modules/fio_plot/default.nix @@ -0,0 +1,77 @@ +{ + lib, + fetchFromGitHub, + fetchpatch2, + buildPythonPackage, + matplotlib, + numpy, + pillow, + pyan3, + pypaBuildHook, + rich, + setuptools, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "fio_plot"; + version = "1.1.16"; + + pyproject = true; + build-system = [ setuptools ]; + + src = fetchFromGitHub { + owner = "louwrentius"; + repo = "fio-plot"; + tag = "v${version}"; + hash = "sha256-yN0gVm6ZYEIoh91d+0ohJ9yU+VWwYEq3MoG+WgBrs2Q="; + }; + + patches = map (patch: fetchpatch2 { + url = "https://github.com/louwrentius/fio-plot/commit/${patch.rev}.patch?full_index=1"; + inherit (patch) hash; + }) + [ + { + rev = "420f46508bf861d5279c9b378ca7b08e39a828f6"; + hash = "sha256-GrKdExbVuvtb+Ru1kGff30WU2RWvSKTu7yl0yk0IZUs="; + } + { + rev = "610fb3b03435fe957f71ddd8f95f51c743e1061d"; + hash = "sha256-n1vvkwuXWxquQL0t7Ppo+jvgchc42IkkW1Z6hWro5hQ="; + } + { + rev = "6683208c94e8087a1629c4a7204f9dec5dea5ca9"; + hash = "sha256-pNABP+m1ID1JbKKKXdQQieXx2FHhF7OeOH1limA895A="; + } + { + rev = "ebfdab83df2b9d435834507106e2151ac99d7ff3"; + hash = "sha256-RXJS1TXHuCU6QuJ4ES4mGdWKwe1NKF9Qr2QQAk/TxbQ="; + } + { + rev = "a53d97d5f094ca6bed841cb7e95563d5ad0e2b53"; + hash = "sha256-VKtglKfOgZ+v3Zj2dcAMpVk/EzyK21W5RmjjKGQgFgo="; + } + ]; + + dependencies = [ + matplotlib + numpy + pillow + pyan3 + rich + ]; + + nativeBuildInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "fio_plot" ]; + + meta = { + description = "Create charts from FIO storage benchmark tool output"; + homepage = "https://github.com/louwrentius/fio-plot"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ johnrichardrinehart ]; + }; +} diff --git a/pkgs/development/python-modules/pyan3/default.nix b/pkgs/development/python-modules/pyan3/default.nix new file mode 100644 index 0000000000000..9e56ae751e661 --- /dev/null +++ b/pkgs/development/python-modules/pyan3/default.nix @@ -0,0 +1,37 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + jinja2, + setuptools, + pytestCheckHook, +}: + +let + version = "v1.2.0"; +in +buildPythonPackage { + pname = "pyan3"; + pyproject = true; + inherit version; + + src = fetchFromGitHub { + owner = "Technologicat"; + repo = "pyan"; + tag = version; + hash = "sha256-v+wszUOCib/8962dnNWwtD0saF9NsNSBQ154lovox4w="; + }; + + build-system = [ setuptools ]; + + nativeBuildInputs = [ jinja2 ]; + + pythonImportsCheck = [ "pyan" ]; + + meta = { + description = "Static call graph generator for Python3"; + homepage = "https://github.com/Technologicat/pyan"; + license = lib.licenses.gpl2; + maintainers = with lib.maintainers; [ johnrichardrinehart ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 6f0fa61be5220..b16c5a827fede 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5153,6 +5153,8 @@ self: super: with self; { finvizfinance = callPackage ../development/python-modules/finvizfinance { }; + fio_plot = callPackage ../development/python-modules/fio_plot { }; + fiona = callPackage ../development/python-modules/fiona { }; fipy = callPackage ../development/python-modules/fipy { }; @@ -12433,6 +12435,8 @@ self: super: with self; { pyaml-env = callPackage ../development/python-modules/pyaml-env { }; + pyan3 = callPackage ../development/python-modules/pyan3 { }; + pyannotate = callPackage ../development/python-modules/pyannotate { }; pyannote-audio = callPackage ../development/python-modules/pyannote-audio { };