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.dev20260615133041.tar.gz (316.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.85.0.dev20260615133041-py3-none-any.whl (358.7 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for openrewrite-8.85.0.dev20260615133041.tar.gz
Algorithm Hash digest
SHA256 de0a5e6d436d62919510c4feb24ef0438ef93f30df157f98bd6745d020230fa8
MD5 35a50f2b56f834d9a84fe99e3578ee1f
BLAKE2b-256 69407e5fab7a9db9b17530d3dceb26d771f62e945f6aa89b2ecd68f8e9d39a4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openrewrite-8.85.0.dev20260615133041-py3-none-any.whl
Algorithm Hash digest
SHA256 672dca116f5f2caff48079114ddf37ae4f80289988743ecdc7e3ae955efe596f
MD5 208da39167efa6c5505d0e4f4ddc3d98
BLAKE2b-256 02b7cc06dda59c4dcf84daab969a1910062045154b0684d800e74b75ae517f3a

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