rope_py3k / README.txt

Full commit
 rope, a python refactoring IDE and library ...


`rope`_ is a python refactoring IDE and library.  The IDE uses the
library to provide features like refactoring, code assist, and
auto-completion.  It is written in python.  The IDE uses `Tkinter`

.. _`rope`:

New Features

* Inferring the object list comprehensions contain
* Adding support for Mercurial VCS in refactorings
* Self assignment warning

Rope can infer the object, list comprehensions and generator
expressions hold.  For instance in::

  class A(object):

  list1 = [A(), A()]
  list2 = [a for a in l1]

  var = list2[0]

Rope knows that the type of `var` is `A`.

Rope IDE can warn when you assign a variable to itself when you use
``show_warnings`` action.

Getting Started

* Overview and keybinding: `docs/user/overview.txt`_
* List of features: `docs/index.txt`_
* Tutorial: `docs/user/tutorial.txt`_
* Using as a library: `docs/dev/library.txt`_
* Contributing: `docs/dev/contributing.txt`_

To change rope IDE preferences edit your ``~/.rope`` (which is created
the first time you start rope).  To change your project preferences
edit ``$PROJECT_ROOT/.ropeproject/`` where ``$PROJECT_ROOT``
is the root folder of your project (this file is created the first
time you open a project).

If you don't like rope's default emacs-like keybinding, edit the
default ``~/.rope`` file and change `i_like_emacs` variable to

Project Road Map

The main motive for starting this project was the lack of good
refactoring tools for Python programming language.  Refactoring
programs like "bicycle repair man" aren't reliable due to type
inference problems and they support a limited number of refactorings.
*Rope* tries to improve these limitations.

* Why an IDE and not a standalone library or program?

As Don Roberts one of the writers of the "Refactoring Browser" for
smalltalk writes:

  "An early implementation of the Refactoring Browser for Smalltalk
  was a separate tool from the standard Smalltalk development tools.
  What we found was that no one used it.  We did not even use it
  ourselves.  Once we integrated the refactorings directly into the
  Smalltalk Browser, we used them extensively."

The main goal of *rope* is to concentrate on the type inference and
refactoring of python programs and not a state of art IDE (At least
not in the first phase).  The type inference and refactoring parts
will not be dependent on *rope* IDE and if successful, will be
released as standalone programs and libraries so that other projects
may use them.

Get Involved!

See `docs/dev/contributing.txt`_.

Bug Reports

Send your bug reports and feature requests in *rope*'s
project page at


This program is under the terms of GPL(GNU General Public License).
Have a look at ``COPYING`` file for more information.

.. _`docs/user/overview.txt`: docs/user/overview.html
.. _`docs/user/tutorial.txt`: docs/user/tutorial.html
.. _`docs/index.txt`: docs/index.html
.. _`docs/dev/contributing.txt`: docs/dev/contributing.html
.. _`docs/dev/library.txt`: docs/dev/library.html