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.6.tar.gz (318.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.6-py3-none-any.whl (360.9 kB view details)

Uploaded Python 3

File details

Details for the file openrewrite-8.85.6.tar.gz.

File metadata

  • Download URL: openrewrite-8.85.6.tar.gz
  • Upload date:
  • Size: 318.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for openrewrite-8.85.6.tar.gz
Algorithm Hash digest
SHA256 ce9012062b29faa9b4a3b06d8592c49e675cb6d0e8d4f274767d2aba963c34ef
MD5 9dcae6d3b5b53732a6c1d1b5beb621b8
BLAKE2b-256 072cfbe2c4cf938ba6466e43250f580f89b8a1da07a513cd662e762782e4072a

See more details on using hashes here.

File details

Details for the file openrewrite-8.85.6-py3-none-any.whl.

File metadata

  • Download URL: openrewrite-8.85.6-py3-none-any.whl
  • Upload date:
  • Size: 360.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for openrewrite-8.85.6-py3-none-any.whl
Algorithm Hash digest
SHA256 be40641832d7d3f22188e3fc6264f54409673026063e549f9316482caecc8f94
MD5 0a64ff3fa47448f4a5f98a10e8b61dc1
BLAKE2b-256 f474196e810d850222474535f498746dae4ef54d17796ac77c40f415e7291d2a

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