lol
1{
2 lib,
3 python3,
4 fetchPypi,
5 copyDesktopItems,
6 libsForQt5,
7 makeDesktopItem,
8}:
9
10let
11 # get rid of rec
12 pname = "pyspread";
13 version = "2.4";
14 src = fetchPypi {
15 inherit pname version;
16 hash = "sha256-MZlR2Rap5oMRfCmswg9W//FYFkSEki7eyMNhLoGZgJM=";
17 };
18 inherit (libsForQt5)
19 qtsvg
20 wrapQtAppsHook
21 ;
22in
23python3.pkgs.buildPythonApplication {
24 format = "setuptools";
25 inherit pname version src;
26
27 nativeBuildInputs = [
28 copyDesktopItems
29 wrapQtAppsHook
30 ];
31
32 buildInputs = [
33 qtsvg
34 ];
35
36 propagatedBuildInputs = with python3.pkgs; [
37 python-dateutil
38 markdown2
39 matplotlib
40 numpy
41 pyenchant
42 pyqt5
43 setuptools
44 ];
45
46 strictDeps = true;
47
48 doCheck = false; # it fails miserably with a core dump
49
50 pythonImportsCheck = [ "pyspread" ];
51
52 desktopItems = [
53 (makeDesktopItem {
54 name = "pyspread";
55 exec = "pyspread";
56 icon = "pyspread";
57 desktopName = "Pyspread";
58 genericName = "Spreadsheet";
59 comment = "A Python-oriented spreadsheet application";
60 categories = [
61 "Office"
62 "Development"
63 "Spreadsheet"
64 ];
65 })
66 ];
67
68 preFixup = ''
69 makeWrapperArgs+=("''${qtWrapperArgs[@]}")
70 '';
71
72 meta = {
73 homepage = "https://pyspread.gitlab.io/";
74 description = "Python-oriented spreadsheet application";
75 longDescription = ''
76 pyspread is a non-traditional spreadsheet application that is based on and
77 written in the programming language Python. The goal of pyspread is to be
78 the most pythonic spreadsheet.
79
80 pyspread expects Python expressions in its grid cells, which makes a
81 spreadsheet specific language obsolete. Each cell returns a Python object
82 that can be accessed from other cells. These objects can represent
83 anything including lists or matrices.
84 '';
85 license = with lib.licenses; [ gpl3Plus ];
86 mainProgram = "pyspread";
87 maintainers = with lib.maintainers; [ ];
88 };
89}