1{ lib
2, python3
3, fetchFromGitLab
4, fetchFromGitHub
5}:
6let
7 python = python3.override {
8 packageOverrides = self: super: {
9 lark010 = super.lark.overridePythonAttrs (old: rec {
10 version = "0.10.0";
11
12 src = fetchFromGitHub {
13 owner = "lark-parser";
14 repo = "lark";
15 rev = "refs/tags/${version}";
16 sha256 = "sha256-ctdPPKPSD4weidyhyj7RCV89baIhmuxucF3/Ojx1Efo=";
17 };
18
19 patches = [ ];
20
21 disabledTestPaths = [ "tests/test_nearley/test_nearley.py" ];
22 });
23 };
24 self = python;
25 };
26in
27python.pkgs.buildPythonApplication rec {
28 pname = "sca2d";
29 version = "0.2.0";
30 format = "setuptools";
31
32 src = fetchFromGitLab {
33 owner = "bath_open_instrumentation_group";
34 repo = "sca2d";
35 rev = "v${version}";
36 hash = "sha256-P+7g57AH8H7q0hBE2I9w8A+bN5M6MPbc9gA0b889aoQ=";
37 };
38
39 propagatedBuildInputs = with python.pkgs; [ lark010 colorama ];
40
41 pythonImportsCheck = [ "sca2d" ];
42
43 meta = with lib; {
44 description = "Experimental static code analyser for OpenSCAD";
45 mainProgram = "sca2d";
46 homepage = "https://gitlab.com/bath_open_instrumentation_group/sca2d";
47 changelog = "https://gitlab.com/bath_open_instrumentation_group/sca2d/-/blob/${src.rev}/CHANGELOG.md";
48 license = licenses.gpl3Only;
49 maintainers = with maintainers; [ traxys ];
50 };
51}