Duplicated string literals make the process of refactoring complex and error-prone, as any change would need to be propagated on all occurrences.
No issue will be raised on:
Use constants to replace the duplicated string literals. Constants can be referenced from many places, but only need to be updated in a single place.
With the default threshold of 3:
def run():
prepare("action1") # Noncompliant - "action1" is duplicated 3 times
execute("action1")
release("action1")
@app.route("/api/users/", methods=['GET', 'POST', 'PUT'])
def users():
pass
@app.route("/api/projects/", methods=['GET', 'POST', 'PUT']) # Compliant - strings inside decorators are ignored
def projects():
pass
ACTION_1 = "action1"
def run():
prepare(ACTION_1)
execute(ACTION_1)
release(ACTION_1)