OpenRewrite automated refactoring for Python.
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file openrewrite-8.75.0.dev20260303113634.tar.gz.
File metadata
- Download URL: openrewrite-8.75.0.dev20260303113634.tar.gz
- Upload date:
- Size: 247.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
02f481eb9c80228a51214666aed568443575ab88ae036ed74929bf91fd0ac554
|
|
| MD5 |
486b15af6096cda5b9e635345ed048fe
|
|
| BLAKE2b-256 |
01f1b164fbfd87495422c1bbab16439b25db6112493e14454a8e6f4edf61b0d9
|
File details
Details for the file openrewrite-8.75.0.dev20260303113634-py3-none-any.whl.
File metadata
- Download URL: openrewrite-8.75.0.dev20260303113634-py3-none-any.whl
- Upload date:
- Size: 291.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
820f1805fd7bb01eb005257095c7698262d19ac9c0ab51545283e85e50e3ff5f
|
|
| MD5 |
3846ec5d3f07d164ac25750e92bd62e8
|
|
| BLAKE2b-256 |
f5c266ce821eee99e23536d2a88a8a6be9837e0a0df7217dc886b5c9f37538ff
|