inasafe/inasafe

View on GitHub
safe/gui/tools/batch/batch_dialog.py

Summary

Maintainability
F
3 days
Test Coverage

File batch_dialog.py has 721 lines of code (exceeds 250 allowed). Consider refactoring.
Open

# coding=utf-8
"""
InaSAFE Disaster risk assessment tool developed by AusAid -
**Script runner dialog.**

Severity: Major
Found in safe/gui/tools/batch/batch_dialog.py - About 1 day to fix

    BatchDialog has 27 functions (exceeds 20 allowed). Consider refactoring.
    Open

    class BatchDialog(QDialog, FORM_CLASS):
        """Script Dialog for InaSAFE."""
    
        def __init__(self, parent=None, iface=None, dock=None):
            """Constructor for the dialog.
    Severity: Minor
    Found in safe/gui/tools/batch/batch_dialog.py - About 3 hrs to fix

      Function __init__ has 35 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

          def __init__(self, parent=None, iface=None, dock=None):
              """Constructor for the dialog.
      
              :param parent: Widget to use as parent.
              :type parent: PyQt5.QtWidgets.QWidget
      Severity: Minor
      Found in safe/gui/tools/batch/batch_dialog.py - About 1 hr to fix

        Avoid deeply nested control flow statements.
        Open

                                for layer in map_canvas:
                                    # turn of layer visibility if not impact layer
                                    if map_canvas[layer].id() == impact_layer.id():
                                        self.set_layer_visible(
                                            map_canvas[layer], True)
        Severity: Major
        Found in safe/gui/tools/batch/batch_dialog.py - About 45 mins to fix

          Avoid deeply nested control flow statements.
          Open

                                  for layer in layer_list:
                                      self.layer_group.addLayer(layer)
                                  map_canvas = QgsProject.instance().mapLayers()
          Severity: Major
          Found in safe/gui/tools/batch/batch_dialog.py - About 45 mins to fix

            Avoid deeply nested control flow statements.
            Open

                                    if self.iface:
                                        self.iface.setActiveLayer(
                                            impact_function.analysis_impacted)
            
            
            Severity: Major
            Found in safe/gui/tools/batch/batch_dialog.py - About 45 mins to fix

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

                  def show_help(self):
                      """Show usage info to the user."""
                      # Read the header and footer html snippets
                      self.main_stacked_widget.setCurrentIndex(0)
                      header = html_header()
              Severity: Major
              Found in safe/gui/tools/batch/batch_dialog.py and 10 other locations - About 4 hrs to fix
              safe/gui/tools/extent_selector_dialog.py on lines 189..203
              safe/gui/tools/field_mapping_dialog.py on lines 227..241
              safe/gui/tools/minimum_needs/needs_calculator_dialog.py on lines 270..284
              safe/gui/tools/minimum_needs/needs_manager_dialog.py on lines 845..859
              safe/gui/tools/multi_buffer_dialog.py on lines 277..291
              safe/gui/tools/options_dialog.py on lines 676..690
              safe/gui/tools/osm_downloader_dialog.py on lines 202..215
              safe/gui/tools/peta_bencana_dialog.py on lines 157..173
              safe/gui/tools/print_report_dialog.py on lines 598..615
              safe/gui/tools/shake_grid/shakemap_converter_dialog.py on lines 372..386

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

              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 8 locations. Consider refactoring.
              Open

                  @pyqtSlot(bool)  # prevents actions being handled twice
                  def help_toggled(self, flag):
                      """Show or hide the help tab in the main stacked widget.
              
                      .. versionadded: 3.2.1
              Severity: Major
              Found in safe/gui/tools/batch/batch_dialog.py and 7 other locations - About 3 hrs to fix
              safe/gui/tools/extent_selector_dialog.py on lines 166..180
              safe/gui/tools/field_mapping_dialog.py on lines 204..218
              safe/gui/tools/minimum_needs/needs_calculator_dialog.py on lines 247..261
              safe/gui/tools/minimum_needs/needs_manager_dialog.py on lines 822..836
              safe/gui/tools/multi_buffer_dialog.py on lines 259..271
              safe/gui/tools/options_dialog.py on lines 653..667
              safe/gui/tools/peta_bencana_dialog.py on lines 134..148

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

              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

                  @pyqtSlot()  # prevents actions being handled twice
                  def on_output_directory_chooser_clicked(self):
                      """Auto  connect slot activated when tbOutputDiris clicked."""
                      title = self.tr('Set the output directory for pdf report files')
                      self.choose_directory(self.output_directory, title)
              Severity: Minor
              Found in safe/gui/tools/batch/batch_dialog.py and 1 other location - About 50 mins to fix
              safe/gui/tools/batch/batch_dialog.py on lines 790..795

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

              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

                  @pyqtSlot()  # prevents actions being handled twice
                  def on_source_directory_chooser_clicked(self):
                      """Autoconnect slot activated when tbSourceDir is clicked."""
              
                      title = self.tr('Set the source directory for script and scenario')
              Severity: Minor
              Found in safe/gui/tools/batch/batch_dialog.py and 1 other location - About 50 mins to fix
              safe/gui/tools/batch/batch_dialog.py on lines 797..801

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

              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 not os.path.exists(self.output_directory.text()):
                          self.output_directory.setText(self.default_directory)
              Severity: Minor
              Found in safe/gui/tools/batch/batch_dialog.py and 1 other location - About 45 mins to fix
              safe/gui/tools/batch/batch_dialog.py on lines 125..126

              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 not os.path.exists(self.source_directory.text()):
                          self.source_directory.setText(self.default_directory)
              Severity: Minor
              Found in safe/gui/tools/batch/batch_dialog.py and 1 other location - About 45 mins to fix
              safe/gui/tools/batch/batch_dialog.py on lines 127..128

              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

              There are no issues that match your filters.

              Category
              Status