Skip to main content
Donate to the Python Software Foundation or Purchase a PyCharm License to Benefit the PSF! Donate Now

a python refactoring library...

Project description


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):

f(3, 4)

after inlining p2 parameter will have:

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

f(3, 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):

if we reorder using:

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

will result in:

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

Project details

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page