Pre-release
This release is a pre-release and may not be stable for production use.
OpenRewrite Python
OpenRewrite automated refactoring for Python source code.
Installation
pip install openrewrite
Quick Start
from rewrite.python import PythonParser
from rewrite import ExecutionContext
# Parse Python source code
parser = PythonParser()
ctx = ExecutionContext()
source_files = parser.parse(ctx, "example.py")
# Apply recipes to transform code
# ...
Writing Recipes
from dataclasses import dataclass, field
from rewrite import Recipe, option
from rewrite.python import PythonVisitor
@dataclass
class ChangeImport(Recipe):
"""Changes an import from one module to another."""
old_module: str = field(metadata=option(
display_name="Old module",
description="The module to change imports from",
example="flask"
))
new_module: str = field(metadata=option(
display_name="New module",
description="The module to change imports to",
example="flask_restful"
))
@property
def name(self) -> str:
return "org.openrewrite.python.ChangeImport"
@property
def display_name(self) -> str:
return "Change import"
@property
def description(self) -> str:
return "Changes an import from one module to another."
def editor(self) -> PythonVisitor:
# Implementation...
pass
Documentation
See docs.openrewrite.org for full documentation.
License
Moderne Source Available License - see LICENSE.md
Release files for openrewrite 8.72.0.dev20260115134041
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| openrewrite-8.72.0.dev20260115134041.tar.gz | 154.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| openrewrite-8.72.0.dev20260115134041-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 324.7 kB
Release files / openrewrite-8.72.0.dev20260115134041.tar.gz
| Download URL | openrewrite-8.72.0.dev20260115134041.tar.gz |
|---|---|
| Size | 154.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
38c6aea5718bac0a76959e3acf126d2758562666534756ab963f027f73774c94
|
|
BLAKE2b-256 checksum How to use checksums |
c580f34ec8b89f5c4ee1eeabb4d1c122229e710bff6a3e0517bdaead75c24837
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / openrewrite-8.72.0.dev20260115134041-py3-none-any.whl
| Download URL | openrewrite-8.72.0.dev20260115134041-py3-none-any.whl |
|---|---|
| Size | 170.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1dc00bfc888b62776073d68a161ca71bffd59c20031077a7615aa3a9ab1ecd2d
|
|
BLAKE2b-256 checksum How to use checksums |
9613b23978aa73c6607e780d15250740f9646fd10ea83dd63d63d833bd80908a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|