chromium,chromedriver: 129.0.6668.91 -> 129.0.6668.100
[NixPkgs.git] / pkgs / by-name / th / thonny / package.nix
blobf230b24d582a9c8ccb344081958084e29e9243b3
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   python3,
6   makeDesktopItem,
7   copyDesktopItems,
8   desktopToDarwinBundle,
9 }:
11 with python3.pkgs;
13 buildPythonApplication rec {
14   pname = "thonny";
15   version = "4.1.6";
17   src = fetchFromGitHub {
18     owner = pname;
19     repo = pname;
20     rev = "refs/tags/v${version}";
21     hash = "sha256-/ms2RESnV3bsJpK1zYYLHNUu1FtA6PntaseTbKMfUMc=";
22   };
24   nativeBuildInputs = [
25     copyDesktopItems
26   ] ++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle;
28   desktopItems = [
29     (makeDesktopItem {
30       name = "Thonny";
31       exec = "thonny";
32       icon = "thonny";
33       desktopName = "Thonny";
34       comment = "Python IDE for beginners";
35       categories = [
36         "Development"
37         "IDE"
38       ];
39     })
40   ];
42   dependencies =
43     with python3.pkgs;
44     (
45       [
46         jedi
47         pyserial
48         tkinter
49         docutils
50         pylint
51         mypy
52         pyperclip
53         asttokens
54         send2trash
55       ]
56       ++ lib.optionals stdenv.hostPlatform.isLinux [
57         dbus-next
58       ]
59     );
61   preFixup = ''
62     wrapProgram "$out/bin/thonny" \
63        --prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath ${python3.pkgs.jedi})
64   '';
66   postInstall = ''
67     install -Dm644 ./packaging/icons/thonny-48x48.png $out/share/icons/hicolor/48x48/apps/thonny.png
68   '';
70   # Tests need a DISPLAY
71   doCheck = false;
73   meta = {
74     description = "Python IDE for beginners";
75     longDescription = ''
76       Thonny is a Python IDE for beginners. It supports different ways
77       of stepping through the code, step-by-step expression
78       evaluation, detailed visualization of the call stack and a mode
79       for explaining the concepts of references and heap.
80     '';
81     homepage = "https://www.thonny.org/";
82     license = lib.licenses.mit;
83     maintainers = with lib.maintainers; [ leenaars ];
84     platforms = lib.platforms.unix;
85     mainProgram = "thonny";
86   };