1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 6 # build-system 7 setuptools, 8 tree-sitter-sql, 9 10 #optional-dependencies 11 tree-sitter, 12}: 13buildPythonPackage rec { 14 pname = "tree-sitter-sql"; 15 version = "0.3.10"; 16 pyproject = true; 17 18 src = fetchFromGitHub { 19 owner = "DerekStride"; 20 repo = "tree-sitter-sql"; 21 tag = "v${version}"; 22 hash = "sha256-vPPlDdLkenLG8uH26fzMOS3oxClCLSIKa6zhmDbnC/A="; 23 }; 24 25 postUnpack = '' 26 cp -rf ${tree-sitter-sql.passthru.parsers}/* $sourceRoot 27 ''; 28 29 build-system = [ 30 setuptools 31 ]; 32 33 passthru = { 34 # As mentioned in https://github.com/DerekStride/tree-sitter-sql README 35 # generated tree sitter parser files necessary for compilation 36 # are separately distributed on the gh-pages branch 37 parsers = fetchFromGitHub { 38 owner = "DerekStride"; 39 repo = "tree-sitter-sql"; 40 rev = "9853b887c5e4309de273922b681cc7bc09e30c78/gh-pages"; 41 hash = "sha256-p60nphbSN+O5fOlL06nw0qgQFpmvoNCTmLzDvUC/JGs="; 42 }; 43 }; 44 45 optional-dependencies = { 46 core = [ 47 tree-sitter 48 ]; 49 }; 50 51 pythonImportsCheck = [ "tree_sitter_sql" ]; 52 53 meta = { 54 description = "Sql grammar for tree-sitter"; 55 homepage = "https://github.com/DerekStride/tree-sitter-sql"; 56 changelog = "https://github.com/DerekStride/tree-sitter-sql/releases/tag/${src.tag}"; 57 license = lib.licenses.mit; 58 maintainers = with lib.maintainers; [ pcboy ]; 59 }; 60}