Tree-sitter

Latest version: v0.24.0

Safety actively analyzes 723158 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 3

0.23.1

What's Changed
* build: bump tree_sitter/core from `12fb318` to `ee06325` by dependabot in https://github.com/tree-sitter/py-tree-sitter/pull/286
* ci: bump pypa/cibuildwheel from 2.20 to 2.21 in the actions group by dependabot in https://github.com/tree-sitter/py-tree-sitter/pull/291


**Full Changelog**: https://github.com/tree-sitter/py-tree-sitter/compare/v0.23.0...v0.23.1

0.23.0

Additions:

- `Node.child_containing_descendant(descendant)`
- `Tree.language` (getter)
- `Query.pattern_count` (getter)
- `Query.capture_count` (getter)
- `Query.match_limit` (getter)
- `Query.did_exceed_match_limit` (getter)
- `Query.set_match_limit(match_limit)`: returns `self`
- `Query.set_max_start_depth(max_start_depth)`: returns `self`
- `Query.set_byte_range(byte_range)`: returns `self`
- `Query.set_point_range(point_range)`: returns `self`
- `Query.disable_pattern(index)`: returns `self`
- `Query.disable_capture(capture)`: returns `self`
- `Query.pattern_settings(index)`
- `Query.pattern_assertions(index)`
- `Query.start_byte_for_pattern(index)`
- `Query.end_byte_for_pattern(index)`
- `Query.is_pattern_rooted(index)`
- `Query.is_pattern_non_local(index)`
- `Query.is_pattern_guaranteed_at_step(offset)`
- `QueryError` (exception class)
- `QueryPredicate` (typing protocol)

Removals:

- `Parser.set_language(language)`
- `Parser.set_included_ranges(ranges)`
- `Parser.set_timeout_micros(timeout)`
- `Node.sexp()`
- `Tree.text()`
- `TreeCursor.goto_first_child_for_point(row, column)`
- `LookaheadIterator.reset(language, state)`

Changes:

- `Language()` accepts a [capsule](https://docs.python.org/3.13/library/types.html#types.CapsuleType) as an argument.
- `Parser.parse(...)` no longer accepts a `keep_text` argument.
- `Query.captures(...)`
- Range arguments were removed (use `set_*` instead).
- Added an argument for custom query predicates.
- Return type was changed to `dict[str, list[Node]]`.
- `Query.matches(...)`
- Range arguments were removed (use `set_*` instead).
- Added an argument for custom query predicates.
- Return type was changed to `list[tuple[int, dict[str, list[Node]]]]`.
- `TreeCursor.goto_first_child_for_byte(byte)` returns `int | None`.
- `TreeCursor.goto_first_child_for_point(point)` returns `int | None`.

0.22.3

**Full Changelog**: https://github.com/tree-sitter/py-tree-sitter/compare/v0.22.2...v0.22.3

0.22.2

**Full Changelog**: https://github.com/tree-sitter/py-tree-sitter/compare/v0.22.1...v0.22.2

0.22.1

**Full Changelog**: https://github.com/tree-sitter/py-tree-sitter/compare/v0.22.0...v0.22.1

0.22.0

_Breaking changes are marked with `!`._

Additions:

- `LANGUAGE_VERSION`
- `MIN_COMPATIBLE_LANGUAGE_VERSION`
- `Point(row, column)`
- `Language.__repr__()`
- `Language.__eq__()`: checks `ptr`
- `Language.__int__()`: returns `ptr`
- `Language.__index__()`: returns `ptr`
- `Language.__hash__()`: returns `ptr`
- `Node.__str__()`: returns the S-expression
- `TreeCursor.goto_first_child_for_point(point)`
- `TreeCursor.__copy__()`: returns `copy()`
- `Query(language, source)`
- `Parser(language, included_ranges, timeout_micros)`
- `Parser.language` (getter + setter)
- `Parser.included_ranges` (getter + setter)
- `Parser.timeout_micros` (getter + setter)
- `Range.__hash__()`

Deprecations:

- `Node.sexp()`: use `str()`
- `Tree.text`: use `root_node.text`
- `TreeCursor.goto_first_child_for_point(row, column)`: use `goto_first_child_for_point(point)`
- `LookaheadIterator.reset(language, state)`: use `reset_state(state, language)`
- `Parser.set_language(language)`: use `Parser(language)` or `language` setter
- `Parser.set_included_ranges(ranges)`: use `included_ranges` setter
- `Parser.set_timeout_micros(timeout)`: use `timeout_micros` setter

Removals:

- `Language(path, name)` **!**
- `Language.build_library(...)` **!**
- `Language.name` **!**
- `Language.lib`
- `Language.language_id`: use `int()`

Changes:

- `Language()` only accepts a single integer argument. **!**
- `Parser.parse(...)` accepts an optional `encoding` argument. **!**
- `TreeCursor.descendant_index` is changed to a property. **!**
- `LookaheadIterator.language` returns a `Language` instance. **!**
- `LookaheadIterator.reset_state(...)` accepts an optional `language` argument.
- `Query.captures(...)` arguments must be keywords (except for `node`).
- `Query.matches(...)` arguments must be keywords (except for `node`).
- `Range.__repr__()` prints attributes in the same order as the `Range()` arguments.
- `Range()` arguments are no longer considered optional.

Page 2 of 3

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.