USDA-ARS-NWRC/awsm

View on GitHub

Showing 10 of 24 total issues

File ingest_data.py has 530 lines of code (exceeds 300 allowed). Consider refactoring.
Open

import copy
import glob
import os
from collections import OrderedDict
from datetime import datetime
Severity: Major
Found in awsm/interface/ingest_data.py - About 7 hrs to fix

    Function hedrick_updating_procedure has 115 lines of code (exceeds 30 allowed). Consider refactoring.
    Open

        def hedrick_updating_procedure(self, m_s, T_s_0, T_s_l, T_s, h2o_sat,
                                       density, z_s, x, y, update_info):
            """
            This function performs the direct insertion procedure and returns the
            updated fields.
    Severity: Major
    Found in awsm/interface/ingest_data.py - About 4 hrs to fix

      File ipysnobal.py has 390 lines of code (exceeds 300 allowed). Consider refactoring.
      Open

      from pysnobal.c_snobal import snobal
      from datetime import datetime, timedelta
      import logging
      import numpy as np
      from smrf.framework.model_framework import SMRF
      Severity: Minor
      Found in awsm/models/pysnobal/ipysnobal.py - About 4 hrs to fix

        File framework.py has 365 lines of code (exceeds 300 allowed). Consider refactoring.
        Open

        import copy
        import logging
        import os
        import sys
        from datetime import datetime
        Severity: Minor
        Found in awsm/framework/framework.py - About 3 hrs to fix

          Function hedrick_updating_procedure has a Cognitive Complexity of 20 (exceeds 8 allowed). Consider refactoring.
          Open

              def hedrick_updating_procedure(self, m_s, T_s_0, T_s_l, T_s, h2o_sat,
                                             density, z_s, x, y, update_info):
                  """
                  This function performs the direct insertion procedure and returns the
                  updated fields.
          Severity: Minor
          Found in awsm/interface/ingest_data.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 calc_offsets_nsteps has a Cognitive Complexity of 18 (exceeds 8 allowed). Consider refactoring.
          Open

              def calc_offsets_nsteps(self, myawsm, update_info):
                  """
                  Function to calculate the offset for each update run and the number of
                  steps the iSnobal run needs to run
          
          
          Severity: Minor
          Found in awsm/interface/ingest_data.py - About 1 hr to fix

          Cognitive Complexity

          Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

          A method's cognitive complexity is based on a few simple rules:

          • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
          • Code is considered more complex for each "break in the linear flow of the code"
          • Code is considered more complex when "flow breaking structures are nested"

          Further reading

          Function run_awsm_daily_ops has a Cognitive Complexity of 17 (exceeds 8 allowed). Consider refactoring.
          Open

          def run_awsm_daily_ops(config_file):
              """
              Run each day seperately. Calls run_awsm
              """
              # define some formats
          Severity: Minor
          Found in awsm/framework/framework.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 do_update_pysnobal has 31 lines of code (exceeds 30 allowed). Consider refactoring.
          Open

              def do_update_pysnobal(self, output_rec, dt):
                  """
                  Function to update a time step of a pysnobal run by updating the
                  output_rec
          
          
          Severity: Minor
          Found in awsm/interface/ingest_data.py - About 1 hr to fix

            Function hedrick_updating_procedure has 10 arguments (exceeds 6 allowed). Consider refactoring.
            Open

                def hedrick_updating_procedure(self, m_s, T_s_0, T_s_l, T_s, h2o_sat,
            Severity: Major
            Found in awsm/interface/ingest_data.py - About 1 hr to fix

              Function run_awsm has a Cognitive Complexity of 9 (exceeds 8 allowed). Consider refactoring.
              Open

              def run_awsm(config):
                  """
                  Function that runs awsm how it should be operate for full runs.
              
                  Args:
              Severity: Minor
              Found in awsm/framework/framework.py - About 25 mins to fix

              Cognitive Complexity

              Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

              A method's cognitive complexity is based on a few simple rules:

              • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
              • Code is considered more complex for each "break in the linear flow of the code"
              • Code is considered more complex when "flow breaking structures are nested"

              Further reading

              Severity
              Category
              Status
              Source
              Language