Rope 0.5m4 has been released.&nbsp; Get it from<br><a href="http://sf.net/projects/rope/files">http://sf.net/projects/rope/files</a>.<br><br>================================================<br>&nbsp;rope, a python refactoring IDE and library ...
<br>================================================<br><br><br>Overview<br>========<br><br>`rope`_ is a python refactoring IDE and library.&nbsp; The IDE uses the<br>library to provide features like refactoring, code assist, and
<br>auto-completion.&nbsp; It is written in python.&nbsp; The IDE uses `Tkinter`<br>library.<br><br>.. _`rope`: <a href="http://rope.sf.net/">http://rope.sf.net/</a><br><br><br>New Features<br>============<br><br>* Generating python elements
<br>* Memorizing locations and texts<br>* Added `.ropeproject` folder<br>* Saving history across sessions<br>* Saving object data to disk<br>* Incremental ObjectDB validation<br>* Inlining `staticmethod`\s<br>* Setting ignored resources patterns
<br><br>Maybe the most notable change in this release is the addition of a new<br>folder in projects for holding configurations and other informations<br>for a project.&nbsp; Its default name is ``.ropeproject``, but it can be
<br>changed in ``~/.rope`` or `Project` constructor (if using rope as a<br>library).&nbsp; You can also force rope not to make such a folder by using<br>`None` instead of a `str`.<br><br>Currently it is used for these perposes:
<br><br>* There is a ``config.py`` file in this folder in which you can change<br>&nbsp; project configurations.&nbsp; Look at the default ``config.py`` file,<br>&nbsp; that is created when there is none available, for more information.
<br>&nbsp; When a project is open you can edit this file using ``&quot;Edit Project<br>&nbsp; config.py&quot;`` action or ``C-x p c``.<br>* It can be used for saving project history, so that the next time you<br>&nbsp; open the project you can see and undo past changes.&nbsp; If you&#39;re new
<br>&nbsp; to rope use ``&quot;Project History&quot;`` (``C-x p h``) for more<br>&nbsp; information.<br>* It can be used for saving object information.&nbsp; Before this release<br>&nbsp; all object information where kept in memory.&nbsp; Saving them on disk
<br>&nbsp; has two advantages.&nbsp; First, rope will need less memory and second,<br>&nbsp; the calculated and collected information is not thrown away each<br>&nbsp; time you close a project.<br><br>You can change what to save and what not to in the ``config.py`` file.
<br><br>Since files on disk change overtime project object DB might hold<br>invalid information.&nbsp; Currently there is a basic incremental object DB<br>validation that can be used to remove or fix out of date information.<br>
Rope uses this feature by default but you can disable it by editing<br>``config.py``.&nbsp; Other interesting features related to rope&#39;s object DB<br>and object inference are planned for ``0.5`` release.&nbsp; So if you&#39;re<br>
interested keep waiting!<br><br>The generate element actions make python elements.&nbsp; You have to move<br>on an element that does not exist and perform one of these generate<br>actions.&nbsp; For example::<br><br>&nbsp; my_print(var=1)
<br><br>Calling generate function on `my_print` (``C-c n f``) will result in::<br><br>&nbsp; def my_print(var):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pass<br><br><br>&nbsp; my_print(var=1)<br><br>It handle methods, static methods, classes, variables, modules, and
<br>packages, too.&nbsp; Generate element actions use ``C-c n`` prefix.<br><br>Rope can now save locations or strings in memory.&nbsp; These are similar<br>to emacs&#39;s bookmarks and registers.&nbsp; These actions use ``C-x m``<br>prefix.
<br><br>