skillfed

openrewrite

OpenRewrite automated refactoring for Python.

openrewrite v8.90.0 112.3K downloads/30d#12,374 on PyPI3,648
License unclear Moderne Source Available License Active released

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 on this page — 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

openrewrite on PyPI

pip

pip install openrewrite

uv

uv add openrewrite

poetry

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 the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 3 — more_itertools, ty-types, parso
Maintenance actively maintained — 0 days since the last release
Last repo commit
First released
Downloads 112,268/month — #12,374 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: openrewrite-8.90.0-py3-none-any.whl

Development Status :: 4 - BetaIntended Audience :: DevelopersProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Topic :: Software Development :: Code GeneratorsTopic :: Software Development :: Quality AssuranceTyping :: Typed

Tags

python code refactoring frameworkautomated code transformationpython source code modernizationrecipe-based code generationcodemod authoring toolpython ast manipulationlossless semantic tree
code-transformationrefactoring-frameworkast-manipulation

More Quality Assurance packages