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.86.0.dev20260619064452.tar.gz (316.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.86.0.dev20260619064452-py3-none-any.whl (359.0 kB view details)

Uploaded Python 3

File details

Details for the file openrewrite-8.86.0.dev20260619064452.tar.gz.

File metadata

File hashes

Hashes for openrewrite-8.86.0.dev20260619064452.tar.gz
Algorithm Hash digest
SHA256 a00c1f331900b6adaff1b6910e2b34a9ec526d74f48052bcacaf33e3eb2969f3
MD5 8648da433526eb1994755bc9643d025f
BLAKE2b-256 b5511dc0119d33be1ebeedb7d51cbfe9da0377656e2832585427b3d7371fc121

See more details on using hashes here.

File details

Details for the file openrewrite-8.86.0.dev20260619064452-py3-none-any.whl.

File metadata

File hashes

Hashes for openrewrite-8.86.0.dev20260619064452-py3-none-any.whl
Algorithm Hash digest
SHA256 09a1e8abcea55e95a21437ae14ec5b85355be88b3180dd3f7baab4dd15d53d08
MD5 ddde8e88bcfe02b297e76be984c2c4d3
BLAKE2b-256 aec3eb2897301d433bf576167c99a6a1bf4aecec319f4e7174752572bc7cd51f

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