1{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, lark, docopt, pyyaml, setuptools }:
2
3let lark080 = lark.overrideAttrs (old: rec {
4 # gdtoolkit needs exactly this lark version
5 version = "0.8.0";
6 src = fetchFromGitHub {
7 owner = "lark-parser";
8 repo = "lark";
9 rev = version;
10 sha256 = "su7kToZ05OESwRCMPG6Z+XlFUvbEb3d8DgsTEcPJMg4=";
11 };
12});
13
14in
15buildPythonPackage rec {
16 pname = "gdtoolkit";
17 version = "3.3.1";
18
19 propagatedBuildInputs = [
20 lark080
21 docopt
22 pyyaml
23 setuptools
24 ];
25
26 # If we try to get using fetchPypi it requires GeoIP (but the package dont has that dep!?)
27 src = fetchFromGitHub {
28 owner = "Scony";
29 repo = "godot-gdscript-toolkit";
30 rev = version;
31 sha256 = "13nnpwy550jf5qnm9ixpxl1bwfnhhbiys8vqfd25g3aim4bm3gnn";
32 };
33
34 disabled = pythonOlder "3.7";
35
36 # Tests cannot be run because they need network to install additional dependencies using pip and tox
37 doCheck = false;
38 pythonImportsCheck = [ "gdtoolkit" "gdtoolkit.formatter" "gdtoolkit.linter" "gdtoolkit.parser" ];
39
40 meta = with lib; {
41 description = "Independent set of tools for working with Godot's GDScript - parser, linter and formatter";
42 homepage = "https://github.com/Scony/godot-gdscript-toolkit";
43 license = licenses.mit;
44 maintainers = with maintainers; [ shiryel ];
45 };
46}