--- id: openrewrite version: "8.90.0" license: Moderne Source Available License license_treatment: unclear maintenance: active --- # openrewrite — OpenRewrite automated refactoring for Python. License: unclear · Maintenance: active · Downloads: 112.3K/mo ## What it is and what it does OpenRewrite Python is a framework for writing automated code refactoring recipes that transform Python source code. It provides a lossless semantic tree representation of Python code, a recipe authoring API using dataclasses and visitor patterns, and a test harness for validating transformations before deployment. Recipes are written in pure Python and unit-tested locally, but execution against real codebases is orchestrated by the JVM runtime via the Moderne CLI over an RPC bridge—there is no standalone in-process parser. The package is designed for teams that need to apply large-scale, consistent code transformations across Python repositories. Typical use involves subclassing the Recipe class, implementing a visitor that traverses and modifies the tree, and registering the recipe with the Moderne CLI marketplace. The test harness lets you verify transformations on code snippets before running them at scale. Use it for: - Rename function calls or refactor APIs across a large codebase without manual edits. - Migrate deprecated library calls to their modern equivalents automatically. - Enforce code style or naming conventions by applying transformations to all matching patterns. - Delete or replace obsolete code patterns in batch across multiple repositories. - Author and test custom refactoring recipes for domain-specific code transformations. - Build a marketplace of reusable recipes for your organization's refactoring needs. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. OpenRewrite Python provides a framework for authoring and testing automated refactoring recipes that transform Python source code using a lossless semantic tree representation. Yes, if you need to author and test Python refactoring recipes and have access to the Moderne CLI infrastructure. The package is actively maintained, has no known vulnerabilities, and low install friction. However, verify that the Moderne Source Available License terms suit your use case, and confirm that your deployment environment can support the JVM runtime requirement for executing recipes at scale. ## Install pip install openrewrite uv add openrewrite poetry add openrewrite ## Installing openrewrite Before you install: Active maintenance with a recent release and no known vulnerabilities. Low install friction with three lightweight runtime dependencies. Requires Python 3.10 or later. License in practice: Licensed under Moderne Source Available License, which is not a standard open-source license. Verify the license terms apply to your use case before adopting. Quickstart: pip install openrewrite from rewrite.test import RecipeSpec, python spec = RecipeSpec(recipe=YourRecipe()) spec.rewrite_run(python("before_code", "after_code")) Recipes run against real codebases via the Moderne CLI over an RPC bridge; there is no standalone in-process Python parser entry point. Verify before relying: - Whether the Moderne Source Available License permits commercial use or requires a separate agreement. - What Python versions the JVM runtime component supports when executing recipes via the Moderne CLI. - Whether recipes authored with this package can be executed without the Moderne CLI infrastructure. ## Package facts - License: Moderne Source Available License (unclear) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 112.3K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags python code refactoring framework, automated code transformation, python source code modernization, recipe-based code generation, codemod authoring tool, python ast manipulation, lossless semantic tree, code-transformation, refactoring-framework, ast-manipulation [View on SkillFed](https://skillfed.io/packages/openrewrite) · [View on PyPI](https://pypi.org/project/openrewrite/)