Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 26 additions & 2 deletions pkgs/by-name/ke/keymap-drawer/package.nix
Original file line number Diff line number Diff line change
@@ -1,4 +1,28 @@
{
python3Packages,
python3,
fetchFromGitHub,
}:
python3Packages.toPythonApplication python3Packages.keymap-drawer

let
python = python3.override {
packageOverrides = self: super: {
tree-sitter = super.tree-sitter.overrideAttrs {
version = "0.24.0";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "py-tree-sitter";
tag = "v0.24.0";
hash = "sha256-ZDt/8suteaAjGdk71l8eej7jDkkVpVDBIZS63SA8tsU=";
fetchSubmodules = true;
};
# keymap-drawer only requires tree-sitter-devicetree grammer, and
# the tests fail with numereous TREE_SITTER_LANGUAGE_VERSION
# related failures related to other grammers. Hence we disable the
# tests altogether, hoping that in the future this python3.override
# won't be needed at all.
doInstallCheck = false;
};
};
};
in
python.pkgs.toPythonApplication python.pkgs.keymap-drawer
17 changes: 6 additions & 11 deletions pkgs/development/python-modules/keymap-drawer/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

buildPythonPackage,
fetchFromGitHub,
fetchPypi,
pythonOlder,

nix-update-script,
Expand Down Expand Up @@ -47,16 +46,7 @@ buildPythonPackage {
pydantic-settings
pyparsing
pyyaml
# keymap-drawer currently requires tree-sitter 0.24.0
# See https://github.com/caksoylar/keymap-drawer/issues/183
(tree-sitter.overrideAttrs rec {
version = "0.24.0";
src = fetchPypi {
inherit version;
inherit (tree-sitter) pname;
hash = "sha256-q9la9lyi9Pfso1Y0M5HtZp52Tzd0i1NSlG8A9/x45zQ=";
};
})
tree-sitter
tree-sitter-grammars.tree-sitter-devicetree
];

Expand All @@ -80,5 +70,10 @@ buildPythonPackage {
MattSturgeon
];
mainProgram = "keymap";
# keymap-drawer currently requires tree-sitter 0.24.0
# See https://github.com/caksoylar/keymap-drawer/issues/183
# top-level package `keymap-drawer` is not broken due to this
# incompatibility, thanks to a Python override
broken = lib.versionAtLeast tree-sitter.version "0.25.0";
};
}
42 changes: 37 additions & 5 deletions pkgs/development/python-modules/tree-sitter/default.nix
Original file line number Diff line number Diff line change
@@ -1,30 +1,62 @@
{
lib,
buildPythonPackage,
fetchPypi,
fetchFromGitHub,

# build-system
setuptools,

# tests
pytestCheckHook,
tree-sitter-python,
tree-sitter-rust,
tree-sitter-html,
tree-sitter-javascript,
tree-sitter-json,
}:

buildPythonPackage rec {
pname = "tree-sitter";
version = "0.25.2";
pyproject = true;

src = fetchPypi {
inherit pname version;
hash = "sha256-/kPBWFVdpGcjsotS4FitREGVr9HbPKdyDFmiVFROnCA=";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "py-tree-sitter";
tag = "v${version}";
hash = "sha256-MgiVxq9MUaOkNNgn46g2Cy7/IUx/yatKSR1vE6LscKg=";
fetchSubmodules = true;
};

build-system = [ setuptools ];

nativeCheckInputs = [
pytestCheckHook
tree-sitter-python
tree-sitter-rust
tree-sitter-html
tree-sitter-javascript
tree-sitter-json
];

pythonImportsCheck = [ "tree_sitter" ];

preCheck = ''
# https://github.com/NixOS/nixpkgs/issues/255262#issuecomment-1721265871
rm -r tree_sitter
'';

disabledTests = [
# Test fails only in the Nix sandbox, with:
#
# AssertionError: Lists differ: ['', '', ''] != ['graph {\n', 'label="new_parse"\n', '}\n']
"test_dot_graphs"
];

meta = {
description = "Python bindings to the Tree-sitter parsing library";
homepage = "https://github.com/tree-sitter/py-tree-sitter";
changelog = "https://github.com/tree-sitter/py-tree-sitter/releases/tag/v${version}";
changelog = "https://github.com/tree-sitter/py-tree-sitter/releases/tag/${src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
};
Expand Down
Loading