Skip to main content

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

openrewrite-8.85.0.dev20260617075210.tar.gz (316.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openrewrite-8.85.0.dev20260617075210-py3-none-any.whl (358.7 kB view details)

Uploaded Python 3

File details

Details for the file openrewrite-8.85.0.dev20260617075210.tar.gz.

File metadata

File hashes

Hashes for openrewrite-8.85.0.dev20260617075210.tar.gz
Algorithm Hash digest
SHA256 e9542f9f77ba046ae9bda9d7a77ada4e5511e6bb8b8b9e4b1245ab63e1ffa2bb
MD5 cf49cf392a1b5f50deaa2d101e189acf
BLAKE2b-256 e9c1fa82d4ae40c033796e58f48d94e27966af5c8aca31d9813574d63ce0ed3e

See more details on using hashes here.

File details

Details for the file openrewrite-8.85.0.dev20260617075210-py3-none-any.whl.

File metadata

File hashes

Hashes for openrewrite-8.85.0.dev20260617075210-py3-none-any.whl
Algorithm Hash digest
SHA256 a371257731aec83a503b8d0742c1b8535b524f48d68da786e2f0651c9b237079
MD5 c8488fe3124afcfdb3e090247bb71731
BLAKE2b-256 76a46b9f1dd1980eacff550bd4228394a95259ef049fc45aee40dafdd7f7d6a6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page