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.83.0.tar.gz (303.4 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.83.0-py3-none-any.whl (346.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for openrewrite-8.83.0.tar.gz
Algorithm Hash digest
SHA256 8473cfa3fbb8f47dbf95fbeb6cb17d0752c895ffb4150a60684638091eed47d6
MD5 252ff7ec171420ce76ecc8ce2859a861
BLAKE2b-256 54a18b66f9d97d82a74950f195c85753bb80ee21e81a5415d34b360a7259a01a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: openrewrite-8.83.0-py3-none-any.whl
  • Upload date:
  • Size: 346.1 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.83.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ee2e3c4e4fd4dd026012fdc26db203acb3390794d76c832f74c1a1347e3ac3d4
MD5 b73bc6ece67c53f528e45c2401937013
BLAKE2b-256 fe28860a999ed5befe6b61e499dd5eb313531430e99b4597a7b1a2e0e27fb70b

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