mangroveorg/datawinners

View on GitHub
datawinners/blue/xform_bridge.py

Summary

Maintainability
F
1 wk
Test Coverage

File xform_bridge.py has 802 lines of code (exceeds 250 allowed). Consider refactoring.
Open

import csv
from datetime import datetime
import itertools
import os
import re
Severity: Major
Found in datawinners/blue/xform_bridge.py - About 1 day to fix

    Function _create_questions has a Cognitive Complexity of 38 (exceeds 5 allowed). Consider refactoring.
    Open

        def _create_questions(self, fields, parent_field_code=None):
            questions = []
            errors = []
            info = []
            for field in fields:
    Severity: Minor
    Found in datawinners/blue/xform_bridge.py - About 5 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

    XlsFormParser has 35 functions (exceeds 20 allowed). Consider refactoring.
    Open

    class XlsFormParser():
        type_dict = {'group': ['repeat', 'group'],
                     'field': ['text', 'integer', 'decimal', 'date', 'geopoint', 'calculate', 'cascading_select', BARCODE,
                               'time', 'datetime', 'dw_idnr', DEVICEID, SUBSCRIBERID, IMEI_ID, PHONE_NUMBER, TODAY, START, END, SIMSERIAL],
                     'auto_filled': ['note'],
    Severity: Minor
    Found in datawinners/blue/xform_bridge.py - About 4 hrs to fix

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

          def _get_relevant(self, field):
              relevant = field.get("bind").get("relevant") if field.get("bind") else None
              name = field.get("name")
              if relevant:
                  stripped_relevant = relevant.replace(' ', '')
      Severity: Minor
      Found in datawinners/blue/xform_bridge.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

      Function _format_field_answers_for has a Cognitive Complexity of 22 (exceeds 5 allowed). Consider refactoring.
      Open

          def _format_field_answers_for(self, fields, submission_values):
              answer_dict = {}
              for field in fields:
                  answer = submission_values.get(field.code, '')
                  if isinstance(field, SelectField) and field.has_other and isinstance(answer, list) and answer[0] == 'other':
      Severity: Minor
      Found in datawinners/blue/xform_bridge.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

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

          def _validate_fields_are_recognised(self, fields):
              errors = []
              for field in fields:
                  # try:
                  #     self._validate_for_no_language(field)
      Severity: Minor
      Found in datawinners/blue/xform_bridge.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_label has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
      Open

          def _get_label(self, field):
      
              if 'label' not in field:
                  if field['type'] == 'group' and 'control' in field:
                      if field['control']['appearance'] == 'field-list':
      Severity: Minor
      Found in datawinners/blue/xform_bridge.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 _validate_choice_names has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring.
      Open

          def _validate_choice_names(self, fields):
              errors = []
              for field in fields:
                  if field['type'] in self.type_dict['group']:
                      errors.extend(self._validate_choice_names(field['children']))
      Severity: Minor
      Found in datawinners/blue/xform_bridge.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_dict has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring.
      Open

          def get_dict(self, field, value):
              if not value:
                  return {field.code: ''}
              if type(field) is FieldSet:
                  dicts = []
      Severity: Minor
      Found in datawinners/blue/xform_bridge.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_media has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring.
      Open

          def get_media(self, field, value):
              if type(field) is FieldSet:
                  file_names = []
                  for v in value:
                      for f in field.fields:
      Severity: Minor
      Found in datawinners/blue/xform_bridge.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 _identify_language_from_xlsx_file has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
      Open

          def _identify_language_from_xlsx_file(self):
              try:
                  workbook = load_workbook(self.path)
              except Exception as e:
                  raise e
      Severity: Minor
      Found in datawinners/blue/xform_bridge.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 __init__ has 6 arguments (exceeds 4 allowed). Consider refactoring.
      Open

          def __init__(self, errors=None, xform_as_string=None, json_xform_data=None, info=None, is_multiple_languages=False, csv_path=None):
      Severity: Minor
      Found in datawinners/blue/xform_bridge.py - About 45 mins to fix

        Function convert_date_values has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
        Open

        def convert_date_values(fields, value_dict):
            for field in fields:
                if type(field) is FieldSet:
                    dicts = []
                    for value in value_dict.get(field.code):
        Severity: Minor
        Found in datawinners/blue/xform_bridge.py - About 45 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_media_in_choices has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
        Open

            def _validate_media_in_choices(self, fields):
                errors = []
                for field in fields:
                    if field['type'] in self.type_dict['group']:
                        choice_errors = self._validate_media_in_choices(field['children'])
        Severity: Minor
        Found in datawinners/blue/xform_bridge.py - About 45 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 deeply nested control flow statements.
        Open

                                if _is_choice_item_in_choice_list(item, field.options):
                                    choice_selections.append(item)
                                else:
                                    other_selection.append(item)
                            answer_dict.update({field.code + "_other": ' '.join(other_selection)})
        Severity: Major
        Found in datawinners/blue/xform_bridge.py - About 45 mins to fix

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

              def __init__(self, path_or_file, questionnaire_name, dbm=None, excel_raw_stream=None, file_type=None):
          Severity: Minor
          Found in datawinners/blue/xform_bridge.py - About 35 mins to fix

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

                def __init__(self, request, questionnaire_code=None, project_name=None, xls_form=None, xls_parser_response=None):
            Severity: Minor
            Found in datawinners/blue/xform_bridge.py - About 35 mins to fix

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

                  def _field(self, field, parent_field_code=None):
                      xform_dw_type_dict = {'geopoint': 'geocode', 'decimal': 'integer', CALCULATE: 'text', BARCODE: 'text',
                                            'dw_idnr': 'unique_id', DEVICEID: 'text', SUBSCRIBERID: 'text', IMEI_ID: 'text',
                                            PHONE_NUMBER: 'text', SIMSERIAL: 'text', START: 'datetime', END: 'datetime', TODAY: 'date'}
                      help_dict = {'text': 'word', 'integer': 'number', 'decimal': 'decimal or number', CALCULATE: 'calculated field',
              Severity: Minor
              Found in datawinners/blue/xform_bridge.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 parse has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
              Open

                  def parse(self):
                      fields = self.xform_dict['children']
                      errors = self._validate_fields_are_recognised(fields)
                      settings_page_errors = self._validate_settings_page_is_not_present()
                      errors = errors.union(settings_page_errors)
              Severity: Minor
              Found in datawinners/blue/xform_bridge.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 _select has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
              Open

                  def _select(self, field, parent_field_code=None):
                      if self._get_appearance(field) == 'label':
                          return
                      name = self._get_label(field)
                      code = field['name']
              Severity: Minor
              Found in datawinners/blue/xform_bridge.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_date_format has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
              Open

                  def _get_date_format(self, field):
              
                      if field['type'] == 'time':
                          return "HH:mm"
              
              
              Severity: Minor
              Found in datawinners/blue/xform_bridge.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 {field.code: self._format_date_time(value)}
              Severity: Major
              Found in datawinners/blue/xform_bridge.py - About 30 mins to fix

                Avoid too many return statements within this function.
                Open

                        return 'dd.mm.yyyy'
                Severity: Major
                Found in datawinners/blue/xform_bridge.py - About 30 mins to fix

                  Avoid too many return statements within this function.
                  Open

                              return {field.code: value}
                  Severity: Major
                  Found in datawinners/blue/xform_bridge.py - About 30 mins to fix

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

                                for row_num in range(0, worksheet.nrows):
                                    row = worksheet.row_values(row_num)
                                    row = self._clean(row)
                                    parsedData.append(row)
                    Severity: Major
                    Found in datawinners/blue/xform_bridge.py and 1 other location - About 1 hr to fix
                    datawinners/project/submission/submission_import.py on lines 191..194

                    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 44.

                    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

                    Similar blocks of code found in 3 locations. Consider refactoring.
                    Open

                    class LabelForChoiceNotPresentException(Exception):
                        def __init__(self, choice_name):
                            self.message = _("Label mandatory for choice option with name %s") % choice_name
                    
                        def __str__(self):
                    Severity: Major
                    Found in datawinners/blue/xform_bridge.py and 2 other locations - About 1 hr to fix
                    datawinners/blue/xform_bridge.py on lines 880..885
                    datawinners/blue/xform_bridge.py on lines 888..893

                    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 39.

                    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

                    Similar blocks of code found in 3 locations. Consider refactoring.
                    Open

                    class LabelForFieldNotPresentException(Exception):
                        def __init__(self, field_name):
                            self.message = _("Label mandatory for question with name [%s]") % field_name
                    
                        def __str__(self):
                    Severity: Major
                    Found in datawinners/blue/xform_bridge.py and 2 other locations - About 1 hr to fix
                    datawinners/blue/xform_bridge.py on lines 864..869
                    datawinners/blue/xform_bridge.py on lines 888..893

                    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 39.

                    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

                    Similar blocks of code found in 3 locations. Consider refactoring.
                    Open

                    class ForbiddenWordInFieldNameException(Exception):
                        def __init__(self, field_name):
                            self.message = _("Field name can't be [%s]") % field_name
                    
                        def __str__(self):
                    Severity: Major
                    Found in datawinners/blue/xform_bridge.py and 2 other locations - About 1 hr to fix
                    datawinners/blue/xform_bridge.py on lines 864..869
                    datawinners/blue/xform_bridge.py on lines 880..885

                    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 39.

                    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

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

                                        if 'selected' in stripped_phrase:
                                            pattern = selected_pattern
                                        elif 'string length' in stripped_phrase:
                                            pattern = string_pattern
                                        else:
                    Severity: Minor
                    Found in datawinners/blue/xform_bridge.py and 1 other location - About 55 mins to fix
                    datawinners/blue/xform_bridge.py on lines 413..418

                    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 37.

                    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

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

                                    if 'selected' in very_stripped_relevant:
                                        pattern = selected_pattern
                                    elif 'string length' in very_stripped_relevant:
                                        pattern = string_pattern
                                    else:
                    Severity: Minor
                    Found in datawinners/blue/xform_bridge.py and 1 other location - About 55 mins to fix
                    datawinners/blue/xform_bridge.py on lines 404..409

                    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 37.

                    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

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

                            if self.xform_dict['id_string'] != self.xform_dict['name']:
                                errors.append(setting_page_error)
                    Severity: Minor
                    Found in datawinners/blue/xform_bridge.py and 1 other location - About 45 mins to fix
                    datawinners/blue/xform_bridge.py on lines 609..610

                    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 35.

                    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

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

                            if self.xform_dict['title'] != self.xform_dict['name']:
                                errors.append(setting_page_error)
                    Severity: Minor
                    Found in datawinners/blue/xform_bridge.py and 1 other location - About 45 mins to fix
                    datawinners/blue/xform_bridge.py on lines 612..613

                    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 35.

                    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

                    Similar blocks of code found in 3 locations. Consider refactoring.
                    Open

                    class NestedRepeatsNotSupportedException(Exception):
                        def __init__(self):
                            self.message = _("nested repeats not supported")
                    
                        def __str__(self):
                    Severity: Minor
                    Found in datawinners/blue/xform_bridge.py and 2 other locations - About 30 mins to fix
                    datawinners/blue/xform_bridge.py on lines 856..861
                    datawinners/blue/xform_bridge.py on lines 872..877

                    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 32.

                    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

                    Similar blocks of code found in 3 locations. Consider refactoring.
                    Open

                    class PrefetchCSVNotSupportedException(Exception):
                        def __init__(self):
                            self.message = _("Prefetch of csv not supported")
                    
                        def __str__(self):
                    Severity: Minor
                    Found in datawinners/blue/xform_bridge.py and 2 other locations - About 30 mins to fix
                    datawinners/blue/xform_bridge.py on lines 848..853
                    datawinners/blue/xform_bridge.py on lines 856..861

                    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 32.

                    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

                    Similar blocks of code found in 3 locations. Consider refactoring.
                    Open

                    class MultipleLanguagesNotSupportedException(Exception):
                        def __init__(self):
                            self.message = _("Language specification is not supported")
                    
                        def __str__(self):
                    Severity: Minor
                    Found in datawinners/blue/xform_bridge.py and 2 other locations - About 30 mins to fix
                    datawinners/blue/xform_bridge.py on lines 848..853
                    datawinners/blue/xform_bridge.py on lines 872..877

                    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 32.

                    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

                    There are no issues that match your filters.

                    Category
                    Status