Skip to main content

Python bindings for the Tree-Sitter parsing library

Project description

Python Tree-sitter

CI pypi

This module provides Python bindings to the tree-sitter parsing library.

Installation

The package has no library dependencies and provides pre-compiled wheels for all major platforms.

[!NOTE] If your platform is not currently supported, please submit an issue on GitHub.

pip install tree-sitter

Usage

Setup

Install languages

Tree-sitter language implementations also provide pre-compiled binary wheels. Let's take Python as an example.

pip install tree-sitter-python

Then, you can load it as a Language object:

import tree_sitter_python as tspython
from tree_sitter import Language, Parser

PY_LANGUAGE = Language(tspython.language(), "python")

Build from source

[!WARNING] This method of loading languages is deprecated and will be removed in v0.22.0. You should only use it if you need languages that have not updated their bindings. Keep in mind that you will need a C compiler in this case.

First you'll need a Tree-sitter language implementation for each language that you want to parse.

git clone https://github.com/tree-sitter/tree-sitter-go
git clone https://github.com/tree-sitter/tree-sitter-javascript
git clone https://github.com/tree-sitter/tree-sitter-python

Use the Language.build_library method to compile these into a library that's usable from Python. This function will return immediately if the library has already been compiled since the last time its source code was modified:

from tree_sitter import Language, Parser

Language.build_library(
    # Store the library in the `build` directory
    "build/my-languages.so",
    # Include one or more languages
    ["vendor/tree-sitter-go", "vendor/tree-sitter-javascript", "vendor/tree-sitter-python"],
)

Load the languages into your app as Language objects:

GO_LANGUAGE = Language("build/my-languages.so", "go")
JS_LANGUAGE = Language("build/my-languages.so", "javascript")
PY_LANGUAGE = Language("build/my-languages.so", "python")

Basic parsing

Create a Parser and configure it to use a language:

parser = Parser()
parser.set_language(PY_LANGUAGE)

Parse some source code:

tree = parser.parse(
    bytes(
        """
def foo():
    if bar:
        baz()
""",
        "utf8",
    )
)

If you have your source code in some data structure other than a bytes object, you can pass a "read" callable to the parse function.

The read callable can use either the byte offset or point tuple to read from buffer and return source code as bytes object. An empty bytes object or None terminates parsing for that line. The bytes must encode the source as UTF-8.

For example, to use the byte offset:

src = bytes(
    """
def foo():
    if bar:
        baz()
""",
    "utf8",
)


def read_callable_byte_offset(byte_offset, point):
    return src[byte_offset : byte_offset + 1]


tree = parser.parse(read_callable_byte_offset)

And to use the point:

src_lines = ["\n", "def foo():\n", "    if bar:\n", "        baz()\n"]


def read_callable_point(byte_offset, point):
    row, column = point
    if row >= len(src_lines) or column >= len(src_lines[row]):
        return None
    return src_lines[row][column:].encode("utf8")


tree = parser.parse(read_callable_point)

Inspect the resulting Tree:

root_node = tree.root_node
assert root_node.type == 'module'
assert root_node.start_point == (1, 0)
assert root_node.end_point == (4, 0)

function_node = root_node.children[0]
assert function_node.type == 'function_definition'
assert function_node.child_by_field_name('name').type == 'identifier'

function_name_node = function_node.children[1]
assert function_name_node.type == 'identifier'
assert function_name_node.start_point == (1, 4)
assert function_name_node.end_point == (1, 7)

function_body_node = function_node.child_by_field_name("body")

if_statement_node = function_body_node.child(0)
assert if_statement_node.type == "if_statement"

function_call_node = if_statement_node.child_by_field_name("consequence").child(0).child(0)
assert function_call_node.type == "call"

function_call_name_node = function_call_node.child_by_field_name("function")
assert function_call_name_node.type == "identifier"

function_call_args_node = function_call_node.child_by_field_name("arguments")
assert function_call_args_node.type == "argument_list"


assert root_node.sexp() == (
    "(module "
        "(function_definition "
            "name: (identifier) "
            "parameters: (parameters) "
            "body: (block "
                "(if_statement "
                    "condition: (identifier) "
                    "consequence: (block "
                        "(expression_statement (call "
                            "function: (identifier) "
                            "arguments: (argument_list))))))))"
)

Walking syntax trees

If you need to traverse a large number of nodes efficiently, you can use a TreeCursor:

cursor = tree.walk()

assert cursor.node.type == "module"

assert cursor.goto_first_child()
assert cursor.node.type == "function_definition"

