Somethings just can't be done.
class Foo:
def foo():
pass
def bar(f):
f.foo
If you re-factor Foo.foo to Foo.renamed, there is no way to know if the call in bar should be re-named as well.Somethings just can't be done.
class Foo:
def foo():
pass
def bar(f):
f.foo
If you re-factor Foo.foo to Foo.renamed, there is no way to know if the call in bar should be re-named as well.The analog would be driving to New York from Bangalore. Sure it can be done if I arrange a car; have money for the fuel, food and stay; have all the papers etc etc. But that doesn't mean it is in any way comparable to flying to New York while watching a movie and sipping wine.
Renaming a method in the public interface is always a pain - your test coverage and code tracing can numb down it a bit, but it's going to be there. Some of it is because public interfaces are a constant for all practical intent and purpose; most of it is because of the case I listed above.
The only gotcha is where you're eval'ing a string, but that's going to be nasty however you cut it.
Joking aside, your example brought the nature of the issue to life; thanks.