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.79.0.dev20260406101534.tar.gz (257.6 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.79.0.dev20260406101534-py3-none-any.whl (302.3 kB view details)

Uploaded Python 3

File details

Details for the file openrewrite-8.79.0.dev20260406101534.tar.gz.

File metadata

File hashes

Hashes for openrewrite-8.79.0.dev20260406101534.tar.gz
Algorithm Hash digest
SHA256 c92d321428ebcf43b6b83c8ef296bebbcd4e53328543cf02f5078149f8d881dd
MD5 bf09ae292b2c8cfd8f3e3e7153f68468
BLAKE2b-256 266c14440a53bb40b1af74277a9ab8af32287f801c1305258b199acb0ceb1cf4

See more details on using hashes here.

File details

Details for the file openrewrite-8.79.0.dev20260406101534-py3-none-any.whl.

File metadata

File hashes

Hashes for openrewrite-8.79.0.dev20260406101534-py3-none-any.whl
Algorithm Hash digest
SHA256 4855ec311eb33671a017178bc80276e748ef37090a49f21d6f2f81eb6e40f23a
MD5 e7b40d48305794fb364fb16a0ccec3db
BLAKE2b-256 69683d83ded2dc20c1a6e6c9f8d228e7df71c4525061d6596dfc99556a21bf96

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