All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sonar.l10n.py.rules.python.S2275.html Maven / Gradle / Ivy

There is a newer version: 4.23.0.17664
Show newest version

Why is this an issue?

Formatting strings, either with the % operator or str.format method, requires a valid string and arguments matching this string’s replacement fields.

This rule raises an issue when formatting a string will raise an exception because the input string or arguments are invalid. Rule {rule:python:S3457} covers cases where no exception is raised and the resulting string is simply not formatted properly.

Noncompliant code example

print('Error code %d' % '42')  # Noncompliant. Replace this value with a number as %d requires.

print('User {1} is not allowed to perform this action'.format('Bob'))  # Noncompliant. Replacement field numbering should start at 0.

print('User {0} has not been able to access {}'.format('Alice', 'MyFile'))  # Noncompliant. Use only manual or only automatic field numbering, don't mix them.

print('User {a} has not been able to access {b}'.format(a='Alice'))  # Noncompliant. Provide a value for field "b".

Compliant solution

print('Error code %d' % 42)

print('User {0} is not allowed to perform this action'.format('Bob'))

print('User {0} has not been able to access {1}'.format('Alice', 'MyFile'))

print('User {a} has not been able to access {b}'.format(a='Alice', b='MyFile'))

Resources





© 2015 - 2024 Weber Informatics LLC | Privacy Policy