mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-28 09:53:10 +00:00
e0816431a2
Otherwise references to the Python interpreter inside the set are wrong, as demonstrated by: ``` nix with import <nixpkgs> { }; let python' = python3.override { packageOverrides = final: prev: { requests = prev.requests.overridePythonAttrs(old: { version = "1337"; }); }; }; in python'.pkgs.python.pkgs.requests ``` which returns the _non_ overriden requests. And the same with `self`: ``` with import <nixpkgs> { }; let python' = python3.override { self = python'; packageOverrides = final: prev: { requests = prev.requests.overridePythonAttrs(old: { version = "1337"; }); }; }; in python'.pkgs.python.pkgs.requests ``` which returns the overriden requests. This can manifest itself as file collisions when constructing environments or as subtly incorrect dependency graphs.
73 lines
1.8 KiB
Nix
73 lines
1.8 KiB
Nix
{ lib
|
|
, python3
|
|
, fetchFromGitHub
|
|
}:
|
|
|
|
let
|
|
python = python3.override {
|
|
self = python;
|
|
packageOverrides = self: super: {
|
|
lark = super.lark.overridePythonAttrs (old: rec {
|
|
# gdtoolkit needs exactly this lark version
|
|
version = "0.8.0";
|
|
src = fetchFromGitHub {
|
|
owner = "lark-parser";
|
|
repo = "lark";
|
|
rev = version;
|
|
hash = "sha256-KN9buVlH8hJ8t0ZP5yefeYM5vH5Gg7a7TEDGKJYpozs=";
|
|
fetchSubmodules = true;
|
|
};
|
|
patches = [ ];
|
|
});
|
|
};
|
|
};
|
|
in
|
|
python.pkgs.buildPythonApplication rec {
|
|
pname = "gdtoolkit3";
|
|
version = "3.5.0";
|
|
|
|
# If we try to get using fetchPypi it requires GeoIP (but the package dont has that dep!?)
|
|
src = fetchFromGitHub {
|
|
owner = "Scony";
|
|
repo = "godot-gdscript-toolkit";
|
|
rev = version;
|
|
hash = "sha256-cMGD5Xdf9ElS1NT7Q0NPB//EvUO0MI0VTtps5JRisZ4=";
|
|
};
|
|
|
|
disabled = python.pythonOlder "3.7";
|
|
|
|
propagatedBuildInputs = with python.pkgs; [
|
|
docopt
|
|
lark
|
|
pyyaml
|
|
setuptools
|
|
];
|
|
|
|
doCheck = true;
|
|
|
|
nativeCheckInputs = with python.pkgs; [
|
|
pytestCheckHook
|
|
hypothesis
|
|
];
|
|
|
|
preCheck = ''
|
|
# The tests want to run the installed executables
|
|
export PATH=$out/bin:$PATH
|
|
|
|
# gdtoolkit tries to write cache variables to $HOME/.cache
|
|
export HOME=$TMP
|
|
'';
|
|
|
|
# The tests are not working on NixOS
|
|
disabledTests = [ "test_cc_on_empty_file_succeeds" "test_cc_on_file_with_single_function_succeeds" ];
|
|
|
|
pythonImportsCheck = [ "gdtoolkit" "gdtoolkit.formatter" "gdtoolkit.linter" "gdtoolkit.parser" ];
|
|
|
|
meta = with lib; {
|
|
description = "Independent set of tools for working with Godot's GDScript - parser, linter and formatter";
|
|
homepage = "https://github.com/Scony/godot-gdscript-toolkit";
|
|
license = licenses.mit;
|
|
maintainers = with maintainers; [ shiryel tmarkus ];
|
|
};
|
|
}
|