# 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": "Herrington Darkholme <2883231+HerringtonDarkholme@users.noreply.github.com>",
"author_email": "Herrington Darkholme <2883231+HerringtonDarkholme@users.noreply.github.com>",
"download_url": "https://files.pythonhosted.org/packages/7c/0f/3db143f5ff1839c2f65a938a447da8207b6f88b6c16f4fa8c7c932ebfa44/ast_grep_py-0.38.7.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.38.7",
"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": "1e0b02b0404f50bd597dddcac0417b32d641c08b2523e2a358d43eee0f981e27",
"md5": "5495e3a6417a2e3ef148eb5ccb45acb0",
"sha256": "a967d81de8019bd76ac955f21fabf01fa8e3773a120d29bdc7baeb79081e351b"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp310-cp310-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "5495e3a6417a2e3ef148eb5ccb45acb0",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 4654602,
"upload_time": "2025-07-10T03:58:42",
"upload_time_iso_8601": "2025-07-10T03:58:42.889289Z",
"url": "https://files.pythonhosted.org/packages/1e/0b/02b0404f50bd597dddcac0417b32d641c08b2523e2a358d43eee0f981e27/ast_grep_py-0.38.7-cp310-cp310-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e8194011db73392daab9202f4e63ec0791812276d0569f0ced5dadff4cb324e7",
"md5": "7baf0006fe12c0f015ec87509325399b",
"sha256": "e394ca04b25961fa3b3419fd1cb3b761a360186b6c2dc8ac25b395be6a9072cf"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp310-cp310-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "7baf0006fe12c0f015ec87509325399b",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 4790428,
"upload_time": "2025-07-10T03:58:45",
"upload_time_iso_8601": "2025-07-10T03:58:45.289052Z",
"url": "https://files.pythonhosted.org/packages/e8/19/4011db73392daab9202f4e63ec0791812276d0569f0ced5dadff4cb324e7/ast_grep_py-0.38.7-cp310-cp310-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7e4b4947a9a860df1e8c88fa48e38b3c9fba49bb3aacf8eb9770ac5159b48416",
"md5": "003d80876296aa73b699124648d9963a",
"sha256": "4511b23d17911265a71475e4a9e79c613a7a91ba38f54271d374c872aa2615a8"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp310-cp310-win32.whl",
"has_sig": false,
"md5_digest": "003d80876296aa73b699124648d9963a",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 4382291,
"upload_time": "2025-07-10T03:58:46",
"upload_time_iso_8601": "2025-07-10T03:58:46.811490Z",
"url": "https://files.pythonhosted.org/packages/7e/4b/4947a9a860df1e8c88fa48e38b3c9fba49bb3aacf8eb9770ac5159b48416/ast_grep_py-0.38.7-cp310-cp310-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "58fde8ca60dd0fd5af23e54e4e665f7f0c950e98f3ddd28182f302bdf8f6444b",
"md5": "b3077776c64df8fa5d6b8d997676b957",
"sha256": "521f211c5a1380ca560c38bb137dba61f786ff6780e10b145d0f364ac5db0b8d"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "b3077776c64df8fa5d6b8d997676b957",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 4508499,
"upload_time": "2025-07-10T03:58:47",
"upload_time_iso_8601": "2025-07-10T03:58:47.991693Z",
"url": "https://files.pythonhosted.org/packages/58/fd/e8ca60dd0fd5af23e54e4e665f7f0c950e98f3ddd28182f302bdf8f6444b/ast_grep_py-0.38.7-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3e9fbe63b194929f5e4634f480e7fe3588b9245aedbc80129bf7fbef2b9fa121",
"md5": "25b70db4d91d5d50f30db2243de345ed",
"sha256": "c4dc8d1f8a2bda7285e0840f878a685c1ca9f8b3e798f19a4e4a2c3ba30ac35b"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp311-cp311-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "25b70db4d91d5d50f30db2243de345ed",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 4700464,
"upload_time": "2025-07-10T03:58:49",
"upload_time_iso_8601": "2025-07-10T03:58:49.555526Z",
"url": "https://files.pythonhosted.org/packages/3e/9f/be63b194929f5e4634f480e7fe3588b9245aedbc80129bf7fbef2b9fa121/ast_grep_py-0.38.7-cp311-cp311-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e911a93ac4868e373700206b194902aa353acad9b13c0a566640c7babb367be5",
"md5": "7242f86b5a9ffda55af9267e98064c45",
"sha256": "815fcc5ddd6ebe6ba78987834b1581b597f3b707c7e021f38370d1874cbda417"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "7242f86b5a9ffda55af9267e98064c45",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 4851925,
"upload_time": "2025-07-10T03:58:51",
"upload_time_iso_8601": "2025-07-10T03:58:51.004867Z",
"url": "https://files.pythonhosted.org/packages/e9/11/a93ac4868e373700206b194902aa353acad9b13c0a566640c7babb367be5/ast_grep_py-0.38.7-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "34505deeb1fc07e65bb154ac52f2ec79a045ab0f9a2d2d9aafb985b84624ac81",
"md5": "f53bdb89273e7bf7d9f8acb998a50275",
"sha256": "41647e562e7b589792050eb4865d9a0661287c031b5feee46919ab0dab6258a8"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp311-cp311-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "f53bdb89273e7bf7d9f8acb998a50275",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 4654611,
"upload_time": "2025-07-10T03:58:52",
"upload_time_iso_8601": "2025-07-10T03:58:52.409349Z",
"url": "https://files.pythonhosted.org/packages/34/50/5deeb1fc07e65bb154ac52f2ec79a045ab0f9a2d2d9aafb985b84624ac81/ast_grep_py-0.38.7-cp311-cp311-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ac6ca0d8567af11857f5c84a3407e8d6a7571e6fbc5f25f3fe36800aac869a61",
"md5": "2016166c73721aa7c4268a3c9902f38d",
"sha256": "448ac24bcc54ac93fc2d19804a203d9354a524fd77780b531ea33b86497005c4"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp311-cp311-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "2016166c73721aa7c4268a3c9902f38d",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 4790833,
"upload_time": "2025-07-10T03:58:53",
"upload_time_iso_8601": "2025-07-10T03:58:53.607633Z",
"url": "https://files.pythonhosted.org/packages/ac/6c/a0d8567af11857f5c84a3407e8d6a7571e6fbc5f25f3fe36800aac869a61/ast_grep_py-0.38.7-cp311-cp311-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c8903977cae061c88733e6ee39936b9f01589909be9caf42afb63984b32fc5d8",
"md5": "120c11e036c7e3551c15ddeb25928fd0",
"sha256": "63775681ac6dc0e7d8b39258298db5403b0157300142b710fc2165553f6ea650"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp311-cp311-win32.whl",
"has_sig": false,
"md5_digest": "120c11e036c7e3551c15ddeb25928fd0",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 4382079,
"upload_time": "2025-07-10T03:58:54",
"upload_time_iso_8601": "2025-07-10T03:58:54.844487Z",
"url": "https://files.pythonhosted.org/packages/c8/90/3977cae061c88733e6ee39936b9f01589909be9caf42afb63984b32fc5d8/ast_grep_py-0.38.7-cp311-cp311-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8166424e26a5c940c3ea098fab60dcc1b0bc94764b59502d92636edded72a2f3",
"md5": "5d7c89f32b3ddf59dcf07c964ff74009",
"sha256": "7a50f299c340e2669bb34d2faaa13a7310136acd4068d2d2766d3d9a8b8dfb2c"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "5d7c89f32b3ddf59dcf07c964ff74009",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 4508742,
"upload_time": "2025-07-10T03:58:55",
"upload_time_iso_8601": "2025-07-10T03:58:55.988260Z",
"url": "https://files.pythonhosted.org/packages/81/66/424e26a5c940c3ea098fab60dcc1b0bc94764b59502d92636edded72a2f3/ast_grep_py-0.38.7-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "365ef59959cfff67d150915bff5b7c3be44128dea94d4f07778a5019b807bc44",
"md5": "42972b5c2ece263e61ac581013926ccf",
"sha256": "fb24e0a21586f41ed5eb752534a1586cc69e4cc47966bcdbbd0ea4e60043fec6"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp312-cp312-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "42972b5c2ece263e61ac581013926ccf",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 4697900,
"upload_time": "2025-07-10T03:58:57",
"upload_time_iso_8601": "2025-07-10T03:58:57.171244Z",
"url": "https://files.pythonhosted.org/packages/36/5e/f59959cfff67d150915bff5b7c3be44128dea94d4f07778a5019b807bc44/ast_grep_py-0.38.7-cp312-cp312-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e0e1beefdeeea480578e0fac8405988ff1671f3aae10aad67c4b126f048d5a1c",
"md5": "caed4dabba6fce9d72981d4dd0bc68b3",
"sha256": "31fe6cab721844c762a3b8cac90f70165e865cbd90d5107e381f7d22bea8f44d"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "caed4dabba6fce9d72981d4dd0bc68b3",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 4847095,
"upload_time": "2025-07-10T03:58:58",
"upload_time_iso_8601": "2025-07-10T03:58:58.330827Z",
"url": "https://files.pythonhosted.org/packages/e0/e1/beefdeeea480578e0fac8405988ff1671f3aae10aad67c4b126f048d5a1c/ast_grep_py-0.38.7-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4e8201422420e5be6a978cc96b4d4c4cbef8ef1bc8f00432c8fceea06fc5789d",
"md5": "6daabaa75fc8487f7e08706e40526912",
"sha256": "c3c4398914ff22c3e0658d93fa6dac962e3acfbcc51f10b236c4079bdd51ddb6"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp312-cp312-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "6daabaa75fc8487f7e08706e40526912",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 4654992,
"upload_time": "2025-07-10T03:58:59",
"upload_time_iso_8601": "2025-07-10T03:58:59.472544Z",
"url": "https://files.pythonhosted.org/packages/4e/82/01422420e5be6a978cc96b4d4c4cbef8ef1bc8f00432c8fceea06fc5789d/ast_grep_py-0.38.7-cp312-cp312-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0c466d9ce5ddeb66134a4403748200348024835e1bb7fab29f4787f009be9d56",
"md5": "0b2aa23a6fa396a7641373845ff489f5",
"sha256": "4b58df3912eaab1a48ca4d50c97350f76f8e5336034d3a2c21cb542a5c93455b"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp312-cp312-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "0b2aa23a6fa396a7641373845ff489f5",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 4788504,
"upload_time": "2025-07-10T03:59:00",
"upload_time_iso_8601": "2025-07-10T03:59:00.616073Z",
"url": "https://files.pythonhosted.org/packages/0c/46/6d9ce5ddeb66134a4403748200348024835e1bb7fab29f4787f009be9d56/ast_grep_py-0.38.7-cp312-cp312-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "17cdc468a027e7de689c9e4f83a71e085273ec0d093f0158275f14500cabf38a",
"md5": "66e515c4e5aee576ccdc3144a4f107ca",
"sha256": "5e6389bfb50bded150acbb28686acc9ecbacf46fdb972fbf474f35ccc069ba14"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp312-cp312-win32.whl",
"has_sig": false,
"md5_digest": "66e515c4e5aee576ccdc3144a4f107ca",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 4383104,
"upload_time": "2025-07-10T03:59:01",
"upload_time_iso_8601": "2025-07-10T03:59:01.803980Z",
"url": "https://files.pythonhosted.org/packages/17/cd/c468a027e7de689c9e4f83a71e085273ec0d093f0158275f14500cabf38a/ast_grep_py-0.38.7-cp312-cp312-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9c4616c431e3aa4a3c718394f65293454d61a9aaaf396c2c19712e8fc902b0b9",
"md5": "694f83039efbe03b8aa58ec05d1eb2bc",
"sha256": "43e7f5c821f16a6c2ec8b3efe453a61de43ebf859647d2f992e5ff89d8730c29"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "694f83039efbe03b8aa58ec05d1eb2bc",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 4510830,
"upload_time": "2025-07-10T03:59:02",
"upload_time_iso_8601": "2025-07-10T03:59:02.994567Z",
"url": "https://files.pythonhosted.org/packages/9c/46/16c431e3aa4a3c718394f65293454d61a9aaaf396c2c19712e8fc902b0b9/ast_grep_py-0.38.7-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2be3c19210239d13644c9188ed2b98dfe3323a8d3ee109de85737b1a2fa510f8",
"md5": "5f2de48a249bd76d1c4a428f425616ee",
"sha256": "99f67fd50bed68c7722df8de64fd307bc620a15a6844de9169ba6ffe27d66615"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp313-cp313-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "5f2de48a249bd76d1c4a428f425616ee",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 4698470,
"upload_time": "2025-07-10T03:59:04",
"upload_time_iso_8601": "2025-07-10T03:59:04.368419Z",
"url": "https://files.pythonhosted.org/packages/2b/e3/c19210239d13644c9188ed2b98dfe3323a8d3ee109de85737b1a2fa510f8/ast_grep_py-0.38.7-cp313-cp313-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2663ac32dfd817c8fa77533cec47bf543c985ce77fced1dc1a1610031a263b31",
"md5": "50c28247207d1da0b6a818036fca7b3f",
"sha256": "2741bedec051e5eca82dcc44230554b55123a0f34f2137e5be36bf4c91368d9b"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp313-cp313-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "50c28247207d1da0b6a818036fca7b3f",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 4848466,
"upload_time": "2025-07-10T03:59:05",
"upload_time_iso_8601": "2025-07-10T03:59:05.729387Z",
"url": "https://files.pythonhosted.org/packages/26/63/ac32dfd817c8fa77533cec47bf543c985ce77fced1dc1a1610031a263b31/ast_grep_py-0.38.7-cp313-cp313-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3577bc214a340fd754f86127e7f51ddd8ae9e13b15735d52a52ed2a04e52741f",
"md5": "16d364b3f7e714c4877e07dedff8f60a",
"sha256": "8fd31b732ca5671f331275be363f2aca852a7d49d4f4d969afc05165be161e3f"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp313-cp313-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "16d364b3f7e714c4877e07dedff8f60a",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 4655259,
"upload_time": "2025-07-10T03:59:07",
"upload_time_iso_8601": "2025-07-10T03:59:07.264144Z",
"url": "https://files.pythonhosted.org/packages/35/77/bc214a340fd754f86127e7f51ddd8ae9e13b15735d52a52ed2a04e52741f/ast_grep_py-0.38.7-cp313-cp313-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8324fa46f3ca9ef3dd48a8ab241458006cd48d3e8e93b30fa29dce8c2e81d9a3",
"md5": "d1c4f6f54ecf7ea7ea6bab60e13a7a0b",
"sha256": "ddc184c5977effd5226222a02983d4ade01c5f272774c0b5b4e3b9982fb5f5b9"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp313-cp313-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "d1c4f6f54ecf7ea7ea6bab60e13a7a0b",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 4788881,
"upload_time": "2025-07-10T03:59:08",
"upload_time_iso_8601": "2025-07-10T03:59:08.441221Z",
"url": "https://files.pythonhosted.org/packages/83/24/fa46f3ca9ef3dd48a8ab241458006cd48d3e8e93b30fa29dce8c2e81d9a3/ast_grep_py-0.38.7-cp313-cp313-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "1ada93f6e362792457ff5016bdfb885f3df66fa197e7cde83da95a070a70c302",
"md5": "25a2a7a331ea01d586a6b001e4404de9",
"sha256": "e59ca30e299dd23ffc17c1810dababcec9a41c388facb31d610372523c3081c6"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp313-cp313-win32.whl",
"has_sig": false,
"md5_digest": "25a2a7a331ea01d586a6b001e4404de9",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 4383268,
"upload_time": "2025-07-10T03:59:09",
"upload_time_iso_8601": "2025-07-10T03:59:09.625270Z",
"url": "https://files.pythonhosted.org/packages/1a/da/93f6e362792457ff5016bdfb885f3df66fa197e7cde83da95a070a70c302/ast_grep_py-0.38.7-cp313-cp313-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3a810ccb792bee16144e56b0568e9fdf9408ffe01500b85c05f511a25a892651",
"md5": "14e67aa0ff39f1c3a43da8ace34f7ce3",
"sha256": "fdc3f6fb4fa92608d7bcbd1cbf87eb3a4cd7d215eb43d1c918fc3b19d3cef98d"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "14e67aa0ff39f1c3a43da8ace34f7ce3",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 4509765,
"upload_time": "2025-07-10T03:59:10",
"upload_time_iso_8601": "2025-07-10T03:59:10.839646Z",
"url": "https://files.pythonhosted.org/packages/3a/81/0ccb792bee16144e56b0568e9fdf9408ffe01500b85c05f511a25a892651/ast_grep_py-0.38.7-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5fbaff9f2cec0183c16d975232ad5f8a2b65e08f7b192434eab39a3587f4db50",
"md5": "30ddba6d9e716e0e8a479e79716f873b",
"sha256": "9057e28762cedcecc72e63eb0183d806cb392444a65c7c625ca89fe69862b1d0"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp39-cp39-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "30ddba6d9e716e0e8a479e79716f873b",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 4654687,
"upload_time": "2025-07-10T03:59:12",
"upload_time_iso_8601": "2025-07-10T03:59:12.348918Z",
"url": "https://files.pythonhosted.org/packages/5f/ba/ff9f2cec0183c16d975232ad5f8a2b65e08f7b192434eab39a3587f4db50/ast_grep_py-0.38.7-cp39-cp39-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "27a07aaca50da6efda97f342595d69eec8a7ca924f628c546a5a19074acb4de4",
"md5": "e55932e2b58f099e5e63d1a7c10a6599",
"sha256": "c55b94bf06baef2067a79cef6fbb1b321683304fdb43c838b7413a93d8f9766f"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp39-cp39-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "e55932e2b58f099e5e63d1a7c10a6599",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 4790787,
"upload_time": "2025-07-10T03:59:13",
"upload_time_iso_8601": "2025-07-10T03:59:13.855139Z",
"url": "https://files.pythonhosted.org/packages/27/a0/7aaca50da6efda97f342595d69eec8a7ca924f628c546a5a19074acb4de4/ast_grep_py-0.38.7-cp39-cp39-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "687408e5383f5e12df3407e5037a581b9acd366e9ce44707884bf19f799faef1",
"md5": "6ffbe9da018284f4c94b03d42f5ab0ed",
"sha256": "e22c0bc8e5e3ca070c23531929cd611efcfd4c9cc4deba19bac6c3b398c7a324"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp39-cp39-win32.whl",
"has_sig": false,
"md5_digest": "6ffbe9da018284f4c94b03d42f5ab0ed",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 4382785,
"upload_time": "2025-07-10T03:59:15",
"upload_time_iso_8601": "2025-07-10T03:59:15.432143Z",
"url": "https://files.pythonhosted.org/packages/68/74/08e5383f5e12df3407e5037a581b9acd366e9ce44707884bf19f799faef1/ast_grep_py-0.38.7-cp39-cp39-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "48d2a85c58c4892a06dfb90fbe509dd031369a963a3132fda18f2777930a327f",
"md5": "d2a62afd0c2eded076f35476a83becef",
"sha256": "c9d89901820afeabd7c2f0b5ff065bb3e551acb22902a379acceeb3324839c37"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "d2a62afd0c2eded076f35476a83becef",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 4508346,
"upload_time": "2025-07-10T03:59:16",
"upload_time_iso_8601": "2025-07-10T03:59:16.669793Z",
"url": "https://files.pythonhosted.org/packages/48/d2/a85c58c4892a06dfb90fbe509dd031369a963a3132fda18f2777930a327f/ast_grep_py-0.38.7-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7c0f3db143f5ff1839c2f65a938a447da8207b6f88b6c16f4fa8c7c932ebfa44",
"md5": "7aab59c9b4a079bcddfd60cafaaf2571",
"sha256": "77ac7c78505bb6703d3d72c0834c3a4141e02916facddc57fc9f1caeecccebe4"
},
"downloads": -1,
"filename": "ast_grep_py-0.38.7.tar.gz",
"has_sig": false,
"md5_digest": "7aab59c9b4a079bcddfd60cafaaf2571",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 131429,
"upload_time": "2025-07-10T03:59:17",
"upload_time_iso_8601": "2025-07-10T03:59:17.897630Z",
"url": "https://files.pythonhosted.org/packages/7c/0f/3db143f5ff1839c2f65a938a447da8207b6f88b6c16f4fa8c7c932ebfa44/ast_grep_py-0.38.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-10 03:59:17",
"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"
}