-self: super: {
- pinch = if builtins.hasAttr "pinch" super then
- super.pinch
- else
- super.writeShellScriptBin "pinch" ''
- exec ${self.python3}/bin/python3 ${
- super.fetchgit {
+self: super:
+let
+
+ # Pending upstream inclusion in https://github.com/NixOS/nixpkgs/pull/93377
+ fallback-backoff = self.python3Packages.callPackage ({ lib, buildPythonPackage
+ , fetchFromGitHub, pytestCheckHook, poetry, pytest-asyncio, }:
+ buildPythonPackage rec {
+ pname = "backoff";
+ version = "1.10.0";
+ src = fetchFromGitHub {
+ owner = "litl";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1jj0l6pjx747d2yyvnzd3qbm4qr73sq6cc56dhvd8wqfbp5279x0";
+ };
+ format = "pyproject";
+ nativeBuildInputs = [ poetry ];
+ checkInputs = [ pytestCheckHook pytest-asyncio ];
+ }) { };
+
+ fallback-git-cache = self.python3Packages.callPackage
+ ({ buildPythonPackage, fetchgit, git, backoff, mypy, }:
+ buildPythonPackage rec {
+ pname = "git-cache";
+ version = "1.3.0";
+ src = fetchgit {
+ url = "https://scottworley.com/git-cache.git";
+ rev = "v${version}";
+ sha256 = "sha256-0HbtnS98im0sd2JIdUePBcspUskL2DY8ylQdyEC2sS0=";
+ };
+ propagatedBuildInputs = [ backoff ];
+ checkInputs = [ git mypy ];
+ doCheck = true;
+ checkPhase = "./test.sh";
+ }) { backoff = self.python3Packages.backoff or fallback-backoff; };
+
+ fallback-pinch = self.python3Packages.callPackage
+ ({ buildPythonPackage, fetchgit, nix, git, makeWrapper, mypy, git-cache, }:
+ buildPythonPackage rec {
+ pname = "pinch";
+ version = "3.0.4";
+ src = fetchgit {
url = "https://scottworley.com/pinch.git";
- rev = "1.3";
- sha256 = "1l2pq0pqmjh5q8ggmz6sw6bz0nnz0jy92l5qgax8bmpm1qcszmxf";
- }
- }/pinch.py "$@"
- '';
-}
+ rev = "v${version}";
+ sha256 = "1i7v9vcjk599ffzwf3nq38y811cm6rnxriarqgpp3kwy52r91mi2";
+ };
+ buildInputs = [ makeWrapper ];
+ propagatedBuildInputs = [ git-cache ];
+ checkInputs = [ nix git mypy ];
+ postInstall = ''
+ wrapProgram "$out/bin/pinch" --prefix PATH : ${nix}/bin
+ '';
+ doCheck = true;
+ checkPhase = "./test.sh";
+ }) { git-cache = self.python3Packages.git-cache or fallback-git-cache; };
+
+in { pinch = super.pinch or fallback-pinch; }