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.78.0.dev20260329154106.tar.gz (257.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.78.0.dev20260329154106-py3-none-any.whl (302.0 kB view details)

Uploaded Python 3

File details

Details for the file openrewrite-8.78.0.dev20260329154106.tar.gz.

File metadata

File hashes

Hashes for openrewrite-8.78.0.dev20260329154106.tar.gz
Algorithm Hash digest
SHA256 6e353d23cfd90f1dda189ca3155dd34e45f4db99a2b0b395d6d634a92a6985ac
MD5 ade29582abc224673f90326787774b72
BLAKE2b-256 9e10d85a59bf93a335d0800e68bc9e527f2935a23bea38c427d6df6c7efa6c1c

See more details on using hashes here.

File details

Details for the file openrewrite-8.78.0.dev20260329154106-py3-none-any.whl.

File metadata

File hashes

Hashes for openrewrite-8.78.0.dev20260329154106-py3-none-any.whl
Algorithm Hash digest
SHA256 e1d1a1346acd49b088e2dfe4803aac586e2c82f544751a9cf1fec3f2e773289d
MD5 e83018f5470406a8de95b21372bafcdc
BLAKE2b-256 9f9e6da296059abb92b00240b707ede8ada1c1fc8281a6d4fd7a5354ee8601ab

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