chrislit/abydos

View on GitHub
abydos/distance/_synoname.py

Summary

Maintainability
F
1 wk
Test Coverage

Function sim_type has a Cognitive Complexity of 113 (exceeds 5 allowed). Consider refactoring.
Open

    def sim_type(
        self,
        src: Union[str, Tuple[str, str, str]],
        tar: Union[str, Tuple[str, str, str]],
        force_numeric: bool = False,
Severity: Minor
Found in abydos/distance/_synoname.py - About 2 days to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Function _synoname_word_approximation has a Cognitive Complexity of 82 (exceeds 5 allowed). Consider refactoring.
Open

    def _synoname_word_approximation(
        self,
        src_ln: str,
        tar_ln: str,
        src_fn: str = '',
Severity: Minor
Found in abydos/distance/_synoname.py - About 1 day to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Cyclomatic complexity is too high in method _synoname_word_approximation. (73)
Open

    def _synoname_word_approximation(
        self,
        src_ln: str,
        tar_ln: str,
        src_fn: str = '',
Severity: Minor
Found in abydos/distance/_synoname.py by radon

Cyclomatic Complexity

Cyclomatic Complexity corresponds to the number of decisions a block of code contains plus 1. This number (also called McCabe number) is equal to the number of linearly independent paths through the code. This number can be used as a guide when testing conditional logic in blocks.

Radon analyzes the AST tree of a Python program to compute Cyclomatic Complexity. Statements have the following effects on Cyclomatic Complexity:

Construct Effect on CC Reasoning
if +1 An if statement is a single decision.
elif +1 The elif statement adds another decision.
else +0 The else statement does not cause a new decision. The decision is at the if.
for +1 There is a decision at the start of the loop.
while +1 There is a decision at the while statement.
except +1 Each except branch adds a new conditional path of execution.
finally +0 The finally block is unconditionally executed.
with +1 The with statement roughly corresponds to a try/except block (see PEP 343 for details).
assert +1 The assert statement internally roughly equals a conditional statement.
Comprehension +1 A list/set/dict comprehension of generator expression is equivalent to a for loop.
Boolean Operator +1 Every boolean operator (and, or) adds a decision point.

Source: http://radon.readthedocs.org/en/latest/intro.html

Cyclomatic complexity is too high in method sim_type. (73)
Open

    def sim_type(
        self,
        src: Union[str, Tuple[str, str, str]],
        tar: Union[str, Tuple[str, str, str]],
        force_numeric: bool = False,
Severity: Minor
Found in abydos/distance/_synoname.py by radon

Cyclomatic Complexity

Cyclomatic Complexity corresponds to the number of decisions a block of code contains plus 1. This number (also called McCabe number) is equal to the number of linearly independent paths through the code. This number can be used as a guide when testing conditional logic in blocks.

Radon analyzes the AST tree of a Python program to compute Cyclomatic Complexity. Statements have the following effects on Cyclomatic Complexity:

Construct Effect on CC Reasoning
if +1 An if statement is a single decision.
elif +1 The elif statement adds another decision.
else +0 The else statement does not cause a new decision. The decision is at the if.
for +1 There is a decision at the start of the loop.
while +1 There is a decision at the while statement.
except +1 Each except branch adds a new conditional path of execution.
finally +0 The finally block is unconditionally executed.
with +1 The with statement roughly corresponds to a try/except block (see PEP 343 for details).
assert +1 The assert statement internally roughly equals a conditional statement.
Comprehension +1 A list/set/dict comprehension of generator expression is equivalent to a for loop.
Boolean Operator +1 Every boolean operator (and, or) adds a decision point.

Source: http://radon.readthedocs.org/en/latest/intro.html

File _synoname.py has 694 lines of code (exceeds 250 allowed). Consider refactoring.
Open

# Copyright 2018-2020 by Christopher C. Little.
# This file is part of Abydos.
#
# Abydos is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
Severity: Major
Found in abydos/distance/_synoname.py - About 1 day to fix

    Cyclomatic complexity is too high in class Synoname. (26)
    Open

    class Synoname(_Distance):
        """Synoname.
    
        Cf. :cite:`Getty:1991,Gross:1991`
    
    
    Severity: Minor
    Found in abydos/distance/_synoname.py by radon

    Cyclomatic Complexity

    Cyclomatic Complexity corresponds to the number of decisions a block of code contains plus 1. This number (also called McCabe number) is equal to the number of linearly independent paths through the code. This number can be used as a guide when testing conditional logic in blocks.

    Radon analyzes the AST tree of a Python program to compute Cyclomatic Complexity. Statements have the following effects on Cyclomatic Complexity:

    Construct Effect on CC Reasoning
    if +1 An if statement is a single decision.
    elif +1 The elif statement adds another decision.
    else +0 The else statement does not cause a new decision. The decision is at the if.
    for +1 There is a decision at the start of the loop.
    while +1 There is a decision at the while statement.
    except +1 Each except branch adds a new conditional path of execution.
    finally +0 The finally block is unconditionally executed.
    with +1 The with statement roughly corresponds to a try/except block (see PEP 343 for details).
    assert +1 The assert statement internally roughly equals a conditional statement.
    Comprehension +1 A list/set/dict comprehension of generator expression is equivalent to a for loop.
    Boolean Operator +1 Every boolean operator (and, or) adds a decision point.

    Source: http://radon.readthedocs.org/en/latest/intro.html

    Function _synoname_word_approximation has 42 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

        def _synoname_word_approximation(
            self,
            src_ln: str,
            tar_ln: str,
            src_fn: str = '',
    Severity: Minor
    Found in abydos/distance/_synoname.py - About 1 hr to fix

      Function sim_type has 40 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

          def sim_type(
              self,
              src: Union[str, Tuple[str, str, str]],
              tar: Union[str, Tuple[str, str, str]],
              force_numeric: bool = False,
      Severity: Minor
      Found in abydos/distance/_synoname.py - About 1 hr to fix

        Consider simplifying this complex logical expression.
        Open

                        if (
                            (not src_len_fn and not tar_len_fn)
                            or (tar_fn and src_fn.startswith(tar_fn))
                            or (src_fn and tar_fn.startswith(src_fn))
                        ) and not roman_conflict:
        Severity: Major
        Found in abydos/distance/_synoname.py - About 1 hr to fix

          Consider simplifying this complex logical expression.
          Open

                  if matches > 1 or (
                      matches == 1
                      and src1_num_words == 1
                      and tar1_num_words == 1
                      and (tar_len_specials > 0 or src_len_specials > 0)
          Severity: Major
          Found in abydos/distance/_synoname.py - About 40 mins to fix

            Consider simplifying this complex logical expression.
            Open

                    if matches > 1 or (
                        matches == 1
                        and src2_num_words == 1
                        and tar2_num_words == 1
                        and (tar_len_specials > 0 or src_len_specials > 0)
            Severity: Major
            Found in abydos/distance/_synoname.py - About 40 mins to fix

              Function _synoname_word_approximation has 5 arguments (exceeds 4 allowed). Consider refactoring.
              Open

                  def _synoname_word_approximation(
              Severity: Minor
              Found in abydos/distance/_synoname.py - About 35 mins to fix

                Function __init__ has 5 arguments (exceeds 4 allowed). Consider refactoring.
                Open

                    def __init__(
                Severity: Minor
                Found in abydos/distance/_synoname.py - About 35 mins to fix

                  Function __init__ has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
                  Open

                      def __init__(
                          self,
                          word_approx_min: float = 0.3,
                          char_approx_min: float = 0.73,
                          tests: Union[int, TIterable[str]] = 2 ** 12 - 1,
                  Severity: Minor
                  Found in abydos/distance/_synoname.py - About 35 mins to fix

                  Cognitive Complexity

                  Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                  A method's cognitive complexity is based on a few simple rules:

                  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                  • Code is considered more complex for each "break in the linear flow of the code"
                  • Code is considered more complex when "flow breaking structures are nested"

                  Further reading

                  Avoid too many return statements within this function.
                  Open

                              return 1
                  Severity: Major
                  Found in abydos/distance/_synoname.py - About 30 mins to fix

                    Avoid too many return statements within this function.
                    Open

                                            return _fmt_retval(self._match_type_dict['initials'])
                    Severity: Major
                    Found in abydos/distance/_synoname.py - About 30 mins to fix

                      Avoid too many return statements within this function.
                      Open

                                      return _fmt_retval(self._match_type_dict['inclusion'])
                      Severity: Major
                      Found in abydos/distance/_synoname.py - About 30 mins to fix

                        Avoid too many return statements within this function.
                        Open

                                            return _fmt_retval(self._match_type_dict['extension'])
                        Severity: Major
                        Found in abydos/distance/_synoname.py - About 30 mins to fix

                          Avoid too many return statements within this function.
                          Open

                                  return _fmt_retval(self._match_type_dict['no_match'])
                          Severity: Major
                          Found in abydos/distance/_synoname.py - About 30 mins to fix

                            Avoid too many return statements within this function.
                            Open

                                            return _fmt_retval(self._match_type_dict['no_first'])
                            Severity: Major
                            Found in abydos/distance/_synoname.py - About 30 mins to fix

                              Avoid too many return statements within this function.
                              Open

                                          return 0
                              Severity: Major
                              Found in abydos/distance/_synoname.py - About 30 mins to fix

                                Avoid too many return statements within this function.
                                Open

                                                return _fmt_retval(self._match_type_dict['char_approx'])
                                Severity: Major
                                Found in abydos/distance/_synoname.py - About 30 mins to fix

                                  Avoid too many return statements within this function.
                                  Open

                                                  return _fmt_retval(self._match_type_dict['transposition'])
                                  Severity: Major
                                  Found in abydos/distance/_synoname.py - About 30 mins to fix

                                    Avoid too many return statements within this function.
                                    Open

                                                            return _fmt_retval(self._match_type_dict['initials'])
                                    Severity: Major
                                    Found in abydos/distance/_synoname.py - About 30 mins to fix

                                      Avoid too many return statements within this function.
                                      Open

                                                  return w_ratio
                                      Severity: Major
                                      Found in abydos/distance/_synoname.py - About 30 mins to fix

                                        Avoid too many return statements within this function.
                                        Open

                                                        return _fmt_retval(self._match_type_dict['substitution'])
                                        Severity: Major
                                        Found in abydos/distance/_synoname.py - About 30 mins to fix

                                          Avoid too many return statements within this function.
                                          Open

                                                              return _fmt_retval(self._match_type_dict['confusions'])
                                          Severity: Major
                                          Found in abydos/distance/_synoname.py - About 30 mins to fix

                                            Avoid too many return statements within this function.
                                            Open

                                                    return 0
                                            Severity: Major
                                            Found in abydos/distance/_synoname.py - About 30 mins to fix

                                              Avoid too many return statements within this function.
                                              Open

                                                              return _fmt_retval(self._match_type_dict['punctuation'])
                                              Severity: Major
                                              Found in abydos/distance/_synoname.py - About 30 mins to fix

                                                Avoid too many return statements within this function.
                                                Open

                                                                return _fmt_retval(self._match_type_dict['transposition'])
                                                Severity: Major
                                                Found in abydos/distance/_synoname.py - About 30 mins to fix

                                                  Avoid too many return statements within this function.
                                                  Open

                                                              return w_ratio
                                                  Severity: Major
                                                  Found in abydos/distance/_synoname.py - About 30 mins to fix

                                                    Avoid too many return statements within this function.
                                                    Open

                                                                return 0
                                                    Severity: Major
                                                    Found in abydos/distance/_synoname.py - About 30 mins to fix

                                                      Avoid too many return statements within this function.
                                                      Open

                                                                      return _fmt_retval(self._match_type_dict['punctuation'])
                                                      Severity: Major
                                                      Found in abydos/distance/_synoname.py - About 30 mins to fix

                                                        Avoid too many return statements within this function.
                                                        Open

                                                                        return _fmt_retval(self._match_type_dict['word_approx'])
                                                        Severity: Major
                                                        Found in abydos/distance/_synoname.py - About 30 mins to fix

                                                          Refactor this function to reduce its Cognitive Complexity from 88 to the 15 allowed.
                                                          Open

                                                              def _synoname_word_approximation(
                                                          Severity: Critical
                                                          Found in abydos/distance/_synoname.py by sonar-python

                                                          Cognitive Complexity is a measure of how hard the control flow of a function is to understand. Functions with high Cognitive Complexity will be difficult to maintain.

                                                          See

                                                          Refactor this function to reduce its Cognitive Complexity from 122 to the 15 allowed.
                                                          Open

                                                              def sim_type(
                                                          Severity: Critical
                                                          Found in abydos/distance/_synoname.py by sonar-python

                                                          Cognitive Complexity is a measure of how hard the control flow of a function is to understand. Functions with high Cognitive Complexity will be difficult to maintain.

                                                          See

                                                          Too many boolean expressions in if statement (6/5)
                                                          Open

                                                                  if matches > 1 or (
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when an if statement contains too many boolean expressions.

                                                          Too many boolean expressions in if statement (7/5)
                                                          Open

                                                                          if (
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when an if statement contains too many boolean expressions.

                                                          Unnecessary elif after return
                                                          Open

                                                                      if fn_equal and (self._lev.dist_abs(src_ln, tar_ln) == 1):
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used in order to highlight an unnecessary block of code following an if containing a return statement. As such, it will warn when it encounters an else following a chain of ifs, all of them containing a return statement.

                                                          Too many branches (38/12)
                                                          Open

                                                              def sim_type(
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a function or method has too many branches, making it hard to follow.

                                                          Too many statements (105/50)
                                                          Open

                                                              def sim_type(
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a function or method has too many statements. You should then split it in smaller functions / methods.

                                                          Method could be a function
                                                          Open

                                                              def _synoname_strip_punct(self, word: str) -> str:
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a method doesn't use its bound instance, and so could be written as a function.

                                                          Too many branches (44/12)
                                                          Open

                                                              def _synoname_word_approximation(
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a function or method has too many branches, making it hard to follow.

                                                          Unnecessary elif after return
                                                          Open

                                                                      if fn_equal and self._lev.dist_abs(src_ln, tar_ln) == 1:
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used in order to highlight an unnecessary block of code following an if containing a return statement. As such, it will warn when it encounters an else following a chain of ifs, all of them containing a return statement.

                                                          Too many arguments (6/5)
                                                          Open

                                                              def _synoname_word_approximation(
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a function or method takes too many arguments.

                                                          Too many local variables (31/15)
                                                          Open

                                                              def _synoname_word_approximation(
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a function or method has too many local variables.

                                                          Too many return statements (10/6)
                                                          Open

                                                              def _synoname_word_approximation(
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a function or method has too many return statement, making it hard to follow.

                                                          Too many boolean expressions in if statement (6/5)
                                                          Open

                                                                  if matches > 1 or (
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when an if statement contains too many boolean expressions.

                                                          Too many local variables (40/15)
                                                          Open

                                                              def sim_type(
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a function or method has too many local variables.

                                                          Too many return statements (18/6)
                                                          Open

                                                              def sim_type(
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a function or method has too many return statement, making it hard to follow.

                                                          Too many statements (84/50)
                                                          Open

                                                              def _synoname_word_approximation(
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a function or method has too many statements. You should then split it in smaller functions / methods.

                                                          Merge this if statement with the enclosing one.
                                                          Open

                                                                          if (
                                                          Severity: Major
                                                          Found in abydos/distance/_synoname.py by sonar-python

                                                          Merging collapsible if statements increases the code's readability.

                                                          Noncompliant Code Example

                                                          if condition1:
                                                              if condition2:
                                                                  # ...
                                                          

                                                          Compliant Solution

                                                          if condition1 and condition2:
                                                              # ...
                                                          

                                                          Merge this if statement with the enclosing one.
                                                          Open

                                                                      if (src_fn and src_fn in tar_fn) or (tar_fn and tar_fn in src_ln):
                                                          Severity: Major
                                                          Found in abydos/distance/_synoname.py by sonar-python

                                                          Merging collapsible if statements increases the code's readability.

                                                          Noncompliant Code Example

                                                          if condition1:
                                                              if condition2:
                                                                  # ...
                                                          

                                                          Compliant Solution

                                                          if condition1 and condition2:
                                                              # ...
                                                          

                                                          Merge this if statement with the enclosing one.
                                                          Open

                                                                      if src_fn == '' or tar_fn == '':
                                                          Severity: Major
                                                          Found in abydos/distance/_synoname.py by sonar-python

                                                          Merging collapsible if statements increases the code's readability.

                                                          Noncompliant Code Example

                                                          if condition1:
                                                              if condition2:
                                                                  # ...
                                                          

                                                          Compliant Solution

                                                          if condition1 and condition2:
                                                              # ...
                                                          

                                                          Merge this if statement with the enclosing one.
                                                          Open

                                                                      if src_fn and tar_fn:
                                                          Severity: Major
                                                          Found in abydos/distance/_synoname.py by sonar-python

                                                          Merging collapsible if statements increases the code's readability.

                                                          Noncompliant Code Example

                                                          if condition1:
                                                              if condition2:
                                                                  # ...
                                                          

                                                          Compliant Solution

                                                          if condition1 and condition2:
                                                              # ...
                                                          

                                                          Merge this if statement with the enclosing one.
                                                          Open

                                                                          if (
                                                          Severity: Major
                                                          Found in abydos/distance/_synoname.py by sonar-python

                                                          Merging collapsible if statements increases the code's readability.

                                                          Noncompliant Code Example

                                                          if condition1:
                                                              if condition2:
                                                                  # ...
                                                          

                                                          Compliant Solution

                                                          if condition1 and condition2:
                                                              # ...
                                                          

                                                          Merge this if statement with the enclosing one.
                                                          Open

                                                                      if src_ln[1:2] == tar_ln[1:2] and (
                                                          Severity: Major
                                                          Found in abydos/distance/_synoname.py by sonar-python

                                                          Merging collapsible if statements increases the code's readability.

                                                          Noncompliant Code Example

                                                          if condition1:
                                                              if condition2:
                                                                  # ...
                                                          

                                                          Compliant Solution

                                                          if condition1 and condition2:
                                                              # ...
                                                          

                                                          Merge this if statement with the enclosing one.
                                                          Open

                                                                      if ca_ratio >= self._char_approx_min:
                                                          Severity: Major
                                                          Found in abydos/distance/_synoname.py by sonar-python

                                                          Merging collapsible if statements increases the code's readability.

                                                          Noncompliant Code Example

                                                          if condition1:
                                                              if condition2:
                                                                  # ...
                                                          

                                                          Compliant Solution

                                                          if condition1 and condition2:
                                                              # ...
                                                          

                                                          Correct one of the identical sub-expressions on both sides of operator "or".
                                                          Open

                                                                                  or (
                                                                                      initial_diff
                                                                                      == self._lev.dist_abs(
                                                                                          src_initials_str, tar_initials_str,
                                                                                      )
                                                          Severity: Major
                                                          Found in abydos/distance/_synoname.py by sonar-python

                                                          Using the same value on either side of a binary operator is almost always a mistake. In the case of logical operators, it is either a copy/paste error and therefore a bug, or it is simply wasted code, and should be simplified. In the case of bitwise operators and most binary mathematical operators, having the same value on both sides of an operator yields predictable results, and should be simplified.

                                                          This rule ignores *, +, and =.

                                                          Noncompliant Code Example

                                                          if a == a: # Noncompliant
                                                              work()
                                                          
                                                          if  a != a: # Noncompliant
                                                              work()
                                                          
                                                          if  a == b and a == b: # Noncompliant
                                                              work()
                                                          
                                                          if a == b or a == b: # Noncompliant
                                                              work()
                                                          
                                                          j = 5 / 5 # Noncompliant
                                                          k = 5 - 5 # Noncompliant
                                                          

                                                          Exceptions

                                                          The following are ignored:

                                                          • The expression 1 << 1

                                                          See

                                                          • CERT, MSC12-C. - Detect and remove code that has no effect or is never executed
                                                          • CERT, MSC12-CPP. - Detect and remove code that has no effect
                                                          • {rule:python:S1656} - Implements a check on =.

                                                          Either merge this branch with the identical one on line "701" or change one of the implementations.
                                                          Open

                                                                          return _fmt_retval(self._match_type_dict['transposition'])
                                                          Severity: Major
                                                          Found in abydos/distance/_synoname.py by sonar-python

                                                          Having two branches in the same if structure with the same implementation is at best duplicate code, and at worst a coding error. If the same logic is truly needed for both instances, then they should be combined.

                                                          Noncompliant Code Example

                                                          if 0 <= a < 10:
                                                              do_the_thing()
                                                          elif 10 <= a < 20:
                                                              do_the_other_thing()
                                                          elif 20 <= a < 50:
                                                              do_the_thing()  # Noncompliant; duplicates first condition
                                                          else:
                                                              do_the_rest()
                                                          
                                                          b = 4 if a > 12 else 4
                                                          

                                                          Compliant Solution

                                                          if (0 <= a < 10) or (20 <= a < 50):
                                                              do_the_thing()
                                                          elif 10 <= a < 20:
                                                              do_the_other_thing()
                                                          else:
                                                              do_the_rest()
                                                          
                                                          b = 4
                                                          

                                                          or

                                                          if 0 <= a < 10:
                                                              do_the_thing()
                                                          elif 10 <= a < 20:
                                                              do_the_other_thing()
                                                          elif 20 <= a < 50:
                                                              do_the_third_thing()
                                                          else:
                                                              do_the_rest()
                                                          
                                                          b = 8 if a > 12 else 4
                                                          

                                                          Either merge this branch with the identical one on line "694" or change one of the implementations.
                                                          Open

                                                                          return _fmt_retval(self._match_type_dict['substitution'])
                                                          Severity: Major
                                                          Found in abydos/distance/_synoname.py by sonar-python

                                                          Having two branches in the same if structure with the same implementation is at best duplicate code, and at worst a coding error. If the same logic is truly needed for both instances, then they should be combined.

                                                          Noncompliant Code Example

                                                          if 0 <= a < 10:
                                                              do_the_thing()
                                                          elif 10 <= a < 20:
                                                              do_the_other_thing()
                                                          elif 20 <= a < 50:
                                                              do_the_thing()  # Noncompliant; duplicates first condition
                                                          else:
                                                              do_the_rest()
                                                          
                                                          b = 4 if a > 12 else 4
                                                          

                                                          Compliant Solution

                                                          if (0 <= a < 10) or (20 <= a < 50):
                                                              do_the_thing()
                                                          elif 10 <= a < 20:
                                                              do_the_other_thing()
                                                          else:
                                                              do_the_rest()
                                                          
                                                          b = 4
                                                          

                                                          or

                                                          if 0 <= a < 10:
                                                              do_the_thing()
                                                          elif 10 <= a < 20:
                                                              do_the_other_thing()
                                                          elif 20 <= a < 50:
                                                              do_the_third_thing()
                                                          else:
                                                              do_the_rest()
                                                          
                                                          b = 8 if a > 12 else 4
                                                          

                                                          Access to a protected member _synoname_special_table of a client class
                                                          Open

                                                                          and self._stc._synoname_special_table[s_pos][1]  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Access to a protected member _cost of a client class
                                                          Open

                                                                              self._lev._cost = (1, 99, 99, 99)  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Access to a protected member _mode of a client class
                                                          Open

                                                                              self._lev._mode = 'lev'  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Access to a protected member _synoname_special_table of a client class
                                                          Open

                                                                                  self._stc._synoname_special_table[s_pos][  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Access to a protected member _synoname_special_table of a client class
                                                          Open

                                                                                      self._stc._synoname_special_table[  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Access to a protected member _mode of a client class
                                                          Open

                                                                      self._lev._mode = 'osa'  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Unused variable 'approx_c_result'
                                                          Open

                                                                  approx_c_result, ca_ratio = _approx_c()
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a variable is defined but not used.

                                                          Access to a protected member _synoname_special_table of a client class
                                                          Open

                                                                              + self._stc._synoname_special_table[s_pos][1]  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Access to a protected member _synoname_special_table of a client class
                                                          Open

                                                                                  self._stc._synoname_special_table[s_pos][  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Access to a protected member _synoname_special_table of a client class
                                                          Open

                                                                                      self._stc._synoname_special_table[  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Access to a protected member _synoname_special_table of a client class
                                                          Open

                                                                              + self._stc._synoname_special_table[s_pos][1]  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Access to a protected member _cost of a client class
                                                          Open

                                                                      self._lev._cost = (99, 99, 99, 1)  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Access to a protected member _synoname_special_table of a client class
                                                          Open

                                                                                  + self._stc._synoname_special_table[  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Access to a protected member _synoname_special_table of a client class
                                                          Open

                                                                                  self._stc._synoname_special_table[s_pos][  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Access to a protected member _cost of a client class
                                                          Open

                                                                      self._lev._cost = (1, 1, 99, 99)  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Access to a protected member _synoname_special_table of a client class
                                                          Open

                                                                                  self._stc._synoname_special_table[s_pos][  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Access to a protected member _synoname_special_table of a client class
                                                          Open

                                                                                      self._stc._synoname_special_table[  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Access to a protected member _synoname_special_table of a client class
                                                          Open

                                                                          and self._stc._synoname_special_table[s_pos][1]  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Access to a protected member _cost of a client class
                                                          Open

                                                                      self._lev._cost = (99, 99, 1, 99)  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Access to a protected member _mode of a client class
                                                          Open

                                                                      self._lev._mode = 'lev'  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Access to a protected member _synoname_special_table of a client class
                                                          Open

                                                                                  + self._stc._synoname_special_table[  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Access to a protected member _synoname_special_table of a client class
                                                          Open

                                                                                      self._stc._synoname_special_table[  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Access to a protected member _synoname_special_table of a client class
                                                          Open

                                                                                      self._stc._synoname_special_table[  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Access to a protected member _synoname_special_table of a client class
                                                          Open

                                                                                      self._stc._synoname_special_table[  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Access to a protected member _mode of a client class
                                                          Open

                                                                      self._lev._mode = 'lev'  # noqa: SF01
                                                          Severity: Minor
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          Used when a protected member (i.e. class member with a name beginning with an underscore) is access outside the class or a descendant of the class where it's defined.

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                          and self._stc._synoname_special_table[s_pos][1]  # noqa: SF01
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO and self.stc.synonamespecialtable[s_pos][1] # noqa: SF01 ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      and tar_len_specials == 0
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO and tarlenspecials == 0 ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      and tar1_num_words == 1
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO and tar1numwords == 1 ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                              'known as the ',
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO 'known as the ', ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                              (not src_len_fn and not tar_len_fn)
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO (not srclenfn and not tarlenfn) ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                  src_ln: str,
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO src_ln: str, ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                          in full_src2
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO in full_src2 ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      matches == 1
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO matches == 1 ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                  ret_name: bool = False,
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO ret_name: bool = False, ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                              'known as the ',
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO 'known as the ', ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                  src_fn: str = '',
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO src_fn: str = '', ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                                  or (
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO or ( ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      List[Tuple[int, str]], features['src_specials']
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO List[Tuple[int, str]], features['src_specials'] ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      src1_num_words < 2
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO src1numwords < 2 ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      and tar1_words[0] == src1_words[0]
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO and tar1words[0] == src1words[0] ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      and src1_num_words == 1
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO and src1numwords == 1 ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      and (tar_len_specials > 0 or src_len_specials > 0)
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO and (tarlenspecials > 0 or srclenspecials > 0) ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                  tar: Union[str, Tuple[str, str, str]],
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO tar: Union[str, Tuple[str, str, str]], ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                  tar: Union[str, Tuple[str, str, str]],
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO tar: Union[str, Tuple[str, str, str]], ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      'roman_conflict' in features and features['roman_conflict']
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO 'romanconflict' in features and features['romanconflict'] ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      List[Tuple[int, str]], features['tar_specials']
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO List[Tuple[int, str]], features['tar_specials'] ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      and src2_num_words < 2
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO and src2numwords < 2 ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      matches == 1
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO matches == 1 ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      and src2_num_words == 1
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO and src2numwords == 1 ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                  self,
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO self, ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                              'with ',
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO 'with ', ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                          s_type == 'X'
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO s_type == 'X' ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                              'with ',
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO 'with ', ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                              'with the ',
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO 'with the ', ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                              == ' '.join((tar_fn, tar_ln)).strip()
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO == ' '.join((tarfn, tarln)).strip() ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      and src1_num_words == 1
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO and src1numwords == 1 ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                  self,
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO self, ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                  src: Union[str, Tuple[str, str, str]],
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO src: Union[str, Tuple[str, str, str]], ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                                  (
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO ( ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                          in full_tar2
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO in full_tar2 ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      and (tar_len_specials > 0 or src_len_specials > 0)
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO and (tarlenspecials > 0 or srclenspecials > 0) ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                  word_approx_min: float = 0.3,
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO wordapproxmin: float = 0.3, ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                              'of the ',
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO 'of the ', ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                              'of the ',
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO 'of the ', ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                              'of ',
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO 'of ', ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                          src_ln.startswith(tar_ln) or tar_ln.startswith(src_ln)
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO srcln.startswith(tarln) or tarln.startswith(srcln) ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      and src2_num_words == 1
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO and src2numwords == 1 ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                  self,
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO self, ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                  features: Optional[
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO features: Optional[ ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      tar1_num_words == 1
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO tar1numwords == 1 ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      and tar2_num_words == 1
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO and tar2numwords == 1 ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                  src: Union[str, Tuple[str, str, str]],
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO src: Union[str, Tuple[str, str, str]], ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                  tar_fn: str = '',
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO tar_fn: str = '', ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      tar2_num_words == 1
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO tar2numwords == 1 ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                              'of ',
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO 'of ', ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                              'with the ',
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO 'with the ', ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                              ' '.join((src_fn, src_ln)).strip()
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO ' '.join((srcfn, srcln)).strip() ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                  tar_ln: str,
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO tar_ln: str, ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      List[Tuple[int, str]], features['src_specials']
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO List[Tuple[int, str]], features['src_specials'] ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                  **kwargs: Any
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO **kwargs: Any ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                              or (tar_fn and src_fn.startswith(tar_fn))
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO or (tarfn and srcfn.startswith(tar_fn)) ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      and src_len_specials == 0
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO and srclenspecials == 0 ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                  tests: Union[int, TIterable[str]] = 2 ** 12 - 1,
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO tests: Union[int, TIterable[str]] = 2 ** 12 - 1, ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                  force_numeric: bool = False,
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO force_numeric: bool = False, ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                              or (src_fn and tar_fn.startswith(src_fn))
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO or (srcfn and tarfn.startswith(src_fn)) ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      List[Tuple[int, str]], features['tar_specials']
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO List[Tuple[int, str]], features['tar_specials'] ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                          s_type == 'X'
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO s_type == 'X' ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                          and self._stc._synoname_special_table[s_pos][1]  # noqa: SF01
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO and self.stc.synonamespecialtable[s_pos][1] # noqa: SF01 ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                      and tar2_words[0] == src2_words[0]
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO and tar2words[0] == src2words[0] ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                  self,
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO self, ^ |

                                                          Wrong hanging indentation before block (add 4 spaces).
                                                          Open

                                                                  char_approx_min: float = 0.73,
                                                          Severity: Info
                                                          Found in abydos/distance/_synoname.py by pylint

                                                          TODO charapproxmin: float = 0.73, ^ |

                                                          There are no issues that match your filters.

                                                          Category
                                                          Status