assert cursor.goto_first_child()
assert cursor.node.type == "def"

# Returns `False` because the `def` node has no children
assert not cursor.goto_first_child()

assert cursor.goto_next_sibling()
assert cursor.node.type == "identifier"

assert cursor.goto_next_sibling()
assert cursor.node.type == "parameters"

assert cursor.goto_parent()
assert cursor.node.type == "function_definition"

[!IMPORTANT] Keep in mind that the cursor can only walk into children of the node that it started from.

See examples/walk_tree.py for a complete example of iterating over every node in a tree.

Editing

When a source file is edited, you can edit the syntax tree to keep it in sync with the source:

new_src = src[:5] + src[5 : 5 + 2].upper() + src[5 + 2 :]

tree.edit(
    start_byte=5,
    old_end_byte=5,
    new_end_byte=5 + 2,
    start_point=(0, 5),
    old_end_point=(0, 5),
    new_end_point=(0, 5 + 2),
)

Then, when you're ready to incorporate the changes into a new syntax tree, you can call Parser.parse again, but pass in the old tree:

new_tree = parser.parse(new_src, tree)

This will run much faster than if you were parsing from scratch.

The Tree.changed_ranges method can be called on the old tree to return the list of ranges whose syntactic structure has been changed:

for changed_range in tree.changed_ranges(new_tree):
    print("Changed range:")
    print(f"  Start point {changed_range.start_point}")
    print(f"  Start byte {changed_range.start_byte}")
    print(f"  End point {changed_range.end_point}")
    print(f"  End byte {changed_range.end_byte}")

Pattern-matching

You can search for patterns in a syntax tree using a tree query:

query = PY_LANGUAGE.query(
    """
(function_definition
  name: (identifier) @function.def
  body: (block) @function.block)

(call
  function: (identifier) @function.call
  arguments: (argument_list) @function.args)
"""
)

Captures

captures = query.captures(tree.root_node)
assert len(captures) == 2
assert captures[0][0] == function_name_node
assert captures[0][1] == "function.def"

The Query.captures() method takes optional start_point, end_point, start_byte and end_byte keyword arguments, which can be used to restrict the query's range. Only one of the ..._byte or ..._point pairs need to be given to restrict the range. If all are omitted, the entire range of the passed node is used.

Matches

matches = query.matches(tree.root_node)
assert len(matches) == 2

# first match
assert matches[0][1]["function.def"] == function_name_node
assert matches[0][1]["function.block"] == function_body_node

# second match
assert matches[1][1]["function.call"] == function_call_name_node
assert matches[1][1]["function.args"] == function_call_args_node

The Query.matches() method takes the same optional arguments as Query.captures(). The difference between the two methods is that Query.matches() groups captures into matches, which is much more useful when your captures within a query relate to each other. It maps the capture's name to the node that was captured via a dictionary.

To try out and explore the code referenced in this README, check out examples/usage.py.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tree-sitter-0.21.2.tar.gz (155.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

tree_sitter-0.21.2-cp312-cp312-win_amd64.whl (109.8 kB view details)

Uploaded CPython 3.12Windows x86-64

tree_sitter-0.21.2-cp312-cp312-musllinux_1_1_x86_64.whl (496.3 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ x86-64

tree_sitter-0.21.2-cp312-cp312-musllinux_1_1_aarch64.whl (486.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ ARM64

tree_sitter-0.21.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (502.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

tree_sitter-0.21.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (490.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

tree_sitter-0.21.2-cp312-cp312-macosx_11_0_arm64.whl (125.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tree_sitter-0.21.2-cp312-cp312-macosx_10_9_x86_64.whl (133.6 kB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

tree_sitter-0.21.2-cp311-cp311-win_amd64.whl (109.7 kB view details)

Uploaded CPython 3.11Windows x86-64

tree_sitter-0.21.2-cp311-cp311-musllinux_1_1_x86_64.whl (493.7 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

tree_sitter-0.21.2-cp311-cp311-musllinux_1_1_aarch64.whl (483.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ ARM64

tree_sitter-0.21.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (498.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

tree_sitter-0.21.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (487.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

tree_sitter-0.21.2-cp311-cp311-macosx_11_0_arm64.whl (126.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tree_sitter-0.21.2-cp311-cp311-macosx_10_9_x86_64.whl (133.4 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

tree_sitter-0.21.2-cp310-cp310-win_amd64.whl (109.7 kB view details)

Uploaded CPython 3.10Windows x86-64

tree_sitter-0.21.2-cp310-cp310-musllinux_1_1_x86_64.whl (492.8 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

tree_sitter-0.21.2-cp310-cp310-musllinux_1_1_aarch64.whl (481.9 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ ARM64

tree_sitter-0.21.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (496.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

tree_sitter-0.21.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (485.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

tree_sitter-0.21.2-cp310-cp310-macosx_11_0_arm64.whl (126.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

tree_sitter-0.21.2-cp310-cp310-macosx_10_9_x86_64.whl (133.4 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

tree_sitter-0.21.2-cp39-cp39-win_amd64.whl (110.0 kB view details)

Uploaded CPython 3.9Windows x86-64

tree_sitter-0.21.2-cp39-cp39-musllinux_1_1_x86_64.whl (494.4 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

tree_sitter-0.21.2-cp39-cp39-musllinux_1_1_aarch64.whl (484.4 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ ARM64

tree_sitter-0.21.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (498.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

tree_sitter-0.21.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (487.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

tree_sitter-0.21.2-cp39-cp39-macosx_11_0_arm64.whl (126.4 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

tree_sitter-0.21.2-cp39-cp39-macosx_10_9_x86_64.whl (133.6 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

tree_sitter-0.21.2-cp38-cp38-win_amd64.whl (110.0 kB view details)

Uploaded CPython 3.8Windows x86-64

tree_sitter-0.21.2-cp38-cp38-musllinux_1_1_x86_64.whl (499.2 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

tree_sitter-0.21.2-cp38-cp38-musllinux_1_1_aarch64.whl (490.9 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ ARM64

tree_sitter-0.21.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (503.9 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

tree_sitter-0.21.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (493.1 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

tree_sitter-0.21.2-cp38-cp38-macosx_11_0_arm64.whl (126.3 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

tree_sitter-0.21.2-cp38-cp38-macosx_10_9_x86_64.whl (133.7 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

Details for the file tree-sitter-0.21.2.tar.gz.

File metadata

  • Download URL: tree-sitter-0.21.2.tar.gz
  • Upload date:
  • Size: 155.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for tree-sitter-0.21.2.tar.gz
Algorithm Hash digest
SHA256 7ba9cbfafee65e0f469f321c31c09d1a2b57cf3a5839f27a960be3550b7fea35
MD5 c4d782b4df7ee60ce19eda41c6c22bcb
BLAKE2b-256 41702457bd20f117e5d219abff96656bbe51dbf9df2b3f63ef27315c66dc1501

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c7a12e461a1a55c916040318ac34ce7245a298a5978d01f1a8c49c9ebbfb8e19
MD5 a600c75bb38bb0f73d082f335472b012
BLAKE2b-256 238189fd68af0b3833a69b9990611d01cc694e6242ac0f663dd33e65c86b77b5

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 f54d1bf01b9d1999d5a4a09e9a756a51bf82ec87bc3c49fe03ae105994158ca2
MD5 58a5be8f7af2641cd2e67f1e290f85a4
BLAKE2b-256 2aec16d00e35c6c75e49379c20d68ca6799846d55f2c7bb59da1e5876bc689b7

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp312-cp312-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp312-cp312-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 f12c99db307e3ca6f0cabe5976a9dbf826dadf065bbf92bd4f72301065878779
MD5 d66cc5eee1b899caab325031aa1635a4
BLAKE2b-256 2196f187d4cfc0db8c7a3ccfe9f75ead207f27c02431fe69fe2fd12038957422

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 689c03c8d12fd6eee1ce39dd5caf72040d00c5f3984bc0430e56f0b304cdee5e
MD5 931eb0d101428710c401beffea5485d8
BLAKE2b-256 12c6a6797741ff3bbe178cdf1a6ba00b2d22e92bca2458f651755000a51b8259

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 baaabcd3966f264bcfaf50b51fff3640d1b847a95c3052acf197c6d37e5b734c
MD5 02323cdb6d5a7b9628b95e051c0a64c5
BLAKE2b-256 5ca79380343031f409b0c14e810f2f38845f9c7962152f03ad89374675d6a679

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 491fbfab63206245e52b9c1c2bcc57b05e50cc788c1efb154f852fa2e84ba3ee
MD5 bc22a0f0c2568b8dc62d18b1e2d86f76
BLAKE2b-256 434172b0161f6d45446c9b2097d5cd19bf515f4aea87bbaeb36cf3d6f3ed3025

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 aab2567e73d1b787c59cd47b87d3e7869032aa84d0cc4cd4ba6184a22865fa68
MD5 a1ba4f14db80ed3a16889b58dd4a0a49
BLAKE2b-256 81ac6cd7497c875e8b9f8e9ebe1cbc9963713981eb8d8cec566738d6d8ad94b3

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6de7b9d198e16f9a747f8f110b2fa4a5605c05ce1ec5c3d8f0ef895ed02802c3
MD5 6e398d5d26863a14db2d67451f520d72
BLAKE2b-256 70c50437db4992925f7bbee24be3d94795ee4895daf521aeb4c0437ca0b45bc9

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 d8ad3c847955f71a897c7d30e46eef3324861018d8b5db195c3369c76a26286b
MD5 11a80aa81ab2168159e97ffc33b2d793
BLAKE2b-256 768fdd2eb29b470258b8d6245be742913882693b373eba8e7afa8a5e2f2e55a9

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp311-cp311-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 52ca15b7f8078b34b7a2802a5ee5b6cf254568771570f7248b5c19e6f1a930c3
MD5 86b807e52ddc60082f6390b15b17345e
BLAKE2b-256 42bea369bfa67e5f034526fe88820bc710d6b04421f7c08a22ddb3a5ef26489c

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c8301d47d025861d54f2e589666f4dc94a5e5f8a2d86fc5212aa112ae977b20e
MD5 5d18b54e065cc66988d8e0a630234530
BLAKE2b-256 201cb1d7d5dc419a58bea0409a2afdd0910c4f1d1e73844285a9632d31a9d5a7

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 74d31aa22c96fb3f71a9e23310d9a914594bf932c8710a86894e7db57113f363
MD5 1f5589f2ec688164d2d88941037dcae8
BLAKE2b-256 eb2517ef466289703d92d77127b895676c11593bd2438f9d12e674c110f0b53d

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0631ada11059987568eb855a33ee13d60d4bdb5eb117bfb0d0ede9a17b8e220a
MD5 ef8860d892da7b0d77404d5391a91c70
BLAKE2b-256 15672216658165491337cc66ef6160f0d6996cbb594ef0c27ebcceb1e2a6be70

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1c7acf1305ebac2dcd879c53886630e1b5b16ce2a9c93c2cad5da1762d4ab335
MD5 c1f251cc70c19adcae504431387644db
BLAKE2b-256 1041ff83c41bc69451ccd90f15e315b4a657f1694214040e0f3d74da1f066bd7

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 eeebc8811812e1821cdf8967ce736fc192466ca1d4e4203a60e0e6ab1c5aae52
MD5 a4faf37707cc82e0af9489b55688d3cb
BLAKE2b-256 a823af86c6f07948d8327a9bedf11da6ef79d9b175e24c8851c190514c1e48fa

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 52f4fd391fcfbcc05e51712e21ed37797d1b26ba29143ae085bf5b9460045511
MD5 d3e71d053c71ae1a63c6424c3d2d039d
BLAKE2b-256 ac496f14d71f51132f1a64043dbb4347bf70f6de2cb6abcbc341befab10fe322

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp310-cp310-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 5041dfdc2a0558a6688aae36292719208d23e7175c85acd4d227472939f42dd4
MD5 10a6d2073077aaf4403b04111f12631e
BLAKE2b-256 38480724c6868a22d30bd9113254bccb4ded70d653f322ad0561e345889c6692

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 29f039021e1cb08b9cc1c5d8a99e5427b46ce79936fe1e94002da252c1e5888f
MD5 aa74b722c858c60c446b26e291a16fbf
BLAKE2b-256 599837c528975c7a47254ed249ef5fa03b7046fea6b4286a9926bfc028ca731a

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ccd81aaea79a0af624b50ea889604c8dc2f8de80aa10d22c42e36d01ff137622
MD5 106acc6e01e7b2f0205016571c5120db
BLAKE2b-256 5cb5b65c76311186b90b7f3ca72f0e939e33f4043ec564bf78e9bb04b55d0eb3

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 53006c5325a592acbbed876319e908e011d2a12513c16d51d1e54db9d7b9559d
MD5 9b09f9dc22553679cc27e077e2b21a7b
BLAKE2b-256 69d3533b4a0f88552d537a6002fff1a07d421f6e2a80a46a90abaedbf53478cc

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 51a8640d3eba42b40484530eb7f19630789bea677478fa8d717888d010cb4a11
MD5 c8fa1ba630b74e3b79ba7215b619fc75
BLAKE2b-256 486d511de3e1cfff2fc166a30945d645b20f83d227555b9a314eb774a2087cb3

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: tree_sitter-0.21.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 110.0 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for tree_sitter-0.21.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 c9cc8048750682b68cd1747fc206d6b4332290356e4f149cabd05533d86fa9a4
MD5 5c9fef3d13cb33e8b52bf9c5f7478e88
BLAKE2b-256 9b52581c77649ac65bb7f1706386ada5f3c76bd3aff41d12dec2aaaf3ffa67d3

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a97ee0fa9e7f5acbea77ff9186d2adcc995da9e7132d37edf82a60b0da1163e9
MD5 e9f4793252e7c19474e81b4c326fc140
BLAKE2b-256 933b1e7cd58e7908c2a7742fdc9090801d929b06f9c388dbf4ea1ba954522aae

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp39-cp39-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 52a6f063777c443b01e907c0fcfa8ca52dd470a3949fbe75d06c3b86cf0d3ad9
MD5 2fb90f1702756d7565690eb5786047ba
BLAKE2b-256 e93beb239ceff72c8c29c795f04f096b33a2d7ba04a52312d4c5336d497b92bd

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3a2994c4a7ac1a93a67e79ecc39b2aeed0bddfac98ca828e5591fb68fda66c7c
MD5 35544a4460f8650b904d22b7691cc5be
BLAKE2b-256 ad21c27f7da7dfa9d77f1bb25741a88da83f4e13dda629511c649c209d6d153a

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 67c7427b85a362aa1e1fccf53360d49f9f42600d76f6145f879288387ad78ce6
MD5 1e813341563760ecd411b03934c73639
BLAKE2b-256 81f4e8fb9f38cbc9714f9b02b88d262eb9fb16051e50e99820901dc312685ba1

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cca501a561582b4cc0bac7a237c49e2a7f6a652fe14d313537b9572d7c128cf2
MD5 1f1748aacc8d9071523e3074a79afd89
BLAKE2b-256 8b72291adae27120486a6f80247edb4f9790dc83cde2ae7999e2b94e37407126

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e7a108337479646bb3bae28545d9a6daec5a7f38562075b9cb1902e9e5ffc8e9
MD5 9d33d96631011a218c28fb8831090b92
BLAKE2b-256 7c154cec5fa8ae26c79bf7c90abc60dc08d4a2748f7de5b07089210eebe93740

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: tree_sitter-0.21.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 110.0 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for tree_sitter-0.21.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 bc9a5351e8c5ccb3a5ae9e12de748d3e3df39ff7a2929ee7ee567a48c74a40f3
MD5 675e2ab3cdc44f520de83e922251ab51
BLAKE2b-256 efcd439ff4789e015bf3d2b52c7851b7b04e40e0188d39a8c949977ff76b0d24

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 ba8d3985c234da31b3fde4ee6d8fd184f31c6242131ebdc6af021676470c720c
MD5 63f2442e46d3e99644e97b94c91b9815
BLAKE2b-256 ee0ecdc919ab03242df40b2d0932c5642ac336eba58c31fd14e0282589d9a1cd

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp38-cp38-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 c99815bf9a4576a854b29d21730e9bf2e9431218ef8672aab319eca02db90ee6
MD5 ce75625b4e34d357d721600a60fefb3e
BLAKE2b-256 0df7fbb2a7d1778df2651b8b182db50e172af13659bb0bef991d5958613f4136

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a693dcd96b2d24f1df4007a9bb63ccdf346eb5da3dd091e797c38d0f6690e2fa
MD5 bc907b11d3944351d7354f55bbefb61c
BLAKE2b-256 c321ebafe6977f95f76df2c8bc42caa55a8b55b4e71f0b49b943d7007feceea3

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7e163fe6ddecb12cebd73dbe77b122c220f1d1819818693498fe1cbef48f3cc6
MD5 1b1b0ec62d676b895524064464c34166
BLAKE2b-256 8c666387e8503e26724273068ec2815847eda49dd027d36a06bf888a8aa84fa1

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 49602b8ef79d0652af7329cf5e9ef9de9ab81be65d52be185d5cac035bace33f
MD5 0085e85dc9ca36394dbfd07579b1d388
BLAKE2b-256 664c96a31a770fd0258d3eb67f1fc3caaccfe901d82d4d74da12390b95250164

See more details on using hashes here.

File details

Details for the file tree_sitter-0.21.2-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for tree_sitter-0.21.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b5bda0caec692d00799defcfcd324ad71f0e28db0e00960e270a55b8883f0216
MD5 93565fd89f3ed13ad1059512e062c729
BLAKE2b-256 c672a22a2b6760b6ac0e1b43f83152c86128daf8a48ac3e1b0e1f03640eed17a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page