Skip to main content

a python refactoring library...

Project description

Overview

Rope is a python refactoring library.

New Features

  • added rope.contrib.findit.find_implementations()

  • moved find_occurrences() to rope.contrib.findit module

  • inlining parameters

  • adding underlined parameter to AutoImport

  • automatic default insertion in change signature

  • some internal source code analysis improvements

Inlining parameters

rope.refactor.inline.create_inline() creates an InlineParameter object when it is performed on a parameter. It passes the default value of the parameter wherever its function is called without passing it. For instance in:

def f(p1=1, p2=1):
    pass

f(3)
f()
f(3, 4)

after inlining p2 parameter will have:

def f(p1=1, p2=1):
    pass

f(3, 2)
f(p2=2)
f(3, 4)

findit module

A new rope.contrib.findit module has been added and find_occurrences() has been moved there. A new function was also added to this module called find_implementations(). It finds the places in which the selected method is overridden.

underlined parameter of AutoImport

You can control whether rope.contrib.autoimport.AutoImport should cache names starting with an underline or not by using the underlined argument of its constructor.

Automatic default insertion in change signature

The rope.refactor.change_signature.ArgumentReorderer signature changer takes a new parameter called autodef. If not None, its value is used whenever rope needs to insert a default for a parameter (that happens when an argument without default is moved after another that has a default value). For instance in:

def f(p1, p2=2):
    pass

if we reorder using:

changers = [ArgumentReorderer([1, 0], autodef='1')]

will result in:

def f(p2=2, p1=1):
    pass

Project details


Release history Release notifications | RSS feed

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page