{"id":13815167,"url":"https://github.com/spookylukey/pyastgrep","last_synced_at":"2025-04-04T10:08:08.585Z","repository":{"id":62106883,"uuid":"555450621","full_name":"spookylukey/pyastgrep","owner":"spookylukey","description":"Grep Python Abstract Syntax Trees (AST) using XPath","archived":false,"fork":false,"pushed_at":"2024-12-28T15:39:05.000Z","size":402,"stargazers_count":93,"open_issues_count":2,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-28T09:05:01.499Z","etag":null,"topics":["abstract-syntax-tree","grepping","python","xpath"],"latest_commit_sha":null,"homepage":"https://pyastgrep.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spookylukey.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"docs/contributing.rst","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-21T15:51:00.000Z","updated_at":"2025-02-01T18:59:27.000Z","dependencies_parsed_at":"2023-11-28T22:30:56.862Z","dependency_job_id":"d3e461e8-e536-4b54-8058-e72a4e7436c7","html_url":"https://github.com/spookylukey/pyastgrep","commit_stats":{"total_commits":160,"total_committers":6,"mean_commits":"26.666666666666668","dds":0.31875,"last_synced_commit":"34eadc1807e3722f500b5bd9d238cf636781f13b"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spookylukey%2Fpyastgrep","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spookylukey%2Fpyastgrep/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spookylukey%2Fpyastgrep/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spookylukey%2Fpyastgrep/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spookylukey","download_url":"https://codeload.github.com/spookylukey/pyastgrep/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247156846,"owners_count":20893201,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["abstract-syntax-tree","grepping","python","xpath"],"created_at":"2024-08-04T04:03:03.684Z","updated_at":"2025-04-04T10:08:08.559Z","avatar_url":"https://github.com/spookylukey.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"pyastgrep\n=========\n\n|badge_fury| |badge_tests| |badge_rtd|\n\n.. |badge_fury| image:: https://badge.fury.io/py/pyastgrep.svg\n     :target: https://badge.fury.io/py/pyastgrep\n\n.. |badge_tests| image:: https://github.com/spookylukey/pyastgrep/actions/workflows/tests.yml/badge.svg\n     :target: https://github.com/spookylukey/pyastgrep/actions/workflows/tests.yml\n\n.. |badge_rtd| image:: https://readthedocs.org/projects/pyastgrep/badge/?version=latest\n   :target: https://pyastgrep.readthedocs.org/en/latest/\n\n\nA command-line utility for grepping Python files using XPath syntax (or CSS\nselectors) against the Python AST (Abstract Syntax Tree).\n\nIn other words, this allows you to search Python code against specific syntax\nelements (function definitions, arguments, assignments, variables etc), instead\nof grepping for string matches.\n\nThe interface and behaviour is designed to match grep and ripgrep as far as it\nmakes sense to do so.\n\nSee `the documentation \u003chttps://pyastgrep.readthedocs.io/\u003e`_ for more\ninformation, or the ``docs`` folder.\n\n\nHistory\n-------\n\nThis project was forked from https://github.com/hchasestevens/astpath by `H.\nChase Stevens \u003chttp://www.chasestevens.com\u003e`__. Main changes:\n\n* Added a test suite\n* Many bugs fixed\n* Significant rewrite of parts of code\n* Changes to match grep/ripgrep, including formatting and automatic filtering.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspookylukey%2Fpyastgrep","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspookylukey%2Fpyastgrep","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspookylukey%2Fpyastgrep/lists"}