# ast-grep python binding
[](https://pypi.org/project/ast-grep-py/)
[](https://ast-grep.github.io/)
<p align=center>
<img src="https://ast-grep.github.io/logo.svg" alt="ast-grep"/>
</p>
## ast-grep
`ast-grep` is a tool for code structural search, lint, and rewriting.
This crate intends to build a native python binding of ast-grep and provide a python API for programmatic usage.
## Installation
```bash
pip install ast-grep-py
```
## Usage
You can take our tests as examples. For example, [test_simple.py](./tests/test_simple.py) shows how to use ast-grep to search for a pattern in a file.
Please see the [API usage guide](https://ast-grep.github.io/guide/api-usage.html) and [API reference](https://ast-grep.github.io/reference/api.html) for more details.
Other resources include [ast-grep's official site](https://ast-grep.github.io/) and [repository](https://github.com/ast-grep/ast-grep).
## Development
### Setup virtualenv
```shell
python -m venv venv
```
### Activate venv
```shell
source venv/bin/activate
```
### Install `maturin`
```shell
pip install maturin[patchelf]
```
### MacOS: Install `patchelf` and `maturin`
```shell
brew install patchelf
pip install maturin
```
### Build bindings
```shell
maturin develop
```
### Run tests
```shell
pytest
```
All tests files are under [tests](./tests) directory.
## License
This project is licensed under the MIT license.
Raw data
{
"_id": null,
"home_page": null,
"name": "ast-grep-py",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "Herrington Darkholme <2883231+HerringtonDarkholme@users.noreply.github.com>",
"keywords": "ast, pattern, codemod, structural search, rewrite",
"author": null,
"author_email": "Herrington Darkholme <2883231+HerringtonDarkholme@users.noreply.github.com>",
"download_url": "https://files.pythonhosted.org/packages/1e/77/1d2a14d9e6f2eee4c11c4e05de0a106ea6019d0654afd2c8fd2221aa12f6/ast_grep_py-0.39.5.tar.gz",
"platform": null,
"description": "# ast-grep python binding\n\n[](https://pypi.org/project/ast-grep-py/)\n[](https://ast-grep.github.io/)\n\n<p align=center>\n <img src=\"https://ast-grep.github.io/logo.svg\" alt=\"ast-grep\"/>\n</p>\n\n## ast-grep\n\n`ast-grep` is a tool for code structural search, lint, and rewriting. \n\nThis crate intends to build a native python binding of ast-grep and provide a python API for programmatic usage.\n\n## Installation\n\n```bash\npip install ast-grep-py\n```\n\n## Usage\n\nYou can take our tests as examples. For example, [test_simple.py](./tests/test_simple.py) shows how to use ast-grep to search for a pattern in a file.\n\nPlease see the [API usage guide](https://ast-grep.github.io/guide/api-usage.html) and [API reference](https://ast-grep.github.io/reference/api.html) for more details.\n\nOther resources include [ast-grep's official site](https://ast-grep.github.io/) and [repository](https://github.com/ast-grep/ast-grep).\n\n## Development\n\n### Setup virtualenv\n\n```shell\npython -m venv venv\n```\n\n### Activate venv\n\n```shell\nsource venv/bin/activate\n```\n\n### Install `maturin`\n\n```shell\npip install maturin[patchelf]\n```\n\n### MacOS: Install `patchelf` and `maturin`\n\n```shell\nbrew install patchelf\npip install maturin\n```\n\n### Build bindings\n\n```shell\nmaturin develop\n```\n\n### Run tests\n\n```shell\npytest\n```\n\nAll tests files are under [tests](./tests) directory.\n\n## License\n\nThis project is licensed under the MIT license.\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Structural Search and Rewrite code at large scale using precise AST pattern.",
"version": "0.39.5",
"project_urls": {
"Changelog": "https://github.com/ast-grep/ast-grep/blob/main/CHANGELOG.md",
"Documentation": "https://ast-grep.github.io/",
"Repository": "https://github.com/ast-grep/ast-grep"
},
"split_keywords": [
"ast",
" pattern",
" codemod",
" structural search",
" rewrite"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "328ea3747b45debe8c02714bc1800a886303b4f059f8ba0ee6b109804cc6b65c",
"md5": "3165e505d5f45d3926589136cc9a99ef",
"sha256": "366ab7dae7837b0a512395e1ce5fc7b84720b8bee9c81b6c0f26d3ca30b67d6b"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp310-cp310-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "3165e505d5f45d3926589136cc9a99ef",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 4811325,
"upload_time": "2025-09-08T17:53:00",
"upload_time_iso_8601": "2025-09-08T17:53:00.635665Z",
"url": "https://files.pythonhosted.org/packages/32/8e/a3747b45debe8c02714bc1800a886303b4f059f8ba0ee6b109804cc6b65c/ast_grep_py-0.39.5-cp310-cp310-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f0f2427e35178eeb685fd6d015242ee2a19a86ab63e944bbd8952fdb97908753",
"md5": "779f19e8b6770915dad2ae3fd28b8e29",
"sha256": "435d955c4ed4b32f28a4100facd15120eb2093165a2da5419306fd19e781fe47"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp310-cp310-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "779f19e8b6770915dad2ae3fd28b8e29",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 4942875,
"upload_time": "2025-09-08T17:53:03",
"upload_time_iso_8601": "2025-09-08T17:53:03.043923Z",
"url": "https://files.pythonhosted.org/packages/f0/f2/427e35178eeb685fd6d015242ee2a19a86ab63e944bbd8952fdb97908753/ast_grep_py-0.39.5-cp310-cp310-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d6ecc03bb0341e7b3f890bccf8b3513b33ecf8856520ac8b347288384ae8522b",
"md5": "cbaf97f20853ee66d5a8152d11e40b95",
"sha256": "65b064349baeb9e3a70e2a43c7f55ccc26a5be76b808ee138eecacf11087d815"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp310-cp310-win32.whl",
"has_sig": false,
"md5_digest": "cbaf97f20853ee66d5a8152d11e40b95",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 4522154,
"upload_time": "2025-09-08T17:53:04",
"upload_time_iso_8601": "2025-09-08T17:53:04.651489Z",
"url": "https://files.pythonhosted.org/packages/d6/ec/c03bb0341e7b3f890bccf8b3513b33ecf8856520ac8b347288384ae8522b/ast_grep_py-0.39.5-cp310-cp310-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a5e0095158ee72b7103448ec75d2e94a411ff202c15210bb8f536a5c86a8c30d",
"md5": "d571921261063362ef2f357d016795cf",
"sha256": "d075690901abbc4499c91daff0cbf4106052e0f4064570a4261f21348ba04e66"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "d571921261063362ef2f357d016795cf",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 4645751,
"upload_time": "2025-09-08T17:53:06",
"upload_time_iso_8601": "2025-09-08T17:53:06.172272Z",
"url": "https://files.pythonhosted.org/packages/a5/e0/095158ee72b7103448ec75d2e94a411ff202c15210bb8f536a5c86a8c30d/ast_grep_py-0.39.5-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3a0290a3785393ff7fba5be0851b5269465f2a68a231e6012f7ee92836c9372b",
"md5": "e95696188a7de5bbb7092e2bd9003103",
"sha256": "a85fd956ac01d4148a14e72be554ccc0a8ba3fdf46e0b1c1d07155e22f33c884"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp311-cp311-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "e95696188a7de5bbb7092e2bd9003103",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 4850185,
"upload_time": "2025-09-08T17:53:07",
"upload_time_iso_8601": "2025-09-08T17:53:07.496237Z",
"url": "https://files.pythonhosted.org/packages/3a/02/90a3785393ff7fba5be0851b5269465f2a68a231e6012f7ee92836c9372b/ast_grep_py-0.39.5-cp311-cp311-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4af3ec36d5d37368b5054e066c29121af9d8568f16bb8a5de09802c3d0211b8c",
"md5": "c83fe881d3a47ed8c8f3bb6b3f6f96b1",
"sha256": "c43ba3ee004f1caf9eee268e5d07e32b534757957613fa9ef54e2be1c73b4681"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "c83fe881d3a47ed8c8f3bb6b3f6f96b1",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 5005263,
"upload_time": "2025-09-08T17:53:09",
"upload_time_iso_8601": "2025-09-08T17:53:09.905075Z",
"url": "https://files.pythonhosted.org/packages/4a/f3/ec36d5d37368b5054e066c29121af9d8568f16bb8a5de09802c3d0211b8c/ast_grep_py-0.39.5-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9f6ab9c0b1ed9b95f1b495c11e96e60134e931f22711f75f5f11eab65a66927c",
"md5": "9b293be0e5a4f5fff3994e9ae92503ab",
"sha256": "0a27dff8dc37f813dce6956029c1ebb51cb3e594f0c63ce305be70123e7f49b5"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp311-cp311-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "9b293be0e5a4f5fff3994e9ae92503ab",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 4811563,
"upload_time": "2025-09-08T17:53:11",
"upload_time_iso_8601": "2025-09-08T17:53:11.398384Z",
"url": "https://files.pythonhosted.org/packages/9f/6a/b9c0b1ed9b95f1b495c11e96e60134e931f22711f75f5f11eab65a66927c/ast_grep_py-0.39.5-cp311-cp311-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4d68375da7388512bdb04855ba0c721033728e7ea23c64e64ad0a53cc21b9380",
"md5": "418df655b4e8a8e45ddc2855cbe17dc3",
"sha256": "e6f91739f3cf68b5fc7cd1feed23beb6daca88a04068aba0a57718f575aff7c8"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp311-cp311-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "418df655b4e8a8e45ddc2855cbe17dc3",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 4942886,
"upload_time": "2025-09-08T17:53:13",
"upload_time_iso_8601": "2025-09-08T17:53:13.083789Z",
"url": "https://files.pythonhosted.org/packages/4d/68/375da7388512bdb04855ba0c721033728e7ea23c64e64ad0a53cc21b9380/ast_grep_py-0.39.5-cp311-cp311-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6ee308b8c8ba62ebda729b80d866b01f63a26192de7a9808bcf07ee237081764",
"md5": "32da433ebcbf1ee30623d204bff1109a",
"sha256": "8f4b0dfa90448307bcb476ad756aa711eadc31c7e6ccfa458ffb6200aaea837d"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp311-cp311-win32.whl",
"has_sig": false,
"md5_digest": "32da433ebcbf1ee30623d204bff1109a",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 4522123,
"upload_time": "2025-09-08T17:53:14",
"upload_time_iso_8601": "2025-09-08T17:53:14.994794Z",
"url": "https://files.pythonhosted.org/packages/6e/e3/08b8c8ba62ebda729b80d866b01f63a26192de7a9808bcf07ee237081764/ast_grep_py-0.39.5-cp311-cp311-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5efd4b34cad9db96cb4e6467179ffba489d46efcf01bfb3eecf5e5694e0f9dc0",
"md5": "5de4ec85535985841bb75a9971ca82d9",
"sha256": "214aa195f97d4c8f3dacb5e047c4e9cf1d05f5617e22e0766f6722ef8b06dc78"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "5de4ec85535985841bb75a9971ca82d9",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 4645760,
"upload_time": "2025-09-08T17:53:16",
"upload_time_iso_8601": "2025-09-08T17:53:16.330764Z",
"url": "https://files.pythonhosted.org/packages/5e/fd/4b34cad9db96cb4e6467179ffba489d46efcf01bfb3eecf5e5694e0f9dc0/ast_grep_py-0.39.5-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "23e11f8a9cfc068037214a0534dc8315b21171c746215a47c97e5c6a1f7eaafe",
"md5": "782bdb6b10c294482baebb4c4321a471",
"sha256": "a5ad43f9b7f304b9dd4acd051fc6356aecc2fb6b9f00aa38cbd96cbf806be9c1"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp312-cp312-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "782bdb6b10c294482baebb4c4321a471",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 4846179,
"upload_time": "2025-09-08T17:53:17",
"upload_time_iso_8601": "2025-09-08T17:53:17.985828Z",
"url": "https://files.pythonhosted.org/packages/23/e1/1f8a9cfc068037214a0534dc8315b21171c746215a47c97e5c6a1f7eaafe/ast_grep_py-0.39.5-cp312-cp312-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "984b9d6b37a1f0a6f7f960a69af4355e349c1b255db09e70635f1722a3e03675",
"md5": "45a38b1bf243e46797b2d47b1087ef7b",
"sha256": "3407aa72780ddab6f1ff1b60d0aae2c9b959f3e64b3ab9aa7545b5a6fc98db33"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "45a38b1bf243e46797b2d47b1087ef7b",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 4996093,
"upload_time": "2025-09-08T17:53:19",
"upload_time_iso_8601": "2025-09-08T17:53:19.398238Z",
"url": "https://files.pythonhosted.org/packages/98/4b/9d6b37a1f0a6f7f960a69af4355e349c1b255db09e70635f1722a3e03675/ast_grep_py-0.39.5-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "34bb1fe455524626eb40722e82a8cdf31048554dcbad2428031b7d403acd4c00",
"md5": "3c40414fcba72c6d0a95cc57a5a95cf0",
"sha256": "e011a55ff4728c6836dffdfc4df6c3ebb077fbefdbd07c710d6284b0b83c020a"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp312-cp312-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "3c40414fcba72c6d0a95cc57a5a95cf0",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 4809604,
"upload_time": "2025-09-08T17:53:20",
"upload_time_iso_8601": "2025-09-08T17:53:20.818551Z",
"url": "https://files.pythonhosted.org/packages/34/bb/1fe455524626eb40722e82a8cdf31048554dcbad2428031b7d403acd4c00/ast_grep_py-0.39.5-cp312-cp312-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "dfbff97b8ac089c39cf239fbe723ada8a3eb2248852cb0cf4f1cfc98a9657ff9",
"md5": "b2c62308a8a858808374a3310afb0e1f",
"sha256": "da97f516d317b00f04048f430641a31464bf2e9b63fd58c797268ac9f4893acb"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp312-cp312-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "b2c62308a8a858808374a3310afb0e1f",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 4941650,
"upload_time": "2025-09-08T17:53:22",
"upload_time_iso_8601": "2025-09-08T17:53:22.257905Z",
"url": "https://files.pythonhosted.org/packages/df/bf/f97b8ac089c39cf239fbe723ada8a3eb2248852cb0cf4f1cfc98a9657ff9/ast_grep_py-0.39.5-cp312-cp312-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "82a16636b6031640635a32b54280227242d38f58fe36b5fd9093c5e10007e91d",
"md5": "78b330a0ea8ef312e356cf5b66cbfacf",
"sha256": "699d80b024357987ca3191b02b3c5d0d65e88deed46cac37bfb32be6e940210f"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp312-cp312-win32.whl",
"has_sig": false,
"md5_digest": "78b330a0ea8ef312e356cf5b66cbfacf",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 4521370,
"upload_time": "2025-09-08T17:53:23",
"upload_time_iso_8601": "2025-09-08T17:53:23.562950Z",
"url": "https://files.pythonhosted.org/packages/82/a1/6636b6031640635a32b54280227242d38f58fe36b5fd9093c5e10007e91d/ast_grep_py-0.39.5-cp312-cp312-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "317688755d9a1a2bc0d711d207b90808733f5ea5bc08b256da966b3f798bb5c9",
"md5": "babb2a93038d6765bc290fd33261798e",
"sha256": "8056d12216a6831082a533bac71fef46e6933803f5adf0809cd8bcdcc9c33b70"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "babb2a93038d6765bc290fd33261798e",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 4646623,
"upload_time": "2025-09-08T17:53:25",
"upload_time_iso_8601": "2025-09-08T17:53:25.509403Z",
"url": "https://files.pythonhosted.org/packages/31/76/88755d9a1a2bc0d711d207b90808733f5ea5bc08b256da966b3f798bb5c9/ast_grep_py-0.39.5-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4aff27e6b0a2c724e5855cce7903d7e0cddc9ccca582aac854601f6a888a23c7",
"md5": "dab81f7de42c5b39ce2bcfa5dc6e4aac",
"sha256": "bb4e033fa06ba2f7c2c78b36c7d236236f56f5133223dba2fabb4b4381723287"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp313-cp313-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "dab81f7de42c5b39ce2bcfa5dc6e4aac",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 4847121,
"upload_time": "2025-09-08T17:53:27",
"upload_time_iso_8601": "2025-09-08T17:53:27.863919Z",
"url": "https://files.pythonhosted.org/packages/4a/ff/27e6b0a2c724e5855cce7903d7e0cddc9ccca582aac854601f6a888a23c7/ast_grep_py-0.39.5-cp313-cp313-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "43c3279bd1173d7d47eb22e5f2c6c62fa2066fae8d8dc4151aab9d0377c700f4",
"md5": "39474ece2f55c4f2840cc8d800f6a889",
"sha256": "b4d0fac3d45401acfac1ae0cf80bed4f980aeed8188d9f01f47f9f671a2908ab"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp313-cp313-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "39474ece2f55c4f2840cc8d800f6a889",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 4997514,
"upload_time": "2025-09-08T17:53:29",
"upload_time_iso_8601": "2025-09-08T17:53:29.199182Z",
"url": "https://files.pythonhosted.org/packages/43/c3/279bd1173d7d47eb22e5f2c6c62fa2066fae8d8dc4151aab9d0377c700f4/ast_grep_py-0.39.5-cp313-cp313-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9db6f0d96d95e02bb379ba66841b1c0129da834ee3637fa28c83d76c0e0c7c18",
"md5": "09b8ef26b52ce372e416a26a2dd762bb",
"sha256": "2b907e937e91075fb0ee64922ca9350bee4527d1140c56c9d7f8c83068f23b5b"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp313-cp313-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "09b8ef26b52ce372e416a26a2dd762bb",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 4809496,
"upload_time": "2025-09-08T17:53:30",
"upload_time_iso_8601": "2025-09-08T17:53:30.851547Z",
"url": "https://files.pythonhosted.org/packages/9d/b6/f0d96d95e02bb379ba66841b1c0129da834ee3637fa28c83d76c0e0c7c18/ast_grep_py-0.39.5-cp313-cp313-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a9286a2603070d8df1995f849e2651c3d96a6d7c51a9bbdb5cc99a66134a292c",
"md5": "0f49e529581372274228bd574fb3768c",
"sha256": "34329ec714b57c93a756f6bea67be47e83a4109a4a23f6ac220bf8504b26c533"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp313-cp313-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "0f49e529581372274228bd574fb3768c",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 4942340,
"upload_time": "2025-09-08T17:53:32",
"upload_time_iso_8601": "2025-09-08T17:53:32.314323Z",
"url": "https://files.pythonhosted.org/packages/a9/28/6a2603070d8df1995f849e2651c3d96a6d7c51a9bbdb5cc99a66134a292c/ast_grep_py-0.39.5-cp313-cp313-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b970a469ef695ecdbdcce360109f561c74a085121e1b8cd0bb3103bd00cc48f8",
"md5": "e001cf03b63e312b84938fded1edd060",
"sha256": "3ebc58cb4f6174775208c2fa7fe2472c12c9fee46b6c630aaa913b645d687b2f"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp313-cp313-win32.whl",
"has_sig": false,
"md5_digest": "e001cf03b63e312b84938fded1edd060",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 4523124,
"upload_time": "2025-09-08T17:53:33",
"upload_time_iso_8601": "2025-09-08T17:53:33.706279Z",
"url": "https://files.pythonhosted.org/packages/b9/70/a469ef695ecdbdcce360109f561c74a085121e1b8cd0bb3103bd00cc48f8/ast_grep_py-0.39.5-cp313-cp313-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "bc8a4eb8d9de1975538951c8fcdb0b6578f557eaa82ccfa2f42c77ba538850c4",
"md5": "ff6ac5f7500a9c37e1bc9511df3c5aaa",
"sha256": "6d86a1ac9c6563b76518363d7117e446efc25da6dc0aa89980f15c216c06b99a"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "ff6ac5f7500a9c37e1bc9511df3c5aaa",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 4646652,
"upload_time": "2025-09-08T17:53:35",
"upload_time_iso_8601": "2025-09-08T17:53:35.339248Z",
"url": "https://files.pythonhosted.org/packages/bc/8a/4eb8d9de1975538951c8fcdb0b6578f557eaa82ccfa2f42c77ba538850c4/ast_grep_py-0.39.5-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f6679b6a668b6147fc75629a2baf39d0c01f179af52da4521d947f4d04b8582b",
"md5": "2e845b491abb856b6f2c61ff24959e67",
"sha256": "b5835960fa2fea0f02674e087294fdeceb0acffd1d218d1b1399b12b6d42fa2c"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp39-cp39-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "2e845b491abb856b6f2c61ff24959e67",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 4812946,
"upload_time": "2025-09-08T17:53:36",
"upload_time_iso_8601": "2025-09-08T17:53:36.715874Z",
"url": "https://files.pythonhosted.org/packages/f6/67/9b6a668b6147fc75629a2baf39d0c01f179af52da4521d947f4d04b8582b/ast_grep_py-0.39.5-cp39-cp39-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "aeed666f9bb06ab787cff68b0ce7335901ce01ba7ddf9cd82b0829d22bc68ffe",
"md5": "6c0cb7a758672088ea902f3738817dd8",
"sha256": "4bd3d9048b168c3e61c859a519aa235e62a23a2d567c12cf12775d2ca75e3249"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp39-cp39-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "6c0cb7a758672088ea902f3738817dd8",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 4944418,
"upload_time": "2025-09-08T17:53:38",
"upload_time_iso_8601": "2025-09-08T17:53:38.108690Z",
"url": "https://files.pythonhosted.org/packages/ae/ed/666f9bb06ab787cff68b0ce7335901ce01ba7ddf9cd82b0829d22bc68ffe/ast_grep_py-0.39.5-cp39-cp39-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ac26b4484f7d358dc10931eda81f751dbbdc4172f526cb0351fad4ab72be8a36",
"md5": "3f2994a22495d76ce5eaf43caf4e3c2d",
"sha256": "975f6bf3447e02bd9b64ad404d4deee77210f854f5ddf060309036f7c09fe988"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp39-cp39-win32.whl",
"has_sig": false,
"md5_digest": "3f2994a22495d76ce5eaf43caf4e3c2d",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 4523516,
"upload_time": "2025-09-08T17:53:39",
"upload_time_iso_8601": "2025-09-08T17:53:39.868249Z",
"url": "https://files.pythonhosted.org/packages/ac/26/b4484f7d358dc10931eda81f751dbbdc4172f526cb0351fad4ab72be8a36/ast_grep_py-0.39.5-cp39-cp39-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "bfd57a054d637dfb075c9b5ef561dab8a2b2e6c540cc0d459bb534804b37a913",
"md5": "e76f0fb538f261dd4c84c5e31696e2b5",
"sha256": "f19ed467fdc9d8427c57402fb30e2215946f6b51663d85e6e3523dfeade78035"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "e76f0fb538f261dd4c84c5e31696e2b5",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 4646778,
"upload_time": "2025-09-08T17:53:41",
"upload_time_iso_8601": "2025-09-08T17:53:41.167266Z",
"url": "https://files.pythonhosted.org/packages/bf/d5/7a054d637dfb075c9b5ef561dab8a2b2e6c540cc0d459bb534804b37a913/ast_grep_py-0.39.5-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "1e771d2a14d9e6f2eee4c11c4e05de0a106ea6019d0654afd2c8fd2221aa12f6",
"md5": "f198e9c4d45e52e93863efcd7230ab4b",
"sha256": "e3035562970271f6ee411735f3e08ed6b7b86448833c3520f44eca807d477a3c"
},
"downloads": -1,
"filename": "ast_grep_py-0.39.5.tar.gz",
"has_sig": false,
"md5_digest": "f198e9c4d45e52e93863efcd7230ab4b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 136989,
"upload_time": "2025-09-08T17:53:42",
"upload_time_iso_8601": "2025-09-08T17:53:42.405363Z",
"url": "https://files.pythonhosted.org/packages/1e/77/1d2a14d9e6f2eee4c11c4e05de0a106ea6019d0654afd2c8fd2221aa12f6/ast_grep_py-0.39.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-08 17:53:42",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ast-grep",
"github_project": "ast-grep",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "ast-grep-py"
}