diff --git a/pkgs/applications/misc/retool/default.nix b/pkgs/applications/misc/retool/default.nix new file mode 100644 index 000000000000..a88e719c6ddd --- /dev/null +++ b/pkgs/applications/misc/retool/default.nix @@ -0,0 +1,58 @@ +{ lib +, stdenv +, python3 +, fetchFromGitHub +, qt6 +}: + +python3.pkgs.buildPythonApplication { + pname = "retool"; + version = "unstable-2023-08-24"; + + format = "pyproject"; + disabled = python3.pkgs.pythonOlder "3.10"; + + src = fetchFromGitHub { + owner = "unexpectedpanda"; + repo = "retool"; + rev = "d8acdb960d35b5a6b01d7dc66b7e40b3ec451301"; + hash = "sha256-6y/7RR7O2xYKXdxaFtkRfnSlwygp/LRDUozUJo6ue7s="; + }; + + patches = [ + # pythonRelaxDepsHook will not work in this package until + # https://github.com/NixOS/nixpkgs/pull/248516 hits master + ./relax_deps.patch + ]; + + nativeBuildInputs = with python3.pkgs; [ + poetry-core + qt6.wrapQtAppsHook + ]; + + buildInputs = [ + qt6.qtbase + ] ++ + lib.optionals (stdenv.isLinux) [ + qt6.qtwayland + ]; + + propagatedBuildInputs = with python3.pkgs; [ + alive-progress + lxml + psutil + validators + pyside6 + strictyaml + ]; + + # Upstream has no tests + doCheck = false; + + meta = with lib; { + description = "A better filter tool for Redump and No-Intro dats"; + homepage = "https://github.com/unexpectedpanda/retool"; + license = licenses.bsd3; + maintainers = with maintainers; [ thiagokokada ]; + }; +} diff --git a/pkgs/applications/misc/retool/relax_deps.patch b/pkgs/applications/misc/retool/relax_deps.patch new file mode 100644 index 000000000000..528d2b47d970 --- /dev/null +++ b/pkgs/applications/misc/retool/relax_deps.patch @@ -0,0 +1,25 @@ +diff --git a/pyproject.toml b/pyproject.toml +index 6e62347..34600a0 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -13,12 +13,14 @@ packages = [ + + [tool.poetry.dependencies] + python = ">=3.10,<3.12" +-strictyaml = "^1.6.2" +-lxml = "^4.9.2" +-PySide6 = "^6.4.2" +-validators = "^0.20.0" +-alive-progress = "^3.0.1" +-psutil = "^5.9.4" ++strictyaml = "*" ++lxml = "*" ++# ERROR: Could not find a version that satisfies the requirement PySide6 (from retool) (from versions: none) ++# ERROR: No matching distribution found for PySide6 ++# PySide6 = "*" ++validators = "*" ++alive-progress = "*" ++psutil = "*" + + [tool.poetry.scripts] + retool = "retool:main" diff --git a/pkgs/development/python-modules/about-time/default.nix b/pkgs/development/python-modules/about-time/default.nix new file mode 100644 index 000000000000..3759957c9ca6 --- /dev/null +++ b/pkgs/development/python-modules/about-time/default.nix @@ -0,0 +1,31 @@ +{ lib +, fetchPypi +, buildPythonPackage +}: + +buildPythonPackage rec { + pname = "about-time"; + version = "4.2.1"; + + # PyPi release does not contain test files, but the repo has no release tags, + # so while having no tests is not ideal, follow the PyPi releases for now + # TODO: switch to fetchFromGitHub once this issue is fixed: + # https://github.com/rsalmei/about-time/issues/15 + src = fetchPypi { + inherit pname version; + hash = "sha256-alOIYtM85n2ZdCnRSZgxDh2/2my32bv795nEcJhH/s4="; + }; + + doCheck = false; + + pythonImportsCheck = [ + "about_time" + ]; + + meta = with lib; { + description = "A cool helper for tracking time and throughput of code blocks, with beautiful human friendly renditions"; + homepage = "https://github.com/rsalmei/about-time"; + license = licenses.mit; + maintainers = with maintainers; [ thiagokokada ]; + }; +} diff --git a/pkgs/development/python-modules/alive-progress/default.nix b/pkgs/development/python-modules/alive-progress/default.nix new file mode 100644 index 000000000000..7e3adbf1166e --- /dev/null +++ b/pkgs/development/python-modules/alive-progress/default.nix @@ -0,0 +1,41 @@ +{ lib +, about-time +, buildPythonPackage +, click +, fetchFromGitHub +, grapheme +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "alive-progress"; + version = "3.1.4"; + + src = fetchFromGitHub { + owner = "rsalmei"; + repo = pname; + rev = "v${version}"; + hash = "sha256-27PgxQ9nw8p5hfaSf/jPYG7419o3i8B8R09o93szSOk="; + }; + + propagatedBuildInputs = [ + about-time + grapheme + ]; + + nativeCheckInputs = [ + click + pytestCheckHook + ]; + + pythonImportsCheck = [ + "alive_progress" + ]; + + meta = with lib; { + description = "A new kind of Progress Bar, with real-time throughput, ETA, and very cool animations"; + homepage = "https://github.com/rsalmei/alive-progress"; + license = licenses.mit; + maintainers = with maintainers; [ thiagokokada ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7054f76b7740..ace14d9f0fd8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6212,6 +6212,8 @@ with pkgs; reg = callPackage ../tools/virtualization/reg { }; + retool = callPackage ../applications/misc/retool { }; + rex = callPackage ../tools/system/rex { }; river = callPackage ../applications/window-managers/river { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 2776e271a9f0..6b0e50d61dde 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -20,6 +20,8 @@ self: super: with self; { aardwolf = callPackage ../development/python-modules/aardwolf { }; + about-time = callPackage ../development/python-modules/about-time { }; + absl-py = callPackage ../development/python-modules/absl-py { }; accessible-pygments = callPackage ../development/python-modules/accessible-pygments { }; @@ -426,6 +428,8 @@ self: super: with self; { algebraic-data-types = callPackage ../development/python-modules/algebraic-data-types { }; + alive-progress = callPackage ../development/python-modules/alive-progress { }; + aliyun-python-sdk-cdn = callPackage ../development/python-modules/aliyun-python-sdk-cdn { }; aliyun-python-sdk-config = callPackage ../development/python-modules/aliyun-python-sdk-config { };