If merging the conditions seems to result in a more complex code, extracting the condition or part of it in a named function or variable is a better approach to fix readability.
=== Code examples
==== Noncompliant code example
[source,python]
----
if file.isValid():
if file.isfile() or file.isdir(): # Noncompliant
# ...
----
==== Compliant solution
[source,python]
----
def isFileOrDirectory(File file):
return file.isFile() or file.isDirectory()
if file.isValid() and isFileOrDirectory(file): # Compliant