When two functions or methods have the same implementation, either it was a mistake - something else was intended - or the duplication was intentional, but may be confusing to maintainers. In the latter case, one implementation should invoke the other. Numerical and string literals are not taken into account.

Noncompliant Code Example

class MyClass:
    code = "bounteous"

    def calculate_code(self):
        self.do_the_thing()
        return self.__class__.code

    def get_name(self):  # Noncompliant
        self.do_the_thing()
        return self.__class__.code

    def do_the_thing(self):
        pass  # on purpose

Compliant Solution

class MyClass:
    code = "bounteous"

    def calculate_code(self):
        self.do_the_thing()
        return self.__class__.code

    def get_name(self):
        return self.calculate_code()

    def do_the_thing(self):
        pass  # on purpose

Exceptions

No issue will be raised on empty methods/functions and methods/functions with only one line of code.