choderalab/yank

View on GitHub
Yank/utils.py

Summary

Maintainability
F
6 days
Test Coverage

File utils.py has 1331 lines of code (exceeds 250 allowed). Consider refactoring.
Open

#!/usr/local/bin/env python

# ==============================================================================
# MODULE DOCSTRING
# ==============================================================================
Severity: Major
Found in Yank/utils.py - About 3 days to fix

    Function named_combinations has a Cognitive Complexity of 29 (exceeds 5 allowed). Consider refactoring.
    Open

        def named_combinations(self, separator, max_name_length):
            """Generator to iterate over all possible combinations of trees and assign them unique names.
    
            The names are generated by gluing together the first letters of the values of
            the combinatorial leaves only, separated by the given separator. If the values
    Severity: Minor
    Found in Yank/utils.py - About 4 hrs 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 expand_id_nodes has a Cognitive Complexity of 19 (exceeds 5 allowed). Consider refactoring.
    Open

        def expand_id_nodes(self, id_nodes_path, update_nodes_paths):
            """Return a new :class:`CombinatorialTree` with id-bearing nodes expanded
            and updated in the rest of the script.
    
            Parameters
    Severity: Minor
    Found in Yank/utils.py - About 2 hrs 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 config_root_logger has a Cognitive Complexity of 16 (exceeds 5 allowed). Consider refactoring.
    Open

    def config_root_logger(verbose, log_file_path=None):
        """
        Setup the the root logger's configuration.
    
        The log messages are printed in the terminal and saved in the file specified
    Severity: Minor
    Found in Yank/utils.py - About 2 hrs 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 _resolve_paths has a Cognitive Complexity of 16 (exceeds 5 allowed). Consider refactoring.
    Open

        def _resolve_paths(d, path):
            """Retrieve all the values of a nested key in a dictionary.
    
            Paths containing the string '*' are interpreted as any node and
            are yielded one by one.
    Severity: Minor
    Found in Yank/utils.py - About 2 hrs 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 validate_parameters has a Cognitive Complexity of 15 (exceeds 5 allowed). Consider refactoring.
    Open

    def validate_parameters(parameters, template_parameters, check_unknown=False,
                            process_units_str=False, float_to_int=False,
                            ignore_none=True, special_conversions=None):
        """
        Utility function for parameters and options validation.
    Severity: Minor
    Found in Yank/utils.py - About 1 hr 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 get_keyword_args has a Cognitive Complexity of 14 (exceeds 5 allowed). Consider refactoring.
    Open

    def get_keyword_args(function, try_mro_from_class=None):
        """Inspect function signature and return keyword args with their default values.
    
        Parameters
        ----------
    Severity: Minor
    Found in Yank/utils.py - About 1 hr 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 run has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
    Open

        def run(self):
            """Run script and return warning messages in leap log file."""
    
            def create_dirs_and_copy(path_to_copy, copied_path):
                """Create directories before copying the file."""
    Severity: Minor
    Found in Yank/utils.py - About 1 hr 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 load_parameters has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring.
    Open

        def load_parameters(self, *args):
            """
            Load the LEaP parameters into the working TLEaP script if not already loaded
    
            This adds to the script
    Severity: Minor
    Found in Yank/utils.py - About 1 hr 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 quantity_from_string has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
    Open

    def quantity_from_string(expression, compatible_units=None):
        """Create a Quantity object from a string expression.
    
        All the functions in the standard module math are available together
        with most of the methods inside the ``simtk.unit`` module.
    Severity: Minor
    Found in Yank/utils.py - About 55 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

    Function generate_development_feature has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
    Open

    def generate_development_feature(feature_dict):
        """
        Helper function for generating a class which can flag classes, tests, and functions that are developmental.
    
        Output class not quite a mixin because it has to be the first class due to the `__init__` flag
    Severity: Minor
    Found in Yank/utils.py - About 55 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

    Function validate_parameters has 7 arguments (exceeds 4 allowed). Consider refactoring.
    Open

    def validate_parameters(parameters, template_parameters, check_unknown=False,
    Severity: Major
    Found in Yank/utils.py - About 50 mins to fix

      Avoid deeply nested control flow statements.
      Open

                              if v in combinatorial_id_nodes:
                                  i = expanded_tree[update_node_key].index(v)
                                  expanded_tree[update_node_key][i:i+1] = combinatorial_id_nodes[v]
                      elif update_node_val in combinatorial_id_nodes:
      Severity: Major
      Found in Yank/utils.py - About 45 mins to fix

        Avoid deeply nested control flow statements.
        Open

                                if char_per_str != 0:
                                    idx = sorted_vals[i][0]
                                    filtered_vals[idx] = filtered_vals[idx][:-char_per_str]
                                length_diff -= char_per_str
        Severity: Major
        Found in Yank/utils.py - About 45 mins to fix

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

          def is_openeye_installed(oetools=('oechem', 'oequacpac', 'oeiupac', 'oeomega')):
              """
              Check if a given OpenEye tool is installed and Licensed.
          
              If the OpenEye toolkit is not installed, returns False.
          Severity: Minor
          Found in Yank/utils.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

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

              def resnames(self):
                  """Iterate over the names of all the molecules in the file (read-only).
          
                  This assumes that each molecule in the mol2 file has a single residue name.
          
          
          Severity: Minor
          Found in Yank/utils.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

          Function get_oe_mol_positions has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
          Open

          def get_oe_mol_positions(molecule, conformer_idx=0):
              """
              Get the molecule positions from an OpenEye Molecule
          
              Requires OpenEye Toolkit
          Severity: Minor
          Found in Yank/utils.py - About 25 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

          Function _find_leaves has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
          Open

              def _find_leaves(self):
                  """Traverse a dict tree and find the leaf nodes.
          
                  Returns
                  -------
          Severity: Minor
          Found in Yank/utils.py - About 25 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

          Function round_charge has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
          Open

              def round_charge(self):
                  """Round the net charge to the nearest integer to 6-digit precision.
          
                  Raises
                  ------
          Severity: Minor
          Found in Yank/utils.py - About 25 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

          Function save_unit has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
          Open

              def save_unit(self, unit_name, output_path):
                  """
                  Write a LEaP unit to file.
          
                  Accepts either ``*.prmtop``, ``*.inpcrd``, or ``*.pdb`` files
          Severity: Minor
          Found in Yank/utils.py - About 25 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

          There are no issues that match your filters.

          Category
          Status