fabiommendes/django-bricks

View on GitHub

Showing 97 of 97 total issues

Function bricks has 272 lines of code (exceeds 25 allowed). Consider refactoring.
Open

var bricks = (function ($) {
    var json = bricks$json;
    var actions = bricks$actions;
    var util = bricks$util;
    var byId = util.byId;
Severity: Major
Found in src/bricks/app/static/js/bricks/core.js - About 1 day to fix

    Function bricks has a Cognitive Complexity of 54 (exceeds 5 allowed). Consider refactoring.
    Open

    var bricks = (function ($) {
        var json = bricks$json;
        var actions = bricks$actions;
        var util = bricks$util;
        var byId = util.byId;
    Severity: Minor
    Found in src/bricks/app/static/js/bricks/core.js - 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

    Function bricks$json has a Cognitive Complexity of 43 (exceeds 5 allowed). Consider refactoring.
    Open

    var bricks$json = (function ($) {
        function JsAction(js, result) {
            this.js = js;
            this.result = result
        };
    Severity: Minor
    Found in src/bricks/app/static/js/bricks/json.js - About 6 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

    File converter.py has 407 lines of code (exceeds 250 allowed). Consider refactoring.
    Open

    import ast
    import collections
    import copy
    import io
    import sys
    Severity: Minor
    Found in src/bricks/ni/converter.py - About 5 hrs to fix

      Function bricks$json has 119 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

      var bricks$json = (function ($) {
          function JsAction(js, result) {
              this.js = js;
              this.result = result
          };
      Severity: Major
      Found in src/bricks/app/static/js/bricks/json.js - About 4 hrs to fix

        Function lazy_singledispatch has a Cognitive Complexity of 27 (exceeds 5 allowed). Consider refactoring.
        Open

        def lazy_singledispatch(func):
            """
            Single-dispatch generic function decorator.
        
            Transforms a function into a generic function, which can have different
        Severity: Minor
        Found in src/bricks/utils/generic.py - About 3 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

        File client.py has 317 lines of code (exceeds 250 allowed). Consider refactoring.
        Open

        import re
        from collections import UserString
        from functools import singledispatch
        
        from lazyutils import lazy
        Severity: Minor
        Found in src/bricks/js/client.py - About 3 hrs to fix

          JsTranspiler has 26 functions (exceeds 20 allowed). Consider refactoring.
          Open

          class JsTranspiler(CClassTranspiler):
          
              def visit_body(self, seq, indent=True):
                  if indent:
                      self.indent_up()
          Severity: Minor
          Found in src/bricks/ni/converter.py - About 3 hrs to fix

            File core.js has 277 lines of code (exceeds 250 allowed). Consider refactoring.
            Open

            var bricks = (function ($) {
                var json = bricks$json;
                var actions = bricks$actions;
                var util = bricks$util;
                var byId = util.byId;
            Severity: Minor
            Found in src/bricks/app/static/js/bricks/core.js - About 2 hrs to fix

              Cyclomatic complexity is too high in function bem_modifiers. (10)
              Open

              def bem_modifiers(base, map=None, **states):
                  """
                  Return a list with BEM modifiers for a given class if marked states
                  are enabled.
              
              
              Severity: Minor
              Found in src/bricks/contrib/bem.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 function bricks_register. (10)
              Open

              def bricks_register(view_cls, *args, name=None, register=True, **kwargs):
                  """
                  Worker function for api and program callbacks.
                  """
              
              
              Severity: Minor
              Found in src/bricks/rpc/decorators.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 __repr__. (8)
              Open

                  def __repr__(self):
                      name = self.__class__.__name__
                      if not self.attrs and not self.children:
                          return '%s()' % name
                      elif self.attrs and not self.children:
              Severity: Minor
              Found in src/bricks/components/core.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 to_dict. (8)
              Open

                  def to_dict(self, attrs=None, exclude_class=False, exclude_id=False):
                      """
                      Return a dictionary from attribute values, possibly passing a dictionary
                      with extra attributes.
              
              
              Severity: Minor
              Found in src/bricks/components/attrs.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 dialog. (8)
              Open

                  def dialog(self, html=None, *,
                             dialog='dialog',
                             container=None,
                             action='open',
                             source=None):
              Severity: Minor
              Found in src/bricks/js/client.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 json_codec_worker has 53 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

                  function json_codec_worker(json, encode) {
                      var decode = !encode;
                      var out, key;
              
                      // Don't like undefined values
              Severity: Major
              Found in src/bricks/app/static/js/bricks/json.js - About 2 hrs to fix

                Function bem_modifiers has a Cognitive Complexity of 16 (exceeds 5 allowed). Consider refactoring.
                Open

                def bem_modifiers(base, map=None, **states):
                    """
                    Return a list with BEM modifiers for a given class if marked states
                    are enabled.
                
                
                Severity: Minor
                Found in src/bricks/contrib/bem.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

                File components.py has 252 lines of code (exceeds 250 allowed). Consider refactoring.
                Open

                from functools import wraps
                
                import bricks.html5 as t
                from bricks.contrib.bem import bem_modifiers, bem_with_modifiers
                from bricks.helpers import join_classes
                Severity: Minor
                Found in src/bricks/contrib/mdl/components.py - About 2 hrs to fix

                  Cyclomatic complexity is too high in function decode. (7)
                  Open

                  def decode(data):
                      """
                      Decode a JSON-like structure into the corresponding Python data.
                      """
                  
                  
                  Severity: Minor
                  Found in src/bricks/json/decoders.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 _as_inner_repr. (7)
                  Open

                      def _as_inner_repr(self):
                          result = []
                          classes = self.parent.classes
                          if self.parent.id:
                              result.append('id=%r' % self.parent.id)
                  Severity: Minor
                  Found in src/bricks/components/attrs.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 function _attrs_maping. (7)
                  Open

                  @attrs.register(collections.Mapping)
                  def _attrs_maping(map, **kwargs):
                      kwargs.pop('request', None)
                  
                      if kwargs:
                  Severity: Minor
                  Found in src/bricks/helpers/attr.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

                  Severity
                  Category
                  Status
                  Source
                  Language