Merge pull request #249623 from figsoda/paint

This commit is contained in:
figsoda 2023-08-20 17:06:14 -04:00 committed by GitHub
commit 67c1768d92
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 168 additions and 0 deletions

View File

@ -0,0 +1,79 @@
{ lib
, python3
, fetchFromGitHub
, fetchPypi
, fetchpatch
}:
let
python = python3.override {
packageOverrides = _: super: {
pillow = super.pillow.overridePythonAttrs rec {
version = "9.5.0";
format = "pyproject";
src = fetchPypi {
pname = "Pillow";
inherit version;
hash = "sha256-v1SEedM2cm16Ds6252fhefveN4M65CeUYCYxoHDWMPE=";
};
patches = [
# fix type handling for include and lib directories
(fetchpatch {
url = "https://github.com/python-pillow/Pillow/commit/0ec0a89ead648793812e11739e2a5d70738c6be5.patch";
hash = "sha256-m5R5fLflnbJXbRxFlTjT2X3nKdC05tippMoJUDsJmy0=";
})
];
};
textual = super.textual.overridePythonAttrs rec {
version = "0.27.0";
src = fetchFromGitHub {
owner = "Textualize";
repo = "textual";
rev = "v${version}";
hash = "sha256-ag+sJFprYW3IpH+BiMR5eSRUFMBeVuOnF6GTTuXGBHw=";
};
};
};
};
in
python.pkgs.buildPythonApplication rec {
pname = "textual-paint";
version = "0.1.0";
format = "pyproject";
src = fetchFromGitHub {
owner = "1j01";
repo = "textual-paint";
rev = "v${version}";
hash = "sha256-ubBWK4aoa9+wyUED7CmWwjknWsWauR/mkurDgkKDiY8=";
};
nativeBuildInputs = [
python.pkgs.setuptools
python.pkgs.wheel
];
propagatedBuildInputs = with python.pkgs; [
pillow
pyfiglet
pyperclip
rich
stransi
textual
];
pythonImportsCheck = [ "textual_paint" ];
meta = with lib; {
description = "A TUI image editor inspired by MS Paint";
homepage = "https://github.com/1j01/textual-paint";
license = licenses.mit;
maintainers = with maintainers; [ figsoda ];
mainProgram = "textual-paint";
};
}

View File

@ -0,0 +1,39 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, poetry-core
, hypothesis
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "ochre";
version = "0.4.0";
format = "pyproject";
src = fetchFromGitHub {
owner = "getcuia";
repo = "ochre";
rev = "v${version}";
hash = "sha256-U6qycLnldwNze3XMAn6DS3XGX4RaCZgW0pH/y/FEAkk=";
};
nativeBuildInputs = [
poetry-core
];
nativeCheckInputs = [
hypothesis
pytestCheckHook
];
pythonImportsCheck = [ "ochre" ];
meta = with lib; {
description = "A down-to-earth approach to colors";
homepage = "https://github.com/getcuia/ochre";
changelog = "https://github.com/getcuia/ochre/releases/tag/${src.rev}";
license = licenses.mit;
maintainers = with maintainers; [ figsoda ];
};
}

View File

@ -0,0 +1,44 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, poetry-core
, hypothesis
, pytestCheckHook
, ochre
}:
buildPythonPackage rec {
pname = "stransi";
version = "0.3.0";
format = "pyproject";
src = fetchFromGitHub {
owner = "getcuia";
repo = "stransi";
rev = "v${version}";
hash = "sha256-PDMel6emra5bzX+FwHvUVpFu2YkRKy31UwkCL4sGJ14=";
};
nativeBuildInputs = [
poetry-core
];
nativeCheckInputs = [
hypothesis
pytestCheckHook
];
propagatedBuildInputs = [
ochre
];
pythonImportsCheck = [ "stransi" ];
meta = with lib; {
description = "A lightweight Python parser library for ANSI escape code sequences";
homepage = "https://github.com/getcuia/stransi";
changelog = "https://github.com/getcuia/stransi/releases/tag/${src.rev}";
license = licenses.mit;
maintainers = with maintainers; [ figsoda ];
};
}

View File

@ -35667,6 +35667,8 @@ with pkgs;
tev = callPackage ../applications/graphics/tev { };
textual-paint = callPackage ../applications/graphics/textual-paint { };
themechanger = callPackage ../applications/misc/themechanger { };
thinkingRock = callPackage ../applications/misc/thinking-rock { };

View File

@ -7304,6 +7304,8 @@ self: super: with self; {
oca-port = callPackage ../development/python-modules/oca-port { };
ochre = callPackage ../development/python-modules/ochre { };
oci = callPackage ../development/python-modules/oci { };
ocifs = callPackage ../development/python-modules/ocifs { };
@ -12229,6 +12231,8 @@ self: super: with self; {
stopit = callPackage ../development/python-modules/stopit { };
stransi = callPackage ../development/python-modules/stransi { };
strategies = callPackage ../development/python-modules/strategies { };
stravalib = callPackage ../development/python-modules/stravalib { };