KarrLab/obj_tables

View on GitHub

Showing 542 of 542 total issues

Function __new__ has a Cognitive Complexity of 19 (exceeds 5 allowed). Consider refactoring.
Open

    def __new__(metacls, name, bases, namespace):
        """
        Args:
            metacls (:obj:`Model`): :obj:`Model`, or a subclass of :obj:`Model`
            name (:obj:`str`): :obj:`Model` class name
Severity: Minor
Found in obj_tables/core.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 get_xlsx_validation has a Cognitive Complexity of 19 (exceeds 5 allowed). Consider refactoring.
Open

    def get_xlsx_validation(self, sheet_models=None, doc_metadata_model=None):
        """ Get XLSX validation

        Args:
            sheet_models (:obj:`list` of :obj:`Model`, optional): models encoded as separate sheets
Severity: Minor
Found in obj_tables/core.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 get_xlsx_validation has a Cognitive Complexity of 19 (exceeds 5 allowed). Consider refactoring.
Open

    def get_xlsx_validation(self, sheet_models=None, doc_metadata_model=None):
        """ Get XLSX validation

        Args:
            sheet_models (:obj:`list` of :obj:`Model`, optional): models encoded as separate sheets
Severity: Minor
Found in obj_tables/core.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 diff_workbooks has a Cognitive Complexity of 19 (exceeds 5 allowed). Consider refactoring.
Open

def diff_workbooks(filename_1, filename_2, models, model_name, schema_name=None, **kwargs):
    """ Get difference of models in two workbooks

    Args:
        filename_1 (:obj:`str`): path to first workbook
Severity: Minor
Found in obj_tables/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

Manager has 23 functions (exceeds 20 allowed). Consider refactoring.
Open

class Manager(object):
    """ Enable O(1) dictionary-based searching of a Model's instances

    This class is inspired by Django's :obj:`Manager` class. An instance of :obj:`Manger` is associated with
    each :obj:`Model` and accessed as the class attribute :obj:`objects` (as in Django).
Severity: Minor
Found in obj_tables/core.py - About 2 hrs to fix

    Function validate has a Cognitive Complexity of 18 (exceeds 5 allowed). Consider refactoring.
    Open

        def validate(self, obj, value):
            """ Determine if :obj:`value` is a valid value for this UnitAttribute
    
            Args:
                obj (:obj:`Model`): class being validated
    Severity: Minor
    Found in obj_tables/sci/units.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 __init__ has a Cognitive Complexity of 18 (exceeds 5 allowed). Consider refactoring.
    Open

        def __init__(self, model_cls, attr, expression, objs):
            """ Create an instance of ParsedExpression
    
            Args:
                model_cls (:obj:`type`): the :obj:`Model` which has an expression
    Severity: Minor
    Found in obj_tables/math/expression.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 has a Cognitive Complexity of 18 (exceeds 5 allowed). Consider refactoring.
    Open

        def validate(schema_changes_kwargs):
            """ Check that the attributes of the arguments to :obj:`SchemaChanges` have the right structure
    
            Args:
                schema_changes_kwargs (:obj:`dict`): kwargs arguments to :obj:`SchemaChanges` generated by loading a schema
    Severity: Minor
    Found in obj_tables/migrate.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 __init__ has a Cognitive Complexity of 18 (exceeds 5 allowed). Consider refactoring.
    Open

        def __init__(self, ontology, namespace=None, namespace_sep=':', terms=None, none=True,
                     default=None, default_cleaned_value=None, none_value=None,
                     verbose_name='', description='',
                     primary=False, unique=False, unique_case_insensitive=False):
            """
    Severity: Minor
    Found in obj_tables/sci/onto.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 has a Cognitive Complexity of 18 (exceeds 5 allowed). Consider refactoring.
    Open

        def validate(self, obj, value):
            """ Determine if :obj:`value` is a valid value for this QuantityAttribute
    
            Args:
                obj (:obj:`Model`): class being validated
    Severity: Minor
    Found in obj_tables/sci/units.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 is_equal has a Cognitive Complexity of 18 (exceeds 5 allowed). Consider refactoring.
    Open

        def is_equal(self, other, tol=0.):
            if self.__class__ != other.__class__:
                return False
    
            min_eq = self.min.__class__ == other.min.__class__ and (
    Severity: Minor
    Found in obj_tables/core.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 copy has a Cognitive Complexity of 18 (exceeds 5 allowed). Consider refactoring.
    Open

        def copy(self):
            """ Create a copy
    
            Returns:
                :obj:`Model`: model copy
    Severity: Minor
    Found in obj_tables/core.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_attributes has a Cognitive Complexity of 18 (exceeds 5 allowed). Consider refactoring.
    Open

        def validate_attributes(metacls, name, bases, namespace):
            """ Validate attribute values
    
            Raises:
                :obj:`ValueError`: if attributes are not valid
    Severity: Minor
    Found in obj_tables/core.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 write_sheet has a Cognitive Complexity of 18 (exceeds 5 allowed). Consider refactoring.
    Open

        def write_sheet(self, writer, model, data, headings, metadata_headings, validation,
                        extra_entries=0, merge_ranges=None, protected=True):
            """ Write data to sheet
    
            Args:
    Severity: Minor
    Found in obj_tables/io.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

    GitRepo has 22 functions (exceeds 20 allowed). Consider refactoring.
    Open

    class GitRepo(object):
        """ Methods for processing a git repo and its commit history
    
        Attributes:
            repo_dir (:obj:`str`): the repo's root directory
    Severity: Minor
    Found in obj_tables/migrate.py - About 2 hrs to fix

      Identical blocks of code found in 2 locations. Consider refactoring.
      Open

              io.Writer().run(args.out_wb_file, objs,
                              schema_name=schema_name,
                              doc_metadata=reader._doc_metadata,
                              model_metadata=reader._model_metadata,
                              models=models, write_toc=args.write_toc, write_schema=args.write_schema,
      Severity: Major
      Found in obj_tables/__main__.py and 1 other location - About 2 hrs to fix
      obj_tables/__main__.py on lines 227..232

      Duplicated Code

      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

      Tuning

      This issue has a mass of 54.

      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

      Refactorings

      Further Reading

      Identical blocks of code found in 2 locations. Consider refactoring.
      Open

              io.Writer().run(args.out_wb_file, objs,
                              schema_name=schema_name,
                              doc_metadata=reader._doc_metadata,
                              model_metadata=reader._model_metadata,
                              models=models, write_toc=args.write_toc, write_schema=args.write_schema,
      Severity: Major
      Found in obj_tables/__main__.py and 1 other location - About 2 hrs to fix
      obj_tables/__main__.py on lines 83..88

      Duplicated Code

      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

      Tuning

      This issue has a mass of 54.

      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

      Refactorings

      Further Reading

      Function get_xlsx_validation has a Cognitive Complexity of 17 (exceeds 5 allowed). Consider refactoring.
      Open

          def get_xlsx_validation(self, sheet_models=None, doc_metadata_model=None):
              """ Get XLSX validation
      
              Args:
                  sheet_models (:obj:`list` of :obj:`Model`, optional): models encoded as separate sheets
      Severity: Minor
      Found in obj_tables/core.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 _is_equal_attributes has a Cognitive Complexity of 17 (exceeds 5 allowed). Consider refactoring.
      Open

          def _is_equal_attributes(self, other, tol=0.):
              """ Determine if the attributes of two objects are semantically equal
      
              Args:
                  other (:obj:`Model`): object to compare
      Severity: Minor
      Found in obj_tables/core.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 _generate_normalize_sort_keys has a Cognitive Complexity of 17 (exceeds 5 allowed). Consider refactoring.
      Open

          def _generate_normalize_sort_keys(cls):
              """ Generates keys for sorting the class """
              generated_keys = []
              keys_to_generate = [cls]
              while keys_to_generate:
      Severity: Minor
      Found in obj_tables/core.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

      Severity
      Category
      Status
      Source
      Language