Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What refactoring tools do you use for Python? [closed]

I have a bunch of classes I want to rename. Some of them have names that are small and that name is reused in other class names, where I don't want that name changed. Most of this lives in Python code, but we also have some XML code that references class names.

Simple search and replace only gets me so far. In my case, I want to rename AdminAction to AdminActionPlug and AdminActionLogger to AdminActionLoggerPlug, so the first one's search-and-replace would also hit the second, wrongly.

Does anyone have experience with Python refactoring tools ? Bonus points if they can fix class names in the XML documents too.

like image 879
Thomas Vander Stichele Avatar asked Aug 26 '08 18:08

Thomas Vander Stichele


People also ask

What is a refactoring tool?

Refactoring is the process of modifying programs to improve program structure without changing functionality.

How do I Refactor Python code in Visual Studio?

Right-click the identifier you wish to rename and select Rename, or place the caret in that identifier and select the Edit > Refactor > Rename menu command (F2), or select the identifier and press Ctrl+R.


1 Answers

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.

like image 152
Thomas Vander Stichele Avatar answered Oct 12 '22 11:10

Thomas Vander Stichele