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.dev20260609091820.tar.gz (311.2 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.dev20260609091820-py3-none-any.whl (354.9 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for openrewrite-8.85.0.dev20260609091820.tar.gz
Algorithm Hash digest
SHA256 58ba97ebf8ef6ee509bee976fa52c8443f0f0d25ef441292804ea0e86f70e938
MD5 4cbbcb804b61667ccc96cd25fad97d7d
BLAKE2b-256 3211df91777a7ea767b86ed77a6576183fb3411be432901833be2871810e0c6e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openrewrite-8.85.0.dev20260609091820-py3-none-any.whl
Algorithm Hash digest
SHA256 5fbe68887ed3b5b4bd4315c03d92b5b8ebd6e5c82b7bb3ebc06d7b74c9373e30
MD5 dc0dfada255dbdf54df32f22fa14770e
BLAKE2b-256 af359beb285f832ce9c3bbf1e559e4d56daab94ce44182a7f264299212b3ae1d

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