What refactoring tools do you use for Python?
In the meantime, I've tried it two tools that have some sort of integration with vim.
The first is Rope, a python refactoring library that comes with a Vim (and emacs) plug-in. I tried it for a few renames, and that definitely worked as expected. It allowed me to preview the refactoring as a diff, which is nice. It is a bit text-driven, but that's alright for me, just takes longer to learn.
The second is Bicycle Repair Man which I guess wins points on name. Also plugs into vim and emacs. Haven't played much with it yet, but I remember trying it a long time ago.
Haven't played with both enough yet, or tried more types of refactoring, but I will do some more hacking with them.
I would strongly recommend PyCharm - not just for refactorings. Since the first PyCharm answer was posted here a few years ago the refactoring support in PyCharm has improved significantly.
Python Refactorings available in PyCharm (last checked 2016/07/27 in PyCharm 2016.2)
- Change Signature
- Convert to Python Package/Module
- Copy
- Extract Refactorings
- Inline
- Invert Boolean
- Make Top-Level Function
- Move Refactorings
- Push Members down
- Pull Members up
- Rename Refactorings
- Safe Delete
XML refactorings (I checked in context menu in an XML file):
- Rename
- Move
- Copy
- Extract Subquery as CTE
- Inline
Javascript refactorings:
- Extract Parameter in JavaScript
- Change Signature in JavaScript
- Extract Variable in JavaScript