nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 # build-system
7 hatchling,
8
9 # dependencies
10 pyperclip,
11 textual,
12 tree-sitter,
13 tree-sitter-python,
14 tree-sitter-sql,
15
16 # tests
17 pytest-asyncio,
18 pytestCheckHook,
19}:
20
21buildPythonPackage rec {
22 pname = "textual-textarea";
23 version = "0.17.2";
24 pyproject = true;
25
26 src = fetchFromGitHub {
27 owner = "tconbeer";
28 repo = "textual-textarea";
29 tag = "v${version}";
30 hash = "sha256-y+2WvqD96eYkDEJn5qCGfGFNiJFAcF4KWWNgAIZUqJo=";
31 };
32
33 build-system = [ hatchling ];
34
35 pythonRelaxDeps = [
36 "textual"
37 ];
38
39 dependencies = [
40 pyperclip
41 textual
42 tree-sitter
43 tree-sitter-python
44 tree-sitter-sql
45 ]
46 ++ textual.optional-dependencies.syntax;
47
48 nativeCheckInputs = [
49 pytest-asyncio
50 pytestCheckHook
51 ];
52
53 disabledTests = [
54 # AssertionError: assert None == 'word'
55 # https://github.com/tconbeer/textual-textarea/issues/312
56 "test_autocomplete"
57 "test_autocomplete_with_types"
58 ];
59
60 pythonImportsCheck = [ "textual_textarea" ];
61
62 meta = {
63 description = "Text area (multi-line input) with syntax highlighting for Textual";
64 homepage = "https://github.com/tconbeer/textual-textarea";
65 changelog = "https://github.com/tconbeer/textual-textarea/releases/tag/v${version}";
66 license = lib.licenses.mit;
67 maintainers = with lib.maintainers; [ pcboy ];
68 };
69}