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.dev20260606070102.tar.gz (304.5 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.dev20260606070102-py3-none-any.whl (347.3 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for openrewrite-8.85.0.dev20260606070102.tar.gz
Algorithm Hash digest
SHA256 fb16585591f6bee4c718e93610c0d219caf4528c20da3a4d53be88c9ecd5596b
MD5 fb49dc8d62861f3e7aa56d3a7c27788e
BLAKE2b-256 f173862d1242a88b00279e57ebd2a2c27b6a7833d4f5ccf470a5f7a465a32224

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openrewrite-8.85.0.dev20260606070102-py3-none-any.whl
Algorithm Hash digest
SHA256 d937c274971043febf2fe2df94cafb642fdae6260d2bb03a01a4e80c8807f948
MD5 f8b5f4012c4de5cb78a27068bcdecafc
BLAKE2b-256 c8e3c260a4159271395d1573b6c88861ee8514b7a2c3f467dde1496e0a26e16d

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