Given a folder myproj
with a file myclass.py
myproj
-- __init__.py
-- myclass.py
where myclass.py
contains the following class definition
class MyClass:
pass
I want to rename the class from MyClass
to MyClass2
with rope.
If I know that the offset of the class name is 6
, then I could rename the class as follows
import rope.base.project
import rope.refactor.rename
proj = rope.base.project.Project('myproj')
res = proj.get_module('myclass').get_resource()
change = rope.refactor.rename.Rename(proj, res, 6).get_changes('MyClass2')
print(change.get_description())
Question: How do I rename a class with rope knowing only the name of the class MyClass
(but not knowing the offset of MyClass
)?
Edit:
Here is one way to do it
offset = res.read().index('MyClass